HyperledgerFabric 核心技術

陳樹寶,鄭少華,佟艷娟

  • 出版商: 電子工業
  • 出版日期: 2019-06-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • ISBN: 7121366878
  • ISBN-13: 9787121366871
  • 相關分類: Perl 程式語言
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書通過精選十分重要和極其巧妙的代碼片段,剖析了超級賬本Hyperledger Fabric的技術細節、底層原理和整體架構。本書涵蓋開發環境的部署、源碼如何編譯、第一個示例網絡的運行,以及orderer、peer、Chaincode、MSP、Ledger、Consensus和Gossip幾個重要的組成部分。 讀者閱讀本書,可以更加清晰地理解超級賬本的核心技術和設計思想,瞭解分佈式賬本一致性的具體實現;同時,可以識別在區塊鏈應用過程中遇到的問題,實現區塊鏈功能和性能的最大化。

作者簡介

陳樹寶
中鏈科技區塊鏈負責人,專注於區塊鏈,大數據,物聯網以及人工智能的研究。
參與多個區塊鏈項目的核心系統設計,有多年的研發經驗,喜歡學習和分享知識,致力於區塊鏈技術的推廣。
早期深入研究過的Linux和視窗操作系統,著有“的Windows內核設計思想”一書。

鄭少華
中國農業銀行(廣州)區塊鏈負責人,主要從事區塊鏈在銀行金融業務中的開發和應用,
探索區塊鏈技術在數字資產的落地場景。
對各種密碼學,加密算法,點對點協議,分佈式存儲和高性能網絡有深入研究。


佟艷娟
西南大學碩士,從事人工智能和區塊鏈的研究,括分佈式系統的性能優化,
一致性,容錯性和高效的點對點網絡。
對基於橢圓曲線的對稱加密算法的數學原理有較深的理解,
並將其應用到特定的區塊鏈場景下,積極參與Hyperledger Fabric的代碼貢獻

目錄大綱

章搭建Hyperledger Fabric開發環境
章搭建Hyperledger Fabric開發環境 1

1.1 下載Go語言安裝 1
1.2 Windows MSI安裝 2
1.3 Linux、mac OS和FreeBSD 安裝 4
1.4 Linux下安裝Docker和docker-compose 5
1.5 Windows下安裝Git 7
1.6 Windows下安裝tdm-gcc 9
1.7 Windows下安裝Visual Studio Code


第2章編譯Hyperledger Fabric源碼14
2.1 Fabric源碼下載14
2.2 Fabric Makefile 15
2.3 構建peer 17
2.4 構建peer-docker 19
2.5 構建orderer 22
2.6 構建orderer-docker 22
2.7 構建tools-docker 23
2.8 查看構建的鏡像24


第3章個網絡26
3.1 克隆fabric-samples 26
3.2 運行個網絡27
3.2.1 生成證書28
3.2.2 啟動網絡29
3.2.3 關閉網絡32
3.3 基本步驟33
3.3.1 生成證書33
3.3.2 生成配置交易35
3.3.3 啟動網絡38
3.3.4 CLI容器命令39
3.4 數據持久性44
3.5 出錯處理45


第4章Chaincode 46
4.1 Chaincode接口47
4.2 Chaincode實現58
4.3 Chaincode安裝62
4.4 Chaincode實例化62
4.5 Chaincode交易62
4.6 Chaincode查詢62


第5章區塊鏈加密算法63
5.1 RSA加密算法63
5.1.1 相關的數論知識63
5.1.2 RSA原理64
5.1.3 加密過程65
5.1.4 解密過程65
5.1.5 RSA正確性證明65
5.1.6 具體實例66
5.1.7 數字簽名67
5.2 橢圓曲線加密算法67
5.2.1 橢圓曲線68
5.2.2 群68
5.2.3 橢圓曲線上的群公理69
5.2.4 橢圓曲線上的加法69
5.2.5 有限域上的橢圓曲線70
5.2.6 具體實例71
5.2.7 ECC加密原理72
5.2.8 ECC簽名原理72

第6章MSP 74
6.1 整體架構75
6.2 MSP概述77
6.3 BCCSP 80
6.4 Setup(證書關聯) 87
6.4.1 setupCAs(建立根證書和中間證書列表) 88
6.4.2 setupAdmins(建立管理員證書列表) 94
6.4.3 setupCRLs(建立撤銷證書) 95
6.4.4 finalizeSetupCAs(建立證書樹內部節點映射列表) 95
6.4.5 newSigningIdentity(建立簽名身份列表) 96
6.4.6 Sign(簽名) 99
6.4.7 Verify(驗證) 99
6.4.8 Serialize(序列化) 0
6.4.9 DeserializeIdentity(反序列化) 1
6.4. Validate(校驗身份) 2
6.4.11 SatisfiesPrincipal(檢查規則) 6
6.4.12 setupTLSCAs(建立TLS根證書和中間證書列表) 1
6.4.13 setupOUs(建立組織單元列表) 111
6.5 簽名策略112
6.5.1 簽名策略定義112
6.5.2 簽名策略封裝114
6.5.3 策略編譯115


第7章賬本管理121
7.1 賬本關係121
7.2 賬本管理概述126
7.2.1 Initialize初始化賬本提供者126
7.2.2 CreateLedger創建賬本137
7.2.3 OpenLedger打開賬本140
7.2.4 GetLedgerIDs獲取賬本ID 141
7.2.5 Close關閉賬本141
7.3 賬本ID存儲idStore 142
7.4 賬本存儲提供者ledgerStoreProvider 144
7.4.1 區塊數據存儲提供者blkStoreProvider 146
7.4.2 私有數據儲存提供者pvtStoreProvider 155
7.5 記賬提供者bookkeepingProvider 161
7.6 版本數據庫提供者vdbProvider 162
7.7 歷史數據庫提供者historydbProvider 165
7.8 建立賬本newKVLedger 168
7.8.1 初始化交易管理器170
7.8.2 實例化私有數據清除管理器173
7.8.3 新建有效期記賬管理器176
7.8.4 創建驗證管理器179


第8章orderer 182
8.1 入口函數183
8.2 總體描述185
8.3 賬本工廠186
8.4 共識接口190
8.4.1 solo模式196
8.4.2 kafka模式198


第9章Gossip 2
9.1 Gossip協議211
9.2 映射器idMapper 215
9.3 發現層disc 218
9.4 通信層Comm 228
9.5 分批發射器emitter 232
9.6 安全顧問secAdvisor 233
9.7 消息加密服務mcs 234
9.8 調停器Mediator 236
9.9 拉取引擎PullEngine 242
9. 狀態模塊state 245
9..1 go s.listen() 246
9..2 go s.deliverPayloads() 246
9..3 go s.antiEntropy() 251
9..4 go s.processStateRequests() 251

第章gRPC 254
.1 發現Discovery 255
.1.1 註冊服務端實例255
.1.2 新建客戶端實例256
.2 流言蜚語Gossip 258
.2.1 註冊服務端實例258
.2.2 新建客戶端實例260
.3 原子廣播AtomicBroadcast 261
.3.1 註冊服務端實例262
.3.2 新建客戶端實例269
.4 管理Admi269
.4.1 註冊服務端實例270
.4.2 新建客戶端實例271
.5 鏈碼支持ChaincodeSupport 272
.5.1 註冊服務端實例272
.5.2 新建客戶端實例279
.6 投遞Deliver 284
.6.1 註冊服務端實例284
.6.2 新建客戶端實例285
.7 背書Endorser 285
.7.1 註冊服務端實例286
.7.2 新建客戶端實例288

1章peer 294
11.1 peer command 294
11.2 mai295
11.3 node start 299
11.4 新建訪問控制列表提供者301
11.5 新建操作系統307
11.6 賬本管理器初始化308
11.7 鏈碼開發模式309
11.8 新建投遞事件服務 3
11.9 啟動鏈碼服務 3
11. 啟動管理服務312
11.11 新建背書服務312
11.12 初始化Gossip服務313
11.13 peer初始化314
11.14 註冊發現服務315
11.15 啟動peer服務319
11.16 啟動性能分析服務319
11.17 node end 320