深度探索區塊鏈:Hyperledger技術與應用 深度探索区块链:Hyperledger技术与应用

張增駿, 董寧, 朱軒彤, 陳劍雄

立即出貨

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

相關活動主題

20180802 %e6%9c%80%e6%96%b0%e5%88%b0%e8%b2%a8small

商品描述

準備篇(靠前~2章)涵蓋區塊鏈技術概覽與簡單的安裝、部署。核心篇(第3~9章)介紹Hyperledger的P2P協議、存儲、數據隔離、會員管理、共識機制、智能合約等核心技術與實現。實踐篇(靠前0~12章)介紹區塊鏈的應用開發模型、部署,以及開發實戰案例。

作者簡介

朱軒彤,清華大學碩士,中國社科院數量經濟與技術經濟研究所博士生,專注於技術經濟及管理研究。在政府及國際組織有豐富的工作經驗。
董寧,智鏈ChainNovaCEO,北京大學新一代信息技術研究院金融科技研究中心主任,原IBM大中華區lT經濟學負責人,IBM區塊鏈社區發起人。
張增駿,智鏈ChainNova技術總監和架構師。十餘年軟件開發和項目管理經驗,設計並實現了多個區塊鏈項目,帶領團隊獲得“2017可信區塊鏈峰會”非金融類案例獎。中國信通院可信區塊鏈專家委員會成員,參與討論並推動可信區塊鏈測試標準的製定,多次受邀到高校與企業分享與推動區塊鏈落地工作。曾任綠盟科技PDT經理,帶領團隊研發的遠程安全評估系統(RSAS)連續多年國內排名第1,廣泛應用於多個重點領域。目前關注區塊鏈、網絡安全、大數據、雲計算和人工智能等領域。
陳劍雄,智鏈ChainNova首席科學家,原金山雲技術VP,中科院計算與通信工程學院碩士。多年大規模集群系統研發經驗,參與多個區塊鏈核心系統設計和應用。

目錄大綱

序一
序二
序三
前言

第一篇準備篇
第1章區塊鏈概述2 
1.1區塊鏈的前世今生2 
1.1.1區塊鏈的歷史起源——比特幣2 
1.1.2歡迎來到區塊鏈的世界3 
1.1.3區塊鏈演進趨勢4 
1.2區塊鏈概念5 
1.2.1區塊鏈本質6 
1.2.2區塊鏈工作原理6 
1.2.3區塊鏈技術特點7 
1.2.4區塊鏈層次模型8 
1.2.5區塊鏈共識算法8 
1.2.6區塊鏈並不一定去中心化9 
1.3區塊鏈技術平台10 
1.3.1比特幣10 
1.3.2以太坊11 
1.3.3瑞波13 
1.3.4區塊鏈商用平台:超級賬本13 
1.3.5區塊鏈技術平台比較15 
1.4區塊鏈的商用之道15 
1.4.1區塊鏈的2.0時代:商用區塊鏈15 
1.4.2超級賬本:商用區塊鏈的“第五元素” 17 
1.4.3區塊鏈的商業應用場景17 
1.5本章小結18 

第2章超級賬本初體驗19 
2.1基礎環境安裝19
2.1.1 Docker的安裝和使用19 
2.1.2 Docker Compose的安裝和使用21 
2.1.3下載超級賬本源代碼24 
2.2超級賬本部署調用24 
2.2.1下載Docker鏡像文件24 
2.2.2部署超級賬本網絡25 
2.2.3鏈碼調用和查詢26 
2.2.4常見錯誤27 
2.3節點的配置參數傳遞規則29 
2.4本章小結31 

第二篇核心篇
第3章超級賬本的系統架構34 
3.1系統邏輯架構35 
3.2網絡節點架構37 
3.3典型交易流程39 
3.3.1創建交易提案並發送給背書節點39 
3.3.2背書節點模擬交易並生成背書籤名41 
3.3.3收集交易的背書42 
3.3.4構造交易請求並發送給排序服務節點43 
3.3.5排序服務節點以對交易進行排序並生成區塊45 
3.3.6排序服務節點以廣播給組織的主節點45 
3.3.7記賬節點驗證區塊內容並寫入區塊45 
3.3.8在組織內部同步最新的區塊49 
3.4消息協議結構49 
3.4.1信封消息結構49 
3.4.2配置管理結構51 
3.4.3背書流程結構52
3.5策略管理和訪問控制56 
3.5.1策略定義及其類型56 
3.5.2交易背書策略57 
3.5.3鏈碼實例化策略60 
3.5.4通道管理策略61 
3.6本章小結63 

第4章基於Gossip的P2P數據分發64 
4.1概述64 
4.2超級賬本中的Gossip協議65 
4.3成員認證及身份管理67 
4.4節點啟動及成員管理67 
4.5主節點選舉過程68 
4.6基於反熵的狀態同步69 
4.7數據傳播過程70 
4.8多通道的支持70 
4.9消息的驗證策略71 
4.10消息的多路分用及分區73 
4.11和Gossip相關的配置參數76 
4.12本章小結77 

第5章分佈式賬本存儲78 
5.1概述78 
5.2讀寫集79 
5.2.1交易模擬和讀寫集79 
5.2.2交易驗證和世界狀態更新80 
5.2.3模擬和驗證示例80 
5.3賬本編號81 
5.4賬本數據81 
5.4.1賬本數據存儲82 
5.4.2賬本數據讀取83 
5.4. 3交易模擬執行84
5.5區塊索引84 
5.5.1文件位置指針85 
5.5.2索引的同步過程86 
5.6狀態數據87 
5.6.1 LevelDB 88 
5.6.2 CouchDB 89 
5.6.3基於狀態數據的區塊驗證91 
5.7歷史數據92 
5.8數據恢復92 
5.9本章小結93 

第6章集成共識機制的排序服務94 
6.1概述94 
6.1.1共識算法的類型95 
6.1.2 Hyperledger Fabric 1.0的共識機制96 
6.2實現數據隔離的多通道97 
6.2.1排序服務的初始化99 
6.2.2通道的創建101 
6.2.3通道的更新105 
6.2.4通道的加入107 
6.2.5通道的查詢107 
6.3可插拔的排序服務108 
6.3.1排序服務接口108 
6.3.2基於單進程的排序服務110 
6.3.3基於Kafka的排序服務110 
6.3.4鏈消息過濾器122 
6.4本章小結124 

第7章實現數據隔離的多鍊及多通道125 
7.1數據存儲對多鏈的支持126 
7.1.1賬本數據126
7.1.2索引數據126 
7.1.3狀態數據127 
7.1.4歷史數據127 
7.2鏈碼對多鏈的支持128 
7.2.1鏈碼的生命週期管理128 
7.2.2鏈碼和背書節點的通信129 
7.2. 3鏈碼的部署和調用130 
7.3多通道對多鏈的支持131 
7.4命令行和SDK對多鏈的支持132 
7.5關於系統鏈132 
7.6本章小結132 

第8章基於數字證書的成員管理服務133 
8.1實現成員管理的MSP 133 
8.1.1 MSP成員的驗證133 
8.1.2 MSP的目錄結構134 
8.1.3 MSP的配置最佳實踐140 
8.2頒發數字證書的Fabric CA 142 
8.2.1概述142 
8.2.2 Fabric CA服務端的安裝部署143 
8.2.3 Fabric CA服務端的操作使用148 
8.3本章小結158 

第9章支持多種語言的智能合約159 
9.1概述160 
9.2鏈碼的生命週期管理160 
9.2.1鏈碼的生命週期160 
9.2 .2應用程序和鏈碼的交互流程164 
9.2.3背書節點接收應用程序的請求處理165
9.2.4採用上下文實現交易的模擬執行166 
9.2.5鏈碼消息的數據分發166 
9.2.6鏈碼運行環境的管理168 
9.3內置的系統鏈碼172 
9.3.1生命週期管理系統鏈碼173 
9.3. 2配置管理系統鏈碼180 
9.3.3查詢管理系統鏈碼182 
9.3.4交易背書系統鏈碼182 
9.3.5交易驗證系統鏈碼184 
9.4鏈碼的相互調用184 
9.5背書節點和鏈碼的有限狀態機185 
9.5.1背書節點和鏈碼之間的事件188 
9.5.2背書節點的有限狀態機189 
9.5.3鏈碼的有限狀態機190 
9.6本章小結192 

第三篇應用篇
第10章超級賬本的應用開發模型194 
10.1應用開發模型194 
10.2應用程序開發的SDK 194 
10.2.1概述195 
10.2.2 SDK規範195 
10.2.3應用場景介紹204 
10.3鏈碼的開發和調試210 
10.3.1鏈碼需要實現的接口210 
10.3.2鏈碼的SDK提供給鏈碼的接口212 
10.3.3鏈碼開發的注意事項214 
10.3.4鏈碼的調試215 
10.4本章小結216

第11章從零開始部署超級賬本網絡217 
11.1準備超級賬本運行環境217 
11.1.1超級賬本運行環境217 
11.1.2編譯超級賬本鏡像文件224 
11.2快速構建超級賬本網絡227 
11.2.1下載BYFN的代碼227 
11.2.2 BYFN腳本介紹227 
11.2.3生成網絡初始化配置228 
11.2.4啟動超級賬本網絡230 
11.2.5關閉超級賬本網絡235 
11.3逐步建立超級賬本網絡236 
11.3.1生成MSP證書236 
11.3.2生成排序服務創世區塊236 
11.3.3生成通道配置創世區塊236 
11.3.4定義組織錨節點237 
11.3.5啟動超級賬本網絡237 
11.3.6創建並加入通道238 
11.3.7安裝和實例化鏈碼240 
11.3.8執行鏈碼查詢243 
11.3.9執行鏈碼調用244 
11.4本章小結245 

第12章超級賬本的應用開發實例246 
12.1票據背書場景介紹246 
12.1.1票據關係人247 
12.1.2票據行為分類247 
12.1.3基於區塊鏈技術的數字票據249 
12.2票據背書需求分析250
12.3票據背書架構設計251 
12.3.1票據背書的分層架構252 
12.3.2票據背書的數據模型253 
12.4票據背書實現254 
12.4.1應用程序實現254 
12.4.2鏈碼功能實現275 
12.5票據背書快速部署287 
12.6票據背書展示288 
12.6.1系統登錄288 
12.6.2發布票據288 
12.6.3我的票據289 
12.6.4發起票據背書289 
12.6.5待簽收票據列表290 
12.6.6簽收票據背書290 
12.6.7拒收票據背書291 
12.7本章小結292 
附錄A術語表293 
附錄B超級賬本的實用工具297 
參考文獻308