本書從架構(gòu),核心部件,到實際開發(fā),涉及多個維度,共11章。第1章,Hyperledger Fabric的認識與環(huán)境搭建。第2章,深入淺出Fabric架構(gòu)設(shè)計。第3章,化繁為簡自行搭建你的Fabric網(wǎng)絡(luò)。第4章,全方位認識鏈碼:鏈碼作用及對鏈碼進行管理與測試。第5章,鏈碼開發(fā)與實踐。第6章,深入MSP成員管理與Fabric CA服務(wù)實現(xiàn)。第7章,白話Fabric共識機制。第8章,F(xiàn)abric中數(shù)據(jù)分發(fā)機制的實現(xiàn)。第9章,F(xiàn)abric分布式賬本數(shù)據(jù)存儲。第10-13章,Web應(yīng)用環(huán)境搭建、架構(gòu)以及基于區(qū)塊鏈技術(shù)的學(xué)歷信息征信系統(tǒng)實現(xiàn)。
前 言
基 礎(chǔ) 篇
第1章Hyperledger Fabric認知與環(huán)境搭建 3
1.1全面認識超級賬本 3
1.1.1超級賬本由來 3
1.1.2超級賬本分類 4
1.1.3認識Hyperledger Fabric 4
1.2邁出第一步:搭建環(huán)境 5
1.2.1操作系統(tǒng) 5
1.2.2安裝所需工具 5
1.3安裝Hyperledger Fabric 10
1.3.1下載fabric-samples與二進制文件 10
1.3.2Hyperledger Fabric源碼方式編譯 12
1.4測試Hyperledger Fabric網(wǎng)絡(luò)環(huán)境 17
1.4.1測試Hyperledger Fabric環(huán)境 18
1.4.2構(gòu)建你的第一個Hyperledger Fabric網(wǎng)絡(luò) 18
第2章深入淺出介紹Hyperledger Fabric架構(gòu)設(shè)計 21
2.1透視邏輯架構(gòu)與運行時架構(gòu) 21
2.1.1邏輯架構(gòu) 21
2.1.2運行時架構(gòu) 22
2.2Hyperledger Fabric交易流程分析 24
2.3Hyperledger Fabric核心配置文件詳解 28
2.3.1core.yaml詳解 29
2.3.2orderer.yaml詳解 36
第3章搭建自己的Hyperledger Fabric網(wǎng)絡(luò) 39
3.1生成組織結(jié)構(gòu)與身份證書 39
3.1.1與組織結(jié)構(gòu)及身份證書關(guān)聯(lián)的配置文件 39
3.1.2如何生成組織結(jié)構(gòu)及身份證書 40
3.2不可或缺的配置文件 45
3.2.1conf?igtx.yaml配置文件指定的核心內(nèi)容 45
3.2.2Orderer服務(wù)啟動初始區(qū)塊的創(chuàng)建 47
3.2.3創(chuàng)建必需的應(yīng)用通道交易配置文件 48
3.2.4生成錨節(jié)點更新配置文件 49
3.3一分鐘啟動分布式網(wǎng)絡(luò) 49
3.3.1網(wǎng)絡(luò)服務(wù)的配置 50
3.3.2關(guān)聯(lián)的docker-compose-base.yaml 52
3.3.3又被關(guān)聯(lián)的peer-base.yaml 54
3.3.4啟動網(wǎng)絡(luò) 55
3.4以最快的方式完成應(yīng)用通道的創(chuàng)建 57
3.4.1創(chuàng)建應(yīng)用通道 57
3.4.2將節(jié)點加入應(yīng)用通道 58
3.4.3更新錨節(jié)點 59
鏈 碼 篇
第4章全方位認識鏈碼:鏈碼管理與測試 63
4.1初識鏈碼:鏈碼的概念與原理 63
4.2鏈碼使用:安裝、實例化、查詢與調(diào)用 65
4.2.1安裝鏈碼 66
4.2.2實例化鏈碼 66
4.2.3查詢鏈碼 67
4.2.4調(diào)用鏈碼 67
4.3鏈碼的其他操作:實現(xiàn)鏈碼的打包與升級 69
4.3.1鏈碼的打包與簽名 69
4.3.2鏈碼的升級 70
4.4開發(fā)模式下的測試:簡化鏈碼的測試過程 72
4.4.1啟動網(wǎng)絡(luò) 72
4.4.2構(gòu)建并啟動鏈碼 73
4.4.3調(diào)用鏈碼 74
第5章鏈碼開發(fā)與實踐 77
5.1如何利用Fabric提供的接口編寫鏈碼 77
5.1.1鏈碼接口 78
5.1.2必要結(jié)構(gòu) 78
5.2如何操作賬本數(shù)據(jù):熟悉鏈碼相關(guān)API 79
5.3鏈碼實現(xiàn)的Hello World 81
5.3.1鏈碼開發(fā) 82
5.3.2鏈碼測試 84
5.4動手編碼一:鏈碼實現(xiàn)資產(chǎn)管理 85
5.4.1資產(chǎn)鏈碼開發(fā) 85
5.4.2鏈碼測試 88
5.5動手編碼二:鏈碼實現(xiàn)轉(zhuǎn)賬 89
5.5.1轉(zhuǎn)賬鏈碼開發(fā) 89
5.5.2鏈碼測試 97
核 心 篇
第6章MSP成員管理與Hyperledger Fabric CA服務(wù)實現(xiàn) 101
6.1走進MSP 101
6.1.1MSP的定義與作用 101
6.1.2MSP的組成結(jié)構(gòu) 102
6.1.3MSP應(yīng)用 103
6.2認識與安裝Hyperledger Fabric CA 105
6.3啟動Hyperledger Fabric CA 107
6.3.1初始化 107
6.3.2快速啟動 108
6.3.3配置數(shù)據(jù)庫 109
6.3.4配置LDAP 110
6.4應(yīng)用Hyperledger Fabric CA的客戶端命令 111
6.4.1Hyperledger Fabric CA客戶端命令 112
6.4.2查看AKI和序列號 116
第7章白話Hyperledger Fabric共識機制 118
7.1Hyperledger Fabric中的共識實現(xiàn) 118
7.1.1共識算法的屬性和類型 118
7.1.2Hyperledger Fabric中的共識實現(xiàn) 120
7.2基于Kafka排序服務(wù)的實現(xiàn) 121
7.2.1指定Kafka實現(xiàn)排序服務(wù) 122
7.2.2配置網(wǎng)絡(luò)環(huán)境 123
7.2.3啟動網(wǎng)絡(luò) 129
7.2.4測試Kafka排序服務(wù) 131
7.3多鏈及多通道實現(xiàn) 133
7.3.1多鏈及多通道 133
7.3.2應(yīng)用多通道 135
第8章Hyperledger Fabric中數(shù)據(jù)分發(fā)機制的實現(xiàn) 139
8.1認識Gossip 139
8.1.1Gossip協(xié)議 139
8.1.2Gossip數(shù)據(jù)傳輸 140
8.2Hyperledger Fabric中數(shù)據(jù)同步的實現(xiàn) 141
8.2.1Hyperledger Fabric中的Gossip 141
8.2.2Hyperledger Fabric的數(shù)據(jù)同步實現(xiàn) 144
第9章Hyperledger Fabric分布式賬本數(shù)據(jù)存儲 147
9.1交易數(shù)據(jù)的存儲 147
9.1.1區(qū)塊鏈賬本數(shù)據(jù) 147
9.1.2數(shù)據(jù)存儲 150
9.2Hyperledger Fabric狀態(tài)數(shù)據(jù)庫 154
9.2.1CouchDB數(shù)據(jù)庫簡介 154
9.2.2CouchDB在Hyperledger Fabric中的具體實現(xiàn) 154
9.2.3測試CouchDB 159
項目實戰(zhàn)篇
第10章 Web項目實戰(zhàn)之環(huán)境搭建 165
10.1 環(huán)境準備清單 165
10.2 搭建網(wǎng)絡(luò)環(huán)境 166
10.2.1網(wǎng)絡(luò)環(huán)境準備 166
10.2.2配置docker-compose.yml文件 167
10.2.3測試網(wǎng)絡(luò)環(huán)境 171
第11章 Web項目實戰(zhàn)之使用Fabric-SDK-Go 173
11.1 創(chuàng)建Fabric-SDK對象并建立通道 173
11.1.1配置Fabric-SDK 173
11.1.2定義所需結(jié)構(gòu)體 177
11.1.3創(chuàng)建Fabric-SDK 178
11.1.4測試創(chuàng)建通道 179
11.2 滿足依賴 180
11.2.1安裝dep工具 180
11.2.2下載所需依賴 181
11.2.3測試Fabric-SDK 181
11.2.4關(guān)閉網(wǎng)絡(luò)并清理環(huán)境 182
11.2.5利用Makef?ile簡化步驟 182
11.3 鏈碼實現(xiàn) 184
11.4 使用Fabric-SDK實現(xiàn)鏈碼的自動部署 186
11.4.1添加結(jié)構(gòu)體成員 186
11.4.2使用Fabric-SDK安裝及實例化鏈碼 187
11.4.3在main中調(diào)用 188
11.4.4測試 188
第12章 Web項目實戰(zhàn)之Web應(yīng)用實現(xiàn) 190
12.1 理解MVC,合理地設(shè)計應(yīng)用 190
12.2 調(diào)用鏈碼:設(shè)計業(yè)務(wù)層 192
12.2.1事件處理 192
12.2.2調(diào)用鏈碼添加狀態(tài) 193
12.2.3調(diào)用鏈碼查詢狀態(tài) 194
12.3 MVC架構(gòu)應(yīng)用實現(xiàn) 196
第13章 實戰(zhàn):構(gòu)建學(xué)歷信息征信系統(tǒng) 201
13.1 需求分析與架構(gòu)設(shè)計 201
13.1.1需求分析 201
13.1.2架構(gòu)設(shè)計 202
13.1.3數(shù)據(jù)模型設(shè)計 202
13.1.4網(wǎng)絡(luò)環(huán)境 203
13.1.5測試網(wǎng)絡(luò)環(huán)境 205
13.2 SDK與鏈碼的實現(xiàn) 205
13.2.1創(chuàng)建conf?ig.yaml文件 205
13.2.2聲明結(jié)構(gòu)體 205
13.2.3編寫鏈碼 206
13.2.4Fabric-SDK-Go實現(xiàn) 211
13.2.5安裝依賴 214
13.2.6鏈碼自動部署 216
13.3 業(yè)務(wù)層實現(xiàn) 218
13.3.1事件處理 218
13.3.2業(yè)務(wù)層調(diào)用鏈碼實現(xiàn)添加狀態(tài) 219
13.3.3根據(jù)證書編號與姓名查詢狀態(tài) 221
13.3.4根據(jù)身份證號碼查詢狀態(tài) 223
13.3.5修改/添加信息狀態(tài) 224
13.4 控制層實現(xiàn) 226
13.4.1設(shè)置系統(tǒng)用戶 226
13.4.2處理響應(yīng) 228
13.4.3處理請求 228
13.4.4指定路由 228
13.5 視圖層實現(xiàn) 228
13.5.1目錄結(jié)構(gòu) 228
13.5.2相關(guān)源碼實現(xiàn) 229
13.5.3照片上傳 230
13.6 項目交互演示 231
13.6.1啟動Web服務(wù) 231
13.6.2訪問頁面 232
附錄 詞匯術(shù)語表 235