區塊鏈輕松上手:原理、源碼、搭建與應用
內容描述
本書首先從以比特幣為代表的數字貨幣的歷史與現狀開始,講解區塊鏈的概念、生態、底層技術與架構;然後講解Fabric的開發環境與調試方法,並細致解析配置文件及命令行的用法;其次以Fabric Java SDK為主介紹如何使用Java代碼開發Fabric應用,包括客戶端管理、通道配置、事件監聽、智能合約開發等;再次深入解析Fabric源碼,解析客戶端交易、智能合約初始化及背書流程;最後深入講解Fabric的安全機制,以及Fabric CA的使用與管理等內容。本書兼顧原理與實戰,主要面向想快速上手區塊鏈及瞭解其原理與架構的學生、愛好者、開發人員、架構師與技術管理人員。
目錄大綱
第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
作者介紹
Leader-us本名吳治輝,HPE資深架構師。擁有超過15年的軟件研發經驗,專注於電信軟件和雲計算方面的軟件研發,擁有豐富的大型項目架構設計經驗,是業界少有的具備很強Coding能力的S級資深架構師,也是《ZeroC Ice權威指南》《架構解密:從分佈式到微服務》的作者。李艷軍擁有多年IT行業從業經驗,開源軟件愛好者,專注於區塊鏈、雲計算方面的技術研究。趙鍇擁有14年IT從業經驗,熱愛開源事業,致力於將前沿技術轉化為生產力,在多家手游、電信、醫療行業公司擔任過架構師和技術總監。