前言
第1章 区块链基础与Hyperledger Fabric架构1
1.1 区块链背景、概念与现状1
1.1.1 区块链产生的背景及研究热潮1
1.1.2 区块链概念与核心技术6
1.1.3 区块链典型平台现状及趋势12
1.2 Hyperledger Fabric基本概念与架构15
1.2.1 基本概念15
1.2.2 Hyperledger Fabric架构22
1.2.3 安装基础环境与部署Fabric系统25
1.2.4 Fabric初始化启动流程30
1.2.5 Fabric交易处理流程58
1.3 Hyperledger Fabric源码分析说明60
1.3.1 源码分析思路60
1.3.2 配置机制64
1.4 小结66
第2章 Orderer排序节点67
2.1 功能概述68
2.2 Orderer节点启动流程70
2.2.1 加载orderer.yaml配置文件71
2.2.2 初始化日志与本地MSP组件73
2.2.3 启动Orderer排序节点74
2.3 Broadcast交易广播服务92
2.3.1 概述92
2.3.2 Broadcast服务消息处理93
2.4 Orderer共识排序服务(配置交易消息)102
2.4.1 概述102
2.4.2 Solo共识组件103
2.4.3 Kafka共识组件110
2.5 Orderer共识排序服务(普通交易消息)122
2.5.1 概述122
2.5.2 Solo共识组件123
2.5.3 Kafka共识组件126
2.6 Deliver区块分发服务131
2.6.1 概述132
2.6.2 Deliver服务消息处理133
2.6.3 Deliver服务客户端140
2.7 小结150
第3章 Peer节点151
3.1 功能概述152
3.1.1 链码生命周期管理152
3.1.2 系统链码155
3.1.3 用户链码156
3.2 Peer节点启动流程157
3.2.1 启动流程概述157
3.2.2 定义、注册命令与初始化配置157
3.2.3 初始化本地MSP组件159
3.2.4 执行启动Peer节点命令161
3.3 peer channel通道子命令183
3.3.1 定义注册channel子命令183
3.3.2 创建通道命令create189
3.3.3 Peer节点加入通道命令join193
3.3.4 获取区块命令fetch198
3.3.5 获取区块链信息getinfo201
3.3.6 获取已加入通道列表list205
3.3.7 签名配置交易文件signconfigtx207
3.3.8 更新通道配置update210
3.4 peer chaincode链码子命令212
3.4.1 定义注册chaincode子命令213
3.4.2 安装链码命令install216
3.4.3 实例化链码命令instantiate224
3.4.4 调用链码命令invoke232
3.4.5 查询链码命令query237
3.4.6 升级链码命令upgrade239
3.4.7 查询链码列表命令list244
3.4.8 打包链码命令package250
3.4.9 签名链码包命令signpackage254
3.5 其他子命令257
3.5.1 状态查询子命令257
3.5.2 版本子命令257
3.5.3 日志子命令257
3.6 小结258
第4章 Endorser背书节点259
4.1 功能概述259
4.2 Endorser背书服务261
4.3 预处理签名提案消息264
4.3.1 验证消息格式与签名合法性265
4.3.2 检查是否为允许外部调用的系统链码266
4.3.3 检查签名提案消息的唯一性266
4.3.4 检查是否满足通道的访问权限策略267
4.4 模拟执行提案268
4.4.1 检查实例化策略270
4.4.2 启动链码容器概述271
4.4.3 准备启动链码容器276
4.4.4 启动系统链码inprocContainer容器285
4.4.5 启动用户链码Docker容器290
4.4.6 消息处理核心函数300
4.4.7 请求链码执行311
4.4.8 停止链码容器321
4.4.9 处理模拟执行结果323
4.5 对模拟执行结果签名背书326
4.6 小结330
第5章 Committer记账节点331
5.1 功能概述332
5.2 创建与调用Committer功能模块333
5.2.1 创建Committer功能模块333
5.2.2 调用Committer功能模块335
5.3 交易验证器341
5.3.1 验证交易数据的合法性342
5.3.2 VSCC验证交易背书策略353
5.4 账本提交器370
5.4.1 验证与准备数据374
5.4.2 提交账本数据388
5.5 小结397
第6章 Gossip消息模块398
6.1 功能概述399
6.2 Gossip消息模块启动流程402
6.2.1 创建与初始化Gossip服务器实例402
6.2.2 初始化通道上的Gossip服务模块410
6.3 Gossip消息通信与处理机制418
6.3.1 Gossip消息概述418
6.3.2 Gossip消息通信与处理机制420
6.3.3 Gossip服务实例中的消息处理462
6.3.4 state模块中的数据消息处理485
6.3.5 state模块中的远程状态与隐私数据消息处理490
6.3.6 Fetcher组件中的隐私数据请求与响应消息处理494
6.3.7 election选举模块中的主节点选举消息处理499
6.4 Gossip节点管理机制501
6.4.1 管理新加入Peer节点501
6.4.2 选举Leader主节点503
6.4.3 更新节点相关信息机制508
6.5 Gossip数据分发与状态同步机制513
6.5.1 分发区块数据流程513
6.5.2 分发隐私数据流程515
6.5.3 更新通道状态信息521
6.5.4 更新数据消息522
6.6 Gossip反熵算法523
6.6.1 获取当前最大的账本高度523
6.6.2 分批发送远程状态请求消息525
6.6.3 处理远程状态请求消息527
6.7 小结530
第7章 公共功能模块531
7.1 账本数据存储模块531
7.1.1 Peer节点账本532
7.1.2 idStore数据库541
7.1.3 区块数据文件与隐私数据库542
7.1.4 区块索引数据库565
7.1.5 状态数据库565
7.1.6 历史数据库579
7.1.7 transient隐私数据库580
7.2 安全服务模块600
7.2.1 MSP(成员关系服务模块)600
7.2.2 BCCSP(区块链密码服务模块)609
7.3 Events事件模块611
7.3.1 创建事件服务器611
7.3.2 订阅与发布事件613
7.3.3 注册与注销事件616
7.4 小结618
附录A Hyperledger Fabric配置文件619
附录B e2e_cli示例相关文件情况628
参考文献633
· · · · · · (
收起)