第1章 全面理解区块链 1
1.1 从比特币开始 1
1.1.1 颠覆性的比特币 1
1.1.2 从比特币到以太坊 9
1.1.3 山寨币蜂拥而至 10
1.1.4 不得不提的瑞波币 13
1.1.5 数字加密货币的现状与前景 15
1.2 理解区块链的概念 18
1.2.1 深入理解Blockchain 18
1.2.2 数字账本 22
1.2.3 智能合约 24
1.2.4 共识机制 25
1.3 快速体验Fabric 28
1.3.1 Fabric的概念与术语 28
1.3.2 Fabric的安装过程 32
1.3.3 智能合约初体验 36
第2章 区块链的生态与原理 40
2.1 区块链的生态 40
2.1.1 Hyperledger社区 40
2.1.2 Blockchain as a Service 42
2.1.3 区块链的应用场景 44
2.2 区块链的底层技术与架构 48
2.2.1 P2P网络 48
2.2.2 密码学与安全技术 53
2.2.3 Gossip协议 62
2.3 区块链平台架构 64
2.3.1 区块链平台的常规架构 64
2.3.2 Fabric的原理与架构 68
2.3.3 Fabric架构总结 73
第3章 Fabric安装与调试 76
3.1 Fabric源码安装 76
3.1.1 基础环境安装 77
3.1.2 编译Fabric 81
3.1.3 部署Fabric网络 86
3.2 Fabric开发调试 97
3.2.1 智能合约体验 97
3.2.2 调试Fabric源码 101
3.3 更复杂的Fabric网络 108
3.3.1 网络的结构与定义 109
3.3.2 Orderer节点的详细配置与定义 114
3.3.3 Peer节点的详细配置与定义 119
3.3.4 peer命令 131
第4章 Fabric应用开发实践 137
4.1 Fabric SDK概述 137
4.1.1 Client模块 138
4.1.2 Chains模块 140
4.2 通道配置 145
4.2.1 使用Configtxgen工具生成通道配置 145
4.2.2 创建通道 146
4.2.3 加入通道 148
4.2.4 更新通道 148
4.3 智能合约管理 150
4.3.1 开发智能合约 151
4.3.2 安装智能合约 154
4.3.3 实例化智能合约 155
4.3.4 调用智能合约 157
4.3.5 查询智能合约 158
4.3.6 升级智能合约 158
4.4 监听事件 160
4.4.1 事件服务类型 161
4.4.2 监听交易事件 161
4.4.3 已提交事件 163
4.4.4 监听区块事件 163
4.4.5 智能合约事件 164
第5章 深入研究Fabric网络 166
5.1 Fabric的创世区块 167
5.1.1 Fabric的网络结构定义 167
5.1.2 创世区块的结构 171
5.1.3 创世区块的通道定义 177
5.1.4 创世区块的生成代码解析 180
5.1.5 组织与策略的定义 185
5.2 Peer客户端发起交易 187
5.2.1 提案打包 188
5.2.2 提案签名 189
5.2.3 提案背书 189
5.3 Chaincode的初始化 191
5.3.1 ChaincodeServer的初始化 191
5.3.2 通过initSysCCs启动容器 192
5.3.3 启动Chaincode 194
5.4 Endorser的背书流程 194
5.4.1 preProcess交易预处理 195
5.4.2 checkSignatureFromCreator检查签名 197
5.4.3 CheckProposalTxID验证 198
5.4.4 策略评估 199
5.4.5 simulateProposal模拟交易 201
5.4.6 Chaincode的调用流程 203
5.4.7 RWSet与防双花攻击 205
5.4.8 ESCC背书流程 206
第6章 深入理解Fabric的安全机制 207
6.1 Fabric安全概述 207
6.1.1 成员管理服务 207
6.1.2 交易安全与隐私保护 209
6.1.3 智能合约的安全机制 210
6.2 深入理解Fabric MSP 212
6.2.1 MSP模型 212
6.2.2 MSP的证书体系 215
6.2.3 MSP的映射问题 218
6.3 深入理解Fabric CA 220
6.3.1 Fabric CA架构的组成 220
6.3.2 Fabric CA安装及功能 223
6.3.3 Fabric CA SDK编程 232