《Hyperledger Fabric 技術內幕:架構設計與實現原理》是2019年機械工業出版社出版的圖書,作者是李鑫。
基本介紹
- 中文名:Hyperledger Fabric 技術內幕:架構設計與實現原理
- 作者:李鑫
- 出版社:機械工業出版社
- 出版時間:2019年3月
- 頁數:634 頁
- 定價:113.2 元
- 裝幀:平裝
- ISBN:9787111618560
內容簡介,圖書目錄,作者簡介,
內容簡介
近年來的企業實踐表明,聯盟鏈是極具重要套用前景與潛力的區塊鏈落地技術方案,而超級賬本Hyperledger Fabric已經成為聯盟鏈領域中具有國際影響力的主流技術。
本書深入分析了Hyperledger Fabric的原始碼,從巨觀上分析了Hyperledger Fabric的整體架構、設計邏輯和運行機制,從微觀上剖析了各核心模組的設計理念與實現原理,同時兼顧區塊鏈系統底層架構研發者和上層套用開發者的需求,幫助讀者掌握Hyperledger Fabric的精髓。
全書一共7章,以系統運行的流程為主線展開分析:
第1章主要介紹了區塊鏈的核心技術、典型平台,以及Hyperledger Fabric的基本概念、部署流程、實驗環境搭建、系統架構和原始碼分析思路,是閱讀全書的基礎。
第2~7章詳細分析和解讀了Orderer排序節點、Peer節點、Endorser背書節點、Committer記賬節點、Gossip訊息模組、公共功能模組等核心功能和模組的設計理念、實現原理與運行機制,同時從套用角度闡釋其難點及其最佳化細節。
圖書目錄
前言
第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
作者簡介
李鑫
資深區塊鏈技術專家,專注於區塊鏈關鍵技術和行業解決方案的研究,對Hyperledger Fabric等聯盟鏈技術有非常深入的研究,同時參與並積極推動超級賬本開源社區的發展。
目前是國防科技大學的研究人員,研究興趣包括分散式計算與區塊鏈、容器雲等新興技術,長期參與高性能計算、863計畫、國家自然科學基金等項目的研發與管理工作,曾獲部級科技進步三等獎一項,發表學術論文十餘篇,參與譯著一部。