前言
第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
· · · · · · (
收起)