-
内容大纲
由于涉及多个学科领域,构建区块链系统面临的技术挑战不可小觑,而区块链行业早期的野蛮生长带来的链间相互孤立的问题也日益凸显。面对这些挑战,Tendermint团队给出了系统化解决方案:构建区块链应用开发框架,降低区块链系统开发的难度,并设计通用IBC协议实现跨链互操作。
本书围绕Cosmos项目展开,从预备基础理论、开发框架设计、开发框架应用三个层面全面、系统阐述相关机制:在预备基础理论方面,详细介绍区块链项目的理论基础,包括密码学算法、拜占庭容错共识协议的基础知识,Tendermint共识协议以及权益证明机制原理;在开发框架设计方面,深入介绍Tendermint Core项目架构设计以及该项目提供的ABCI规范与实现原理,剖析Cosmos-SDK项目中提供的功能模块的原理与关键实现,包括权益证明机制以及IBC协议的实现;在开发框架应用方面,展示如何基于Tendermint Core项目构建分布式键值数据库应用,并以Cosmos网络的客户端Gaia的实现为例展示构建应用专属区块链系统的具体过程。
本书内容深入浅出,指导性和实操性强,适合区块链领域开发者和区块链技术爱好者阅读,也可作为高等院校计算机及区块链相关专业的教学用书和培训教材。 -
作者介绍
-
目录
第1章 Cosmos网络介绍
1.1 区块链开发的技术挑战
1.1.1 开发周期与技术门槛
1.1.2 资源消耗与交易体验
1.1.3 链上扩容与跨链通信
1.2 Cosmos网络
1.2.1 Cosmos的解决方案
1.2.2 Cosmos Hub
1.2.3 Tendermint Core
1.2.4 Cosmos-SDK
1.2.5 IBC协议
1.3 小结
第2章 密码学算法
2.1 散列函数与Merkle树
2.1.1 散列函数简介
2.1.2 生日悖论原理
2.1.3 Merkle树构建
2.1.4 Merkle树证明构造
2.2 数字签名算法
2.2.1 循环群
2.2.2 素数域
2.2.3 椭圆曲线
2.2.4 ECDSA
2.2.5 Ed25519
2.2.6 公钥与地址
2.3 网络流量加密
2.4 小结
第3章 共识协议与区块设计
3.1 共识协议基础
3.1.1 半同步网络模型与BFT
3.1.2 拜占庭将军问题与CAP定理
3.2 PBFT共识协议
3.2.1 协议概述
3.2.2 视图转换
3.3 Tendermint共识协议
3.3.1 协议概述
3.3.2 锁定机制
3.3.3 解锁机制
3.4 共识协议比较
3.5 提案者轮换选择算法
3.6 区块结构
3.7 小结
第4章 Tendermint Core的架构设计
4.1 整体架构概览
4.1.1 基本概念
4.1.2 反应器简介
4.2 核心数据结构Node结构体
4.2.1 作为服务的Node结构体
4.2.2 可配置的Node结构体
4.2.3 作为对等网络节点的Node结构体
4.3 反应器(Reactor)
4.3.1 mempool.Reactor
4.3.2 evidence.Reactor
4.3.3 BlockchainReactor
4.3.4 consensus.Reactor
4.4 小结
第5章 ABCI
5.1 交易池连接
5.2 共识连接
5.3 查询连接
5.4 客户端与上层应用交互
5.4.1 Application接口与Client接口
5.4.2 进程内交互
5.4.3 套接字交互
5.5 实战——分布式键值数据库
5.5.1 键值对读写实现
5.5.2 执行过程展示
5.6 小结
第6章 Cosmos-SDK的架构设计
6.1 Cosmos-SDK的模块化设计
6.1.1 AppModule接口
6.1.2 模块管理器
6.1.3 模块的源码组织
6.2 应用模板BaseApp
6.2.1 ABCI接口方法的实现
6.2.2 模块管理
6.3 可认证数据结构IAVL+树
6.3.1 节点设计
6.3.2 读写与遍历
6.3.3 证明机制
6.3.4 Cosmos-SDK中的IAVL+树
6.3.5 Cosmos-SDK中的剪枝选项
6.4 Cosmos-SDK的存储器设计
6.4.1 多重存储器MultiStore
6.4.2 键值对存储器KVStore
6.4.3 存储器装饰器
6.4.4 瞬时存储数据库
6.5 小结
第7章 Cosmos-SDK的基本模块
7.1 账户与交易:auth模块
7.1.1 账户管理
7.1.2 标准交易
7.1.3 交易预检查
7.2 链上资产转移:bank模块
7.3 创世交易:genutil模块
7.4 链上参数管理:params模块
7.5 链上资产总量追踪:supply模块
7.6 链上状态一致性检查:crisis模块
7.7 链上治理:gov模块
7.7.1 提案创建与投票
7.7.2 提案的链上存储
7.7.3 提案的链上处理
7.8 节点升级:upgrade模块
7.8.1 升级计划与升级提案
7.8.2 执行升级计划
7.8.3 自动化升级
7.9 小结
第8章 Cosmos-SDK的PoS实现
8.1 PoS机制概述
8.2 Cosmos Hub的PoS机制
8.3 链上资产抵押:staking模块
8.3.1 验证者与链上资产抵押
8.3.2 重新委托与撤回委托
8.3.3 验证者状态切换
8.3.4 回调函数与模块交互
8.4 被动作恶惩罚:slashing模块
8.4.1 区块中的投票信息
8.4.2 被动惩罚设计理念
8.4.3 被动惩罚实现概览
8.5 主动作恶惩罚:evidence模块
8.5.1 双签作恶惩罚
8.5.2 惩罚机制小结
8.6 链上资产铸造:mint模块
8.7 链上奖励分发:distribution模块
8.7.1 奖励分发概述
8.7.2 F1奖励分发机制
8.7.3 F1奖励分发实现
8.8 小结
第9章 Cosmos-SDK的跨链通信
9.1 Tendermint Core轻客户端
9.1.1 轻客户端原理概述
9.1.2 故障模型与解决方案
9.1.3 轻客户端实现
9.1.4 Cosmos-SDK轻客户端
9.2 跨链通信原理与设计
9.2.1 跨链通信概述
9.2.2 中继者
9.2.3 轻客户端
9.2.4 连接
9.2.5 信道
9.2.6 跨链数据包
9.3 跨链通信示例
9.4 小结
第10章 Cosmos Hub的客户端Gaia
10.1 核心数据结构GaiaApp
10.1.1 编解码器初始化
10.1.2 BaseApp初始化
10.1.3 模块存储映射表初始化
10.1.4 模块Keeper初始化
10.1.5 模块管理器初始化
10.1.6 存储加载
10.2 gaiad与gaiacli
10.2.1 安装
10.2.2 单节点测试链
10.2.3 gaiacli的使用
10.3 区块的生命周期
10.3.1 链初始化
10.3.2 交易与区块构建
10.3.3 区块执行
10.4 Gaia的安全部署
10.4.1 远程签名部署
10.4.2 哨兵节点部署
10.5 小结
附录1 Cosmos-SDK与Cosmos Hub中的参数配置
附录2 Cosmos-SDK中的键值对
附录3 Cosmos-SDK中的不变量检查
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
