更新时间:2021-09-27 17:48:22
封面
版权信息
版 权
序1
序2
前 言
资源与支持
第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 交易预检查