Hyperledger 區塊鏈開發實戰:利用 Hyperledger Fabric 和 Composer 構建去中心化的應用 Hands-On Blockchain with Hyperledger

Nitin Gaur, Luc Desrosiers, Petr Novotny, Venkatraman Ramakrishna, Anthony O'Dowd, Salman A. Baset 譯者 陳鵬飛//馬丹丹//鄭子彬

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

商品描述

區塊鍊和Hyperledger技術是當今的熱門話題。
Hyperledger Fabric和Hyperledger Composer是開源項目,能夠幫助組織機構創建私有的許可區塊鍊網絡,
它們在金融、銀行、供應鍊和物聯網等領域都有應用。
《Hyperledger區塊鏈開發實戰》將是使用Hyperledger技術探索和創建區塊鍊網絡的簡單參考。
本書先概述了區塊鏈的演變過程,包括相關區塊鏈技術的總覽。
你將學習如何配置Hyperledger Fabric,並熟悉其體系結構組件。
使用這些組件,你將學習構建私有區塊鍊網絡,以及連接到這些網絡的應用。
先從原理開始,你將學習設計和啟動一個網絡,在鏈碼中實現智能合約等。
在本書的結尾,你將能夠構建和部署自己的去中心化應用程序,解決區塊鏈生命週期中遇到的關鍵痛點。
《Hyperledger區塊鏈開發實戰》適合IT技術人員、
區塊鏈開發人員以及高等院校區塊鏈工程、信息安全、物聯網工程等專業師生閱讀。

目錄大綱

原書序
原書前言
作者簡介
第1 章區塊鏈——企業和行業視角 
1.1 定義名詞——什麼是區塊鏈 
1.2 區塊鏈框架的4個核心構建模塊 
1.2.1 需要考慮的其他能力 
1.3 安全事務處理協議的基礎 
1.4 區塊鏈技術已經發展到什麼地步,又將走向哪裡 
1.4.1 巨大分歧 
1.4.2 區塊鏈交付的經濟學模型 
1.4.3 邊學邊走 
1.4.4 信任和責任的承諾 
1.5 將區塊鏈應用到行業 
1.6 區塊鏈在企業裡的應用 
1.6.1 什麼應用適合引入區塊鏈 
1.6.2 企業如何看待區塊鏈 
1.6.3 檢驗區塊鏈技術應用的試金石 
1.6.4 為整個企業集成區塊鏈基礎設施 
1.7 企業設計原則 
1.7.1 業務驅動和演進 
1.7.2 確保可持續性 
1.7.3 推動區塊鏈應用的原則 
1.8 選擇區塊鏈框架的商業考慮 
1.9 選擇區塊鏈框架的技術考慮 
1.9.1 身份管理 
1.9.2 可擴展性 
1.9.3 企業級安全 
1.9.4 開發工具 
1.9.5 加密經濟模型 
1.9.6 具有系統治理的去中心化 
1.9.7 企業支撐 
1.9.8 用例驅動的可插拔的選擇
1.10 企業集成和可擴展性設計 
1.11 其他考慮 
1.11.1 共識、ACID屬性和CAP 
1.11.2 認證——SSC已簽名和加密 
1.11.3 使用HSM 
1.12 總結 
第2 章探索Hyperledger Fabric 
2.1 建立在開放計算的基礎上的Hyperledger 
2.1.1 Hyperledger項目基礎知識 
2.2 Hyperledger框架、工具和構建塊 
2.2.1 Hyperledger框架 
2.2.2 Hyperledger工具 
2.2.3 區塊鏈解決方案的構建塊 
2.3 Hyperledger Fabric組件設計 
2.3.1 Hyperledger設計原則 
2.3.2 CAP定理 
2.3.3 Hyperledger Fabric參考架構 
2.3.4 Hyperledger Fabric運行時架構 
2.3.5 組件化設計的優勢 
2.4 Hyperledger Fabric:一個完整的交易示例 
2.5 Hyperledger Fabric的探索 
2.5.1 區塊鍊網絡中的組件 
2.5.2 開發者交互 
2.6 理解由區塊鏈驅動的業務網絡治理 
2.6.1 治理結構與格局 
2.6.2 IT治理 
2.6.3 區塊鍊網絡治理 
2.6.4 業務網絡治理 
2.7 總結 
第3 章為商業場景做準備 
3.1 貿易和信用證 
3.1.1 信任在促進貿易中的重要性 
3.1.2 當前的信用證流程 
3.2 商業場景和使用案例 
3.2.1 概述 
3.2.2 現實世界的處理流程 
3.2.3 簡化和修改後的流程 
3.2.4 貿易金融和物流運輸中使用的術語 
3.2.5 共享過程工作流 
3.2.6 共享資產和數據 
3.2.7 參與者的角色和能力 
3.2.8 區塊鏈應用對現實世界處理流程的好處 
3.3 設置開發環境 
3.3.1 設計一個網絡 
3.3.2 安裝前提 
3.3.3 創建分支和克隆trade-finance-logistics倉庫 
3.3.4 創建和運行網絡配置 
3.4 網絡組件的配置文件 
3.5 啟動一個示例交易網絡 
3.6 總結 
第4 章利用Golang設計一個數據和交易模型 
4.1 開始開發鏈碼 
4.1.1 編譯和運行鏈碼 
4.1.2 安裝和實例化鏈碼 
4.1.3 調用鏈碼 
4.2 創建一個鏈碼 
4.2.1 鏈碼接口 
4.2.2 建立鏈碼文件 
4.3 訪問控制 
4.3.1 ABAC(基於屬性的訪問控制) 
4.4 實現鏈碼函數 
4.4.1 定義鏈碼資產 
4.4.2 編寫鏈碼函數 
4.4.3 創建資產 
4.4.4 讀取和修改資產 
4.4.5 主函數 
4.5 測試鏈碼 
4.5.1 SHIM模擬 
4.6 鏈碼設計主題 
4.6.1 複合鍵 
4.6.2 批量查詢 
4.6.3 狀態查詢和CouchDB 
4.6.4 索引 
4.6.5 讀集和寫集 
4.6.6 多版本並發控制 
4.7 日誌輸出 
4.7.1 配置 
4.7.2 日誌API 
4.7.3 SHIM日誌級別 
4.7.4 stdout和stderr 
4.7.5 附加SHIM API函數 
4.8 總結 
第5 章公開網絡資產和交易 
5.1 構建完整的應用程序 
5.1.1 Hyperledger Fabric應用程序的特性 
5.1.2 構建應用程序 
5.1.3 中間件——封裝和驅動鏈碼 
5.1.4 用戶應用程序——導出服務和API 
5.2 與現有系統和流程的集成
5.2.1 設計考慮 
5.2.2 去中心化 
5.2.3 流程聯合 
5.2.4 服務發現 
5.2.5 身份映射 
5.2.6 集成設計模式 
5.2.7 關於可靠性、可用性和可服務性的思考
5.3 總結 
第6 章業務網絡 
6.1 一個充滿目的性活動的忙碌世界
6.1.1 為什麼業務網絡需要一種語言 
6.2 定義業務網絡 
6.2.1 更深層次的想法 
6.3 介紹參與者 
6.3.1 參與者的類型 
6.3.2 參與者是代理人 
6.3.3 參與者和身份 
6.4 介紹資產 
6.4.1 參與者之間的資產流 
6.4.2 有形資產和無形資產 
6.4.3 資產的結構 
6.4.4 所有權是一種特殊的關係 
6.4.5 資產生命週期 
6.4.6 通過交易詳細描述資產的生命週期 
6.5 介紹交易 
6.5.1 變化是一個基本概念 
6.5.2 業務定義和實例 
6.5.3 隱式和顯式交易 
6.5.4 合約的重要性 
6.5.5 簽名 
6.5.6 用於多方處理的智能合約
6.5.7 數字交易處理 
6.5.8 發起交易 
6.5.9 交易歷史 
6.5.10 交易流 
6.5.11 將交易分成不同的業務網絡 
6.5.12 交易歷史和資產狀態 
6.5.13 作為交易歷史的業務網絡 
6.5.14 監管機構和業務網絡 
6.6 從使用Composer設計業務網絡的角度討論事件 
6.6.1 一個普適的概念 
6.6.2 消息中包含事件通知 
6.6.3 舉例說明事件結構 
6.6.4 交易 
6.6.5 外部與顯性事件 
6.6.6 事件導致參與者採取行動 
6.6.7 松耦合的設計 
6.6.8 事件的作用 
6.7 實現一個業務網絡 
6.7.1 去物化的重要性 
6.7.2 區塊鏈對B2B和EDI有益 
6.7.3 與區塊鏈互動的參與者 
6.7.4 使用API訪問業務網絡 
6.7.5 3層系統架構 
6.7.6 Hyperledger Fabric和Hyperledger Composer 
6.8 總結 
第7 章一個業務網絡實例 
7.1 信用證實例 
7.1.1 安裝例子 
7.1.2 運行實例 
7.1.3 回顧流程 
7.2 分析信用證的過程 
7.2.1 練習場 
7.2.2 查看業務網絡 
7.3 業務網絡的描述
7.3.1 參與者描述 
7.3.2 資產描述 
7.3.3 交易描述 
7.3.4 事件描述 
7.4 業務網絡模型 
7.4.1 命名空間 
7.4.2 枚舉 
7.4.3 資產定義 
7.4.4 參與者定義
7.4.5 概念定義 
7.4.6 交易定義 
7.4.7 事件定義 
7.5 測試在線業務網絡 
7.5.1 驗證信用證實例 
7.5.2 驗證參與者實例
7.5.3 驗證交易實例 
7.5.4 向業務網絡中提交一個新的交易 
7.5.5 理解交易是如何實現的 
7.6 創建業務網絡API 
7.6.1 SWAGGER API定義 
7.6.2 使用SWAGGER查詢網絡 
7.6.3 從命令行測試網絡 
7.6.4 使用SWAGGER創建一個新的信用證 
7.6.5 網絡名片和錢包 
7.6.6 訪問控制列表 
7.7 總結 
第8 章區塊鍊網絡中的敏捷性 
8.1 定義升級流程 
8.1.1 智能合約的考慮 
8.1.2 集成層的考慮 
8.1.3 升級流程概覽 
8.2 配置持續集成流水線 
8.2.1 定制流水線流程 
8.2.2 發布智能合約包 
8.3 配置Git代碼庫 
8.3.1 設置智能合約的代碼所有者 
8.3.2 保護主分支 
8.3.3 配置Git以進行提交簽名和驗證 
8.4 測試端到端流程 
8.4.1 創建一筆新的交易 
8.4.2 添加測試用例 
8.4.3 發布新版本 
8.5 更新網絡
8.5.1 通知聯盟 
8.5.2 升級業務網絡
8.6 總結 
第9 章區塊鍊網絡中的生活 
9.1 修改或升級Hyperledger Fabric應用程序 
9.1.1 Fabric區塊鍊和應用程序生存週期 
9.1.2 通道配置更新 
9.1.3 智能合約和策略更新 
9.1.4 升級平台 
9.2 系統監控和性能 
9.2.1 測量和分析 
9.2.2 應該在Fabric應用程序中測量或理解什麼 
9.2.3 Fabric應用程序中的測量和數據收集 
9.2.4 Fabric工程性能指南
9.3 總結 
第10 章治理—管制行業不可避免的弊端 
10.1 去中心化和治理 
10.2 探索商業模型 
10.2.1 區塊鏈的好處 
10.2.2 從好處到利潤
10.2.3 網絡商業模型 
10.3 業務網絡中治理的作用
10.4 商業領域與流程 
10.4.1 成員生命週期 
10.4.2 資金與費用 
10.4.3 規則
10.4.4 教育
10.4.5 服務生命週期
10.4.6 爭論 
10.5 治理架構 
10.5.1 中心化的治理 
10.5.2 去中心化的治理 
10.6 治理和IT 解決方案 
10.6.1 管理網絡加入流程 
10.7 總結 
第11 章Hyperledger Fabric的安全性
11.1 Hyperledger Fabric的設計目標影響安全性 
11.2 Hyperledger Fabric的架構 
11.2.1 Fabric CA或成員服務提供商 
11.2.2 對等節點 
11.2.3 智能合約或鏈碼 
11.2.4 賬本 
11.2.5 私有數據 
11.2.6 排序服務 
11.3 網絡引導和治理是邁向安全的第一步 
11.3.1 創建網絡 
11.3.2 添加新成員 
11.3.3 部署和更新鏈碼 
11.3.4 數據模型 
11.4 強身份——Hyperledger Fabric網絡安全的關鍵
11.4.1 引導Fabric CA 
11.4.2 在Fabric CA中管理用戶的實際考慮因素
11.5 鏈碼的安全性 
11.5.1 如何與其他背書模塊的節點共享鏈碼 
11.5.2 誰可以安裝鏈碼 
11.5.3 鏈碼加密 
11.5.4 基於屬性的訪問控制 
11.6 常見威脅以及Hyperledger Fabric如何減輕它們 
11.6.1 Hyperledger Fabric中的交易隱私 
11.7 Hyperledger Fabric和量子計算 
11.8 通用數據保護條例(GDPR)的考慮因素 
11.9 總結 
第12 章區塊鏈的未來和挑戰 
12.1 主要的Hyperledger項目概要 
12.1.1 Hyperledger框架——業務區塊鏈技術 
12.1.2 Hyperledger工具 
12.2 區塊鏈未來的道路 
12.2.1 解決分歧——企業區塊鍊和加密資產驅動的生態系統 
12.2.2 互操作性——理解業務服務集成 
12.2.3 區塊鏈解決方案的可伸縮性和經濟可行性 
12.3 與Hyperledger區塊鏈保持聯繫 
12.4 總結