區塊鏈原理、設計與應用, 2/e

楊保華 陳 昌 編著

  • 出版商: 機械工業
  • 出版日期: 2020-07-01
  • 定價: $834
  • 售價: 8.5$709
  • 語言: 簡體中文
  • ISBN: 7111659805
  • ISBN-13: 9787111659808
  • 相關分類: 區塊鏈 Blockchain
  • 立即出貨

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

商品描述

本書由超級賬本核心設計和開發者撰寫,是區塊鏈開發落地的專業指南。第2版在上一版的基礎上,根據區塊鏈技術的新進展進行了全面修訂,加入了超級賬本Fabric 項目新版本的設計和實現細節分析。
本書系統化介紹區塊鏈技術的原理和應用,分為3篇,共17章。理論篇包括第1~8章,講解區塊鏈相關的理論知識,包括區塊鏈技術的由來、核心思想及典型的應用場景,與區塊鏈相關的分佈式系統技術、密碼學與安全技術,以及區塊鏈領域的3個典型開源項目——比特幣、以太坊以及超級賬本。實踐篇包括第9~13章,以超級賬本Fabric項目為例,具體講解了安裝部署、配置管理、智能合約開發等。進階篇包括第14~17章,剖析超級賬本Fabric項目新版本的設計和實現細節,如Peer節點啟動、Gossip交互、加入通道、調用鏈碼的背書處理、鏈碼啟動、本地交易提交等,以及Orderer節點啟動、Broadcast和 Deliver請求處理、區塊產生等核心過程。本書覆蓋了區塊鏈和分佈式賬本領域的新技術,可幫助讀者深入理解區塊鏈的核心原理和典型設計實現,高效地開發基於區塊鏈平臺的分佈式應用。

作者簡介

杨保华
博士,分布式系统与数据科学家,开源软件专家。现任甲骨文全球区块链技术负责人,超级账本全球技术大使,中国电子学会区块链分会委员。长期从事区块链、数据科技等领域的研发和创新,主持过多个大规模企业系统的架构设计和研发实施。在国际顶级刊物发表论文20余篇,获国际专利10余 项,并参与国际标准制定工作。曾担任IBM 科学家,超级账本全球技术委员会委员等。作为超级账本 Fabric、Cello 等项目的早期设计、开发者,持续贡献了多个开源项目。

陈昌
纸贵科技 CTO,技术方向包括云计算、

目錄大綱

前言
第1版序言
第1版前言
理論篇
第1章 區塊鏈的誕生 2
1.1 記賬科技的千年演化 2
1.2 分佈式記賬與區塊鏈 7
1.3 集大成者—比特幣 10
1.4 區塊鏈的商業價值 12
1.5 本章小結 14
第2章 核心技術概覽 15
2.1 定義與原理 15
2.2 技術的演化與分類 17
2.3 關鍵問題和挑戰 19
2.4 趨勢與展望 23
2.5 認識上的誤區 26
2.6 本章小結 27
第3章 典型應用場景 28
3.1 應用場景概覽 28
3.2 金融服務 29
3.2.1 數字貨幣 30
3.2.2 支付清結算業務 31
3.2.3 證券交易後處理 34
3.2.4 供應鏈金融 35
3.2.5 稅收服務 36
3.2.6 眾籌管理 37
3.3 徵信管理 38
3.4 權屬管理與溯源 39
3.4.1 存證 39
3.4.2 溯源 41
3.4.3 數據管理 42
3.5 資源共享 42
3.6 物流與供應鏈 44
3.7 物聯網 45
3.8 其他場景 46
3.9 本章小結 48
第4章 分佈式系統核心技術 49
4.1 一致性問題 49
4.2 共識算法 52
4.3 FLP不可能原理 54
4.4 CAP原理 56
4.4.1 定義 56
4.4.2 應用場景 56
4.5 ACID原則與多階段提交 57
4.6 Paxos算法與Raft算法 58
4.6.1 Paxos算法 58
4.6.2 Raft算法 61
4.7 拜占庭問題與算法 61
4.8 可靠性指標 65
4.9 本章小結 66
第5章 密碼學與安全技術 67
5.1 密碼學簡史 67
5.2 Hash算法與數字摘要 68
5.3 加解密算法 70
5.4 消息認證碼與數字簽名 75
5.4.1 消息認證碼 76
5.4.2 數字簽名 76
5.4.3 安全性 77
5.5 數字證書 77
5.6 PKI體系 80
5.7 默克爾樹結構 83
5.8 布隆過濾器 84
5.9 同態加密 85
5.10 其他技術 86
5.11 本章小結 89
第6章 比特幣—初露鋒芒的區塊鏈 90
6.1 比特幣項目簡介 90
6.2 工作原理 94
6.2.1 基本交易過程 94
6.2.2 重要概念 95
6.2.3 創新設計 98
6.3 挖礦過程 99
6.4 共識機制 100
6.5 閃電網絡 102
6.6 側鏈 103
6.7 熱門問題 105
6.8 相關工具 108
6.9 本章小結 109
第7章 以太坊—掙脫加密貨幣的枷鎖 110
7.1 以太坊項目簡介 110
7.2 核心概念 112
7.3 主要設計 114
7.4 相關工具 115
7.5 安裝客戶端 117
7.6 使用智能合約 118
7.6.1 搭建測試用區塊鏈 118
7.6.2 創建和編譯智能合約 119
7.6.3 部署智能合約 120
7.6.4 調用智能合約 121
7.7 智能合約案例 121
7.7.1 智能合約代碼 121
7.7.2 代碼解析 123
7.8 本章小結 125
第8章 超級賬本——面向企業的分佈式賬本 126
8.1 超級賬本項目簡介 126
8.2 社區組織結構 128
8.3 頂級項目介紹 129
8.4 開發協作工具 134
8.5 貢獻代碼 136
8.6 本章小結 139
實踐篇
第9章 Fabric安裝與部署 142
9.1 簡介 142
9.2 本地編譯組件 143
9.2.1 環境配置 144
9.2.2 獲取代碼 145
9.2.3 編譯安裝Peer組件 145
9.2.4 編譯安裝Orderer組件 145
9.2.5 編譯安裝Fabric CA組件 146
9.2.6 編譯安裝配置輔助工具 146
9.2.7 安裝Protobuf支持和Go語言相關工具 146
9.2.8 示例配置 147
9.3 容器方式獲取 147
9.3.1 安裝Docker服務 147
9.3.2 安裝docker-compose 147
9.3.3 獲取Docker鏡像 148
9.3.4 鏡像Dockerfile 150
9.4 用本地方式啟動Fabric網絡 154
9.4.1 規劃初始網絡拓撲 155
9.4.2 準備啟動配置文件 156
9.4.3 啟動排序節點 163
9.4.4 啟動Peer節點 165
9.4.5 創建通道 166
9.4.6 加入通道 166
9.4.7 更新錨節點配置 167
9.5 用容器方式啟動Fabric網絡 167
9.6 本章小結 169
第10章 管理Fabric網絡 170
10.1 簡介 170
10.2 使用通道 170
10.3 管理節點 184
10.4 管理鏈上代碼 186
10.5 監聽網絡事件 202
10.6 自動發現網絡信息 205
10.6.1 主要功能 205
10.6.2 全局參數 205
10.6.3 子命令 205
10.7 使用運維服務 210
10.8 如何升級網絡版本 213
10.8.1 能力類型 213
10.8.2 推薦升級步驟 214
10.9 使用SDK 216
10.10 註意事項與最佳實踐 217
10.11 本章小結 219
第11章 智能合約的開發 220
11.1 簡介 220
11.2 鏈碼的概念與結構 221
11.2.1 Chaincode接口 222
11.2.2 鏈碼結構 222
11.3 鏈碼開發API 223
11.3.1 賬本狀態交互API 223
11.3.2 交易信息API 225
11.3.3 參數讀取API 226
11.3.4 私密數據API 226
11.3.5 其他API 227
11.4 應用開發案例一:轉賬 228
11.5 應用開發案例二:資產權屬管理 231
11.6 應用開發案例三:調用其他鏈碼 240
11.7 應用開發案例四:發送事件 241
11.8 應用開發案例五:基於屬性的權限控制 242
11.9 應用開發案例六:私密數據 243
11.10 使用外部鏈碼 248
11.10.1 外部鏈碼構建器結構 248
11.10.2 鏈碼安裝包結構 251
11.10.3 配置Peer節點調用外部鏈碼 252
11.10.4 外部鏈碼編寫示例 252
11.11 最佳開發實踐 253
11.12 本章小結 257
第12章 Fabric配置解析 258
12.1 簡介 258
12.2 Peer配置剖析 259
12.2.1 peer部分 259
12.2.2 vm部分 266
12.2.3 chaincode部分 267
12.2.4 ledger部分 267
12.2.5 operations部分 268
12.2.6 metrics部分 268
12.3 Orderer配置剖析 269
12.4 生成組織身份 272
12.5 通道配置文件 277
12.6 管理通道配置 284
12.7 轉換網絡配置 294
12.8 本章小結 298
第13章 身份證書管理 299
13.1 簡介 299
13.2 安裝服務端和客戶端 300
13.2.1 本地編譯 300
13.2.2 獲取和使用Docker鏡像 301
13.3 啟動CA服務 302
13.4 服務端命令剖析 304
13.4.1 全局命令參數 304
13.4.2 init命令 307
13.4.3 start命令 307
13.5 服務端RESTful API 307
13.6 服務端配置文件解析 310
13.7 與服務端進行交互 316
13.8 客戶端命令剖析 317
13.8.1 全局命令參數 318
13.8.2 affiliation命令 320
13.8.3 enroll命令 320
13.8.4 gencrl命令 321
13.8.5 gencsr命令 322
13.8.6 getcacert和getcainfo命令 322
13.8.7 identity命令 322
13.8.8 reenroll命令 322
13.8.9 register命令 323
13.8.10 revoke命令 323
13.9 客戶端配置文件解析 324
13.10 生產環境部署 325
13.11 本章小結 327
進階篇
第14章 Fabric架構與設計 330
14.1 整體架構概覽 330
14.2 核心概念與組件 333
14.2.1 網絡層相關組件 334
14.2.2 共識機制相關組件 337
14.2.3 權限管理相關組件 338
14.2.4 業務層相關組件 339
14.3 消息協議 345
14.3.1 消息結構 345
14.3.2 客戶端訪問Peer節點 346
14.3.3 客戶端、Peer節點訪問Orderer 348
14.3.4 鏈碼和Peer節點交互 348
14.3.5 Peer節點之間Gossip交互 349
14.4 權限策略和訪問控制 352
14.4.1 應用場景 353
14.4.2 身份證書 354
14.4.3 身份集合 354
14.4.4 權限策略的實現 355
14.4.5 通道策略 359
14.4.6 通道訪問控制 360
14.4.7 背書策略 362
14.4.8 基於證書屬性的鏈碼訪問控制 364
14.4.9 實例化策略 365
14.5 隱私保護 365
14.5.1 通道機制 365
14.5.2 私密數據庫 366
14.5.3 加密保護 368
14.6 用戶鏈碼 369
14.6.1 基本結構 369
14.6.2 鏈碼與Peer的交互過程 370
14.6.3 Peer側處理 372
14.6.4 鏈碼側處理 373
14.7 系統鏈碼 375
14.7.1 配置系統鏈碼 375
14.7.2 查詢系統鏈碼 376
14.7.3 背書系統鏈碼 376
14.7.4 驗證系統鏈碼 377
14.7.5 傳統生命周期系統鏈碼 377
14.7.6 新的生命周期系統鏈碼 378
14.8 排序服務 379
14.8.1 gRPC服務接口 380
14.8.2 賬本管理 380
14.8.3 共識插件 383
14.9 本章小結 386
第15章 Fabric Peer實現剖析 387
15.1 節點啟動 387
15.2 加入通道 399
15.2.1 解析和校驗請求 399
15.2.2 創建本地賬本結構 401
15.2.3 創建通道結構 402
15.2.4 啟動Gossip服務 404
15.2.5 註冊通道結構到全局字典 410
15.3 Gossip過程 411
15.3.1 整體流程 411
15.3.2 初始化配置 412
15.3.3 初始化和啟動Gossip服務 413
15.4 鏈碼啟動和初始化 419
15.4.1 整體流程 419
15.4.2 編譯和啟動鏈碼 421
15.4.3 初始化鏈碼 426
15.4.4 處理鏈碼消息 426
15.5 背書處理 430
15.5.1 檢查和校驗提案 431
15.5.2 模擬執行鏈碼調用 431
15.5.3 對結果背書並返回結果 433
15.6 提交交易結果 434
15.6.1 整體流程 436
15.6.2 提交前準備 437
15.6.3 提交過程 440
15.6.4 提交後處理 449
15.6.5 總結本地賬本結構 449
15.7 本章小結 451
第16章 Fabric Orderer實現剖析 452
16.1 核心工作過程 452
16.1.1 工作原理 452
16.1.2 核心共識過程 453
16.1.3 分塊決策 455
16.2 排序服務啟動 455
16.3 Broadcast調用 466
16.3.1 整體流程 466
16.3.2 解析消息 468
16.3.3 處理普通交易消息 469
16.3.4 處理配置交易消息 472
16.4 構造本地區塊 475
16.4.1 整體流程 475
16.4.2 成為Leader後的處理 477
16.4.3 成為Follower後的處理 477
16.4.4 主共識循環 478
16.4.5 請求應答協程邏輯 483
16.5 Deliver調用 484
16.5.1 整體流程 485
16.5.2 解析消息 488
16.5.3 檢查訪問權限 489
16.5.4 計算區塊範圍 489
16.5.5 發送區塊 490
16.5.6 返回響應 490
16.6 本章小結 490
第17章 區塊鏈服務平臺 491
17.1 簡介 491
17.2 IBM區塊鏈服務 492
17.3 甲骨文區塊鏈服務 493
17.4 騰訊雲區塊鏈服務平臺 494
17.5 阿裡雲區塊鏈服務平臺 495
17.6 百度超級鏈服務平臺 497
17.7 紙貴科技Z-BaaS區塊鏈服務平臺 499
17.8 超級賬本Cello項目 500
17.9 本章小結 502
附錄
附錄A 術語 504
附錄B 常見問題 508
附錄C 參考資源鏈接 511