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