Hyperledger Fabric分布式賬本技術(shù)原理與應(yīng)用
本書內(nèi)容包括區(qū)塊鏈基本知識(shí)、Hyperledger Fabric分布式賬本技術(shù)的基礎(chǔ)架構(gòu)、網(wǎng)絡(luò)部署、賬本模型、共識(shí)機(jī)制、身份管理、隱私保護(hù)等技術(shù)原理以及Fabric重要模塊的使用方法,給出了多個(gè)應(yīng)用開發(fā)示例。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
目錄/CONTENTS
第1章 區(qū)塊鏈技術(shù)概述 1
1.1 區(qū)塊鏈發(fā)展的技術(shù)背景 1
1.1.1 密碼學(xué) 1
1.1.2 分布式共識(shí) 3
1.2 區(qū)塊鏈發(fā)展的社會(huì)背景 4
1.2.1 數(shù)字經(jīng)濟(jì) 5
1.2.2 數(shù)字社會(huì) 6
1.2.3 數(shù)字技術(shù) 7
1.3 區(qū)塊鏈基本概念與原理 8
1.3.1 基本概念 8
1.3.2 關(guān)鍵技術(shù) 12
1.3.3 基本原理 13
1.4 區(qū)塊鏈技術(shù)特性與分類 15
1.4.1 技術(shù)特性 15
1.4.2 區(qū)塊鏈分類 16
1.5 區(qū)塊鏈技術(shù)代際演進(jìn) 18
1.5.1 密碼朋克 18
1.5.2 加密貨幣 19
1.5.3 智能合約 20
1.5.4 應(yīng)用拓展 21
1.6 區(qū)塊鏈技術(shù)應(yīng)用現(xiàn)狀與發(fā)展趨勢(shì) 21
1.6.1 應(yīng)用現(xiàn)狀 21
1.6.2 發(fā)展趨勢(shì) 24
本章小結(jié) 29
第2章 Hyperledger Fabric分布式賬本技術(shù)基礎(chǔ)架構(gòu) 31
2.1 Fabric概述 31
2.1.1 Fabric項(xiàng)目背景 31
2.1.2 Fabric技術(shù)特征 32
2.2 基礎(chǔ)架構(gòu) 33
2.2.1 網(wǎng)絡(luò)層 34
2.2.2 核心層 36
2.2.3 接口層 36
2.3 基本概念 36
2.3.1 網(wǎng)絡(luò)節(jié)點(diǎn) 36
2.3.2 分布式賬本 39
2.3.3 智能合約和鏈碼 39
2.3.4 賬本通道 39
2.3.5 私有數(shù)據(jù)集 40
2.4 交易流程 41
2.4.1 交易流程簡(jiǎn)介 41
2.4.2 案例說(shuō)明 42
本章小結(jié) 44
第3章 Hyperledger Fabric分布式賬本技術(shù)環(huán)境 45
3.1 Ubuntu操作系統(tǒng) 45
3.1.1 Linux概述 45
3.1.2 Ubuntu Server操作 46
3.2 Docker 47
3.2.1 Docker原理 48
3.2.2 Docker操作 49
3.2.3 Docker-Compose 51
3.3 Go語(yǔ)言 57
3.3.1 Go語(yǔ)言環(huán)境配置 57
3.3.2 Go語(yǔ)言語(yǔ)法 59
3.3.3 Go語(yǔ)言編譯與運(yùn)行 60
本章小結(jié) 61
第4章 Hyperledger Fabric分布式賬本網(wǎng)絡(luò) 63
4.1 Fabric網(wǎng)絡(luò)原理 63
4.1.1 P2P網(wǎng)絡(luò) 63
4.1.2 RPC協(xié)議 65
4.1.3 gRPC協(xié)議 68
4.1.4 Gossip協(xié)議 73
4.2 Fabric網(wǎng)絡(luò)部署 75
4.2.1 環(huán)境配置 75
4.2.2 源碼編譯 79
4.2.3 身份證書生成 81
4.2.4 容器啟動(dòng)模式 84
4.2.5 本地啟動(dòng)模式 98
4.3 Fabric網(wǎng)絡(luò)運(yùn)維與管理 108
4.3.1 增刪普通組織 108
4.3.2 網(wǎng)絡(luò)監(jiān)控與測(cè)試 113
本章小結(jié) 116
第5章 Hyperledger Fabric分布式賬本Peer節(jié)點(diǎn) 118
5.1 Peer概述 118
5.1.1 Peer節(jié)點(diǎn)類型 118
5.1.2 Peer交互流程 119
5.2 Peer編譯和部署 122
5.2.1 Peer編譯 122
5.2.2 Peer核心配置 123
5.2.3 Peer啟動(dòng) 132
5.3 Peer命令 134
5.3.1 Peer命令類型 134
5.3.2 通道操作命令 135
5.3.3 鏈碼操作命令 137
5.3.4 節(jié)點(diǎn)操作命令 140
本章小結(jié) 141
第6章 Hyperledger Fabric分布式賬本存儲(chǔ) 142
6.1 Fabric分布式賬本 142
6.1.1 賬本概念 142
6.1.2 核心組件 144
6.1.3 賬本設(shè)計(jì)模式 146
6.1.4 賬本架構(gòu) 148
6.1.5 文件存儲(chǔ) 151
6.2 賬本數(shù)據(jù)庫(kù) 153
6.2.1 LevelDB 154
6.2.2 CouchDB 155
6.2.3 數(shù)據(jù)庫(kù)索引 157
6.3 賬本區(qū)塊 159
6.3.1 區(qū)塊數(shù)據(jù)結(jié)構(gòu) 159
6.3.2 區(qū)塊交易事務(wù) 162
6.3.3 區(qū)塊數(shù)據(jù)訪問(wèn) 164
6.4 賬本區(qū)塊瀏覽器 168
6.4.1 區(qū)塊數(shù)據(jù)可視化概念 168
6.4.2 Hyperledger Explorer架構(gòu) 170
6.4.3 Hyperledger Explorer頁(yè)面 171
6.4.4 Hyperledger Explorer實(shí)驗(yàn) 173
本章小結(jié) 178
第7章 Hyperledger Fabric分布式賬本共識(shí) 179
7.1 分布式共識(shí)概述 179
7.1.1 共識(shí)問(wèn)題 179
7.1.2 共識(shí)演進(jìn) 183
7.2 分布式共識(shí)理論 188
7.2.1 FLP理論 188
7.2.2 CAP理論 188
7.2.3 BASE理論 191
7.3 分布式共識(shí)原理 192
7.3.1 Paxos 192
7.3.2 PBFT 197
7.3.3 PoW 201
7.3.4 PoS 203
7.4 Fabric共識(shí)機(jī)制 208
7.4.1 共識(shí)框架 208
7.4.2 Solo共識(shí) 216
7.4.3 Kafka共識(shí) 216
7.4.4 Raft共識(shí) 219
7.5 Fabric共識(shí)部署和測(cè)試 223
7.5.1 Solo部署和測(cè)試 223
7.5.2 Kafka部署和測(cè)試 225
7.5.3 Raft部署和測(cè)試 231
本章小結(jié) 233
第8章 Hyperledger Fabric分布式賬本身份管理 234
8.1 PKI基本原理 234
8.1.1 PKI架構(gòu) 234
8.1.2 數(shù)字證書 235
8.1.3 數(shù)字簽名 237
8.1.4 消息認(rèn)證 239
8.1.5 PKI示例 239
8.2 Fabric CA架構(gòu)與部署 244
8.2.1 Fabric CA架構(gòu) 245
8.2.2 Fabric CA部署 247
8.3 Fabric CA操作 249
8.3.1 Fabric CA操作命令 249
8.3.2 Fabric CA操作示例 252
本章小結(jié) 260
第9章 Hyperledger Fabric分布式賬本隱私保護(hù)機(jī)制 261
9.1 區(qū)塊鏈隱私保護(hù)問(wèn)題、方法與機(jī)制 261
9.1.1 區(qū)塊鏈隱私保護(hù)問(wèn)題 261
9.1.2 區(qū)塊鏈隱私保護(hù)方法與機(jī)制 262
9.2 Fabric隱私保護(hù)機(jī)制 264
9.2.1 Fabric隱私保護(hù)體系 264
9.2.2 訪問(wèn)控制 265
9.2.3 通道隔離 267
9.2.4 私有數(shù)據(jù)集 271
9.3 Fabric隱私保護(hù)機(jī)制示例 276
9.3.1 通道隔離示例 276
9.3.2 私有數(shù)據(jù)集示例 279
本章小結(jié) 284
第10章 Hyperledger Fabric分布式賬本鏈碼 285
10.1 智能合約概述 285
10.1.1 智能合約定義 285
10.1.2 智能合約應(yīng)用 286
10.2 Fabric鏈碼開發(fā)規(guī)范 287
10.2.1 鏈碼類型 287
10.2.2 鏈碼編寫 289
10.2.3 鏈碼部署 291
10.2.4 鏈碼調(diào)用 292
10.3 Fabric鏈碼編程示例 293
10.3.1 狀態(tài)轉(zhuǎn)移型鏈碼 293
10.3.2 食品溯源型鏈碼 296
本章小結(jié) 304
第11章 Hyperledger Fabric Go SDK Web服務(wù)開發(fā) 305
11.1 Web服務(wù)概述 305
11.1.1 Web框架 305
11.1.2 Gin框架 306
11.2 Go Web服務(wù)控制層 307
11.2.1 連接配置文件 307
11.2.2 控制層開發(fā) 311
11.3 Go Web服務(wù)路由層 318
11.3.1 路由層開發(fā) 318
11.3.2 路由綁定 320
本章小結(jié) 321
第12章 基于Node SDK的數(shù)字版權(quán)保護(hù)系統(tǒng)實(shí)現(xiàn) 322
12.1 版權(quán)保護(hù)場(chǎng)景分析 322
12.1.1 需求分析 322
12.1.2 架構(gòu)設(shè)計(jì) 324
12.1.3 數(shù)據(jù)模型設(shè)計(jì) 324
12.1.4 環(huán)境準(zhǔn)備 325
12.2 Node SDK應(yīng)用開發(fā) 328
12.2.1 模塊接口 328
12.2.2 鏈碼開發(fā) 331
12.2.3 網(wǎng)絡(luò)連接配置 336
12.2.4 客戶端身份注冊(cè)與登記 337
12.2.5 業(yè)務(wù)層實(shí)現(xiàn) 341
12.3 Express后端服務(wù)實(shí)現(xiàn) 346
12.3.1 路由文件 346
12.3.2 應(yīng)用主文件 353
12.4 應(yīng)用部署與測(cè)試 353
12.4.1 啟動(dòng)網(wǎng)絡(luò) 353
12.4.2 啟動(dòng)后端服務(wù) 354
12.4.3 應(yīng)用測(cè)試 354
本章小結(jié) 356
第13章 基于Go SDK的物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng) 358
13.1 物聯(lián)網(wǎng)數(shù)據(jù)采集場(chǎng)景分析 358
13.1.1 需求分析 358
13.1.2 架構(gòu)設(shè)計(jì) 358
13.1.3 數(shù)據(jù)模型設(shè)計(jì) 360
13.1.4 環(huán)境準(zhǔn)備 360
13.2 傳感器數(shù)據(jù)采集 362
13.2.1 傳感器簡(jiǎn)介 362
13.2.2 Gobot框架 363
13.2.3 數(shù)據(jù)采集實(shí)現(xiàn) 363
13.3 鏈碼與應(yīng)用開發(fā) 365
13.3.1 鏈碼開發(fā) 365
13.3.2 網(wǎng)絡(luò)連接配置 369
13.3.3 應(yīng)用開發(fā) 374
13.4 應(yīng)用部署與測(cè)試 377
13.4.1 系統(tǒng)搭建 378
13.4.2 應(yīng)用測(cè)試 378
本章小結(jié) 383
參考文獻(xiàn) 384