HyperLedger Fabric是一個以模組化架構為基礎的分散式帳本解決方案平台,它擁有深度加密、便捷擴充、部署靈活及可抽換等特性,是目前非常流行的區塊鏈網路架構的實現方案。
這正是一本幫助更多的HyperLedger Fabric新手入門的書。
區塊鏈由於去中心化、開放性、自治性、資訊不可篡改及匿名性等特徵,受到廣泛關注,拋開炒作的虛擬貨幣專案,應用於企業聯盟鏈或直接架設私鏈的專案,採用HyperLedger Fabric 作為底層平台無疑是最佳選擇。
本書主要以HyperLedger Fabric 案例為引,層層深入,從單機單節點到Solo 多機網路拓樸再到Kafka 叢集部署,其中穿插文件說明加深讀者的了解。
不同於一些偏概念性的區塊鏈書籍,希望透過本書幫助讀者實現以HyperLedger Fabric 為基礎的區塊鏈實作,架構一個完整的區塊鏈專案。
適用:區塊鏈系統開發人員,或HyperLedger Fabric的新手。
本書特色
√ 從技術層面詳解區塊鏈平台使用方案
√ 系統講解HyperLedger Fabric開放原始碼架構的核心概念、實現原理和應用開發
√ 結合作者實作經驗,深度解析常見開發陷阱,提出具體解決方案
√ 以案例為引,一步步引導開發,從單機單節點到Solo多機網路拓樸再到Kafka 叢集部署,層層深入,搭建一個完整的區塊鏈專案
√ 透過典型案例進行實戰演練,每一步驟都是實際情況和場景中的操作,真實還原生產場景
作者簡介:
楊毅
阿里雲MVP,有多年的Android、iOS、Java後台服務及區塊鏈開發和架構經驗,並獲得多項專利。目前專注於區塊鏈應用、互聯網金融及行動互聯網等方向。
作者序
前 言
HyperLedger Fabric 最初是由Digital Asset 和IBM 公司貢獻的、由Linux 基金會主辦的超級帳本專案,它是一個目前非常流行並廣為人知的區塊鏈網路架構的實現方案。身為以模組化架構開發應用程式或解決方案的基礎,HyperLedger Fabric 支援如共識和會員服務等隨插即用的元件。HyperLedger Fabric 利用容器技術來執行稱為"chaincode" 的智慧合約,該合約包含系統的應用程式邏輯。
✾ 為什麼寫作本書
區塊鏈由於去中心化、開放性、自治性、資訊不可篡改及匿名性等特徵而受到廣泛關注,且目前正處在上升勢態。拋開炒作的代幣專案,應用於企業聯盟鏈或直接架設私鏈的專案,採用HyperLedger Fabric 作為底層平台無疑是最好的選擇之一。
本人從接觸HyperLedger Fabric 專案以來,經歷了從0.6 版本到1.1 版本的數次迭代。因為早期中文資料缺乏,並且0.6 版本到1.0 版本是一個跨度非常大的迭代,導致早期的大部分部署和應用經驗失去作用,不得已再次從1.0 版本開始從頭學習。當時中文資料極為有限,且大多數都是單篇翻譯或純粹的概念說明,一直沒有找到入門的頭緒,只能不斷地從官方文件中汲取知識,並成功架設了以Kafka 類型為基礎的叢集網路。
有了叢集的經驗,加深自己對HyperLedger Fabric 整個網路交易流程的了解,並以此為基礎順利架設以Fabric-SDK-Java 為基礎的用戶端專案。也就在這個時候,開始有寫相關部落格的想法,並在部落格上發佈第一篇文,也是從零開始系列文章的第一篇,開始介紹自己的開發歷程和部署經驗,希望能透過這樣的方式幫助更多的開發夥伴加入HyperLedger Fabric 大家庭。之後又建立了「區塊鏈學習分享」的微信訂閱號,也透過微信建立一個純技術討論分享的HyperLedger Fabric 等區塊鏈相關交流群,並在這樣的機緣下結識電子工業出版社宋亞東老師,並正式開始撰寫本書。
在寫書之前我一直在整理部落格的內容,為真實地還原生產場景,還自費租賃15 台伺服器用於測試。在已有博文的基礎上,外加後來撰寫的新文章,我順利地完成本書的撰寫工作,且書中的專案都依據所租賃的伺服器完成演練,每一步驟都是以真實情況和場景為基礎的操作。在此過程中,自己對HyperLedger Fabric 也有了新的認識和了解。
本書主要以HyperLedger Fabric 案例為引,層層深入,從單機單節點到Solo 多機網路拓樸再到Kafka 叢集部署,其中穿插文件說明加深讀者的了解。與一些偏概念性質的區塊鏈教學類書籍不同,希望透過本書幫助讀者實現以HyperLedger Fabric 為基礎的區塊鏈實作。
✾ 本書主要內容
本書基於HyperLedger Fabric v1.1 版本說明,總計10 章,每章主要內容介紹如下:
■ 第1 章是基本環境部署,包含內網和外網的不同方案,以及核心處理等。
■ 第2 章是HyperLedger Fabric 及環境部署,先用文件說明Fabric 相關的介紹和主要功能點,接著分析原始程式部署和映像檔處理方面的問題。
■ 第3 章帶領讀者一步步了解官方的e2e_cli 案例,並隨後對該案例進行分析。
■ 第4 章開始手動部署單機多節點網路。
■ 第5 章跟隨前章的腳步,手動部署Solo 多機網路環境。
■ 第6 章繼續深入,架設以Kafka 為基礎的叢集網路。
■ 第7 章以文件為主,說明如何撰寫智慧合約及有關智慧合約的用法。
■ 第8 章詳細介紹CouchDB 的使用,並推薦使用CouchDB。
■ 第9 章說明在Fabric 發佈1.0 版本之後的對外用戶端呼叫方式、用戶端對SDK 的使用和相關原始程式。
■ 第10 章以一個簡單的案例做演練,在資料鏈上用到了智慧合約,對資料分析則提供另一種想法。
✾ 適合讀者群
這是一本基礎說明的書,是為了幫助更多的新手入門。所以,本書適合正在尋求HyperLedger Fabric 入門的新人閱讀,也適合中、進階開發人員作為工具書參考。
在閱讀本書之前,讀者需要具備以下基礎知識:
■ 具有一定的Linux 作業系統基本指令的常識。
■ 有Java/Go 等物件導向語言的基礎,其中智慧合約用Go 語言撰寫,SDK 則用到Java。如果具這方面的基礎,則有助於閱讀本書。
✾ 致謝
在入門及撰寫本書的時候,有許多人給予我鼓勵和支援。
首先感謝我的妻子,我開始學習HyperLedger Fabric 時遇到很多困難,經常熬夜加班,她始終體諒我,鼓勵並支援我。在寫書期間她不遺餘力地幫忙查閱相關資料,以便我能夠更順利地完成書稿。
還要感謝我的主管, 也是我的好友王海林, 正是他給我研究學習HyperLedger Fabric 的機會,並在我遇到困難時幫我逐筆分析,釐清想法。他也給予我在公司極優的研發條件和時間,讓我在最短的時間完成一次自我蛻變。
還要感謝電子工業出版社的宋亞東老師對我的支援和鼓勵,在我撰寫書稿的初期過程中對內容的編排和標準給予很多幫助。也感謝所有參與本書的出版社工作人員,是你們的辛勤付出讓本書得以成功出版。
最後,感謝我部落格的讀者及微信群裡的朋友們,正是與你們一次次地溝通和探討,讓我不斷提升自我,也鞭策我不斷前行。
由於水準有限,書中不足及錯誤之處在所難免,敬請專家和讀者給予批評指正。
楊毅
前 言
HyperLedger Fabric 最初是由Digital Asset 和IBM 公司貢獻的、由Linux 基金會主辦的超級帳本專案,它是一個目前非常流行並廣為人知的區塊鏈網路架構的實現方案。身為以模組化架構開發應用程式或解決方案的基礎,HyperLedger Fabric 支援如共識和會員服務等隨插即用的元件。HyperLedger Fabric 利用容器技術來執行稱為"chaincode" 的智慧合約,該合約包含系統的應用程式邏輯。
✾ 為什麼寫作本書
區塊鏈由於去中心化、開放性、自治性、資訊不可篡改及匿名性等特徵而受到廣泛關注,且目前正處在上升勢態。拋開炒作的代幣專案,應...
目錄
前言
01 | 基本環境部署
1.1 環境整理
1.2 Docker 安裝
1.3 Docker-Compose 安裝
1.4 Go 語言環境安裝
1.5 本章小結
02 | Fabric 及環境部署
2.1 Fabric 介紹
2.2 Fabric 功能整理
2.3 Fabric 組成模型
2.4 Fabric 環境部署
2.5 本章小結
03 | End-2-End 案例
3.1 平台特定檔案
3.2 執行e2e_cli
3.3 e2e_cli 案例分析
3.4 本章小結
04 | 部署單機多節點網路
4.1 產生憑證檔案
4.2 部署Orderer 節點
4.3 部署peer0.org1 節點
4.4 架設Fabric 網路
4.5 初步接觸智慧合約
4.6 部署peer0.org2 節點
4.7 本章小結
05 | Solo 多機部署
5.1 網路拓撲
5.2 部署Orderer 節點
5.3 部署peer0.org1 節點
5.4 部署peer1.org1 節點
5.5 部署peer0.org2 節點
5.6 本章小結
06 | Kafka 叢集部署
6.1 Fabric 帳本
6.2 交易處理流程
6.3 讀寫集規則
6.4 Kafka 叢集設定
6.5 啟動叢集
6.6 叢集環境測試
6.7 本章小結
07 | 智慧合約
7.1 智慧合約概述
7.2 背書策略
7.3 使用智慧合約
7.4 撰寫智慧合約
7.5 加密智慧合約
7.6 系統合約外掛程式
7.7 智慧合約API
7.8 Peer 節點與合智慧約
7.9 本章小結
08 | CouchDB
8.1 CouchDB 介紹
8.2 啟動部署
8.3 索引應用
8.4 查詢應用
8.5 選擇器語法
8.6 本章小結
09 | Java-SDK 用戶端
9.1 SDK 專案前置條件
9.2 SDK 程式使用
9.3 SDK 使用方法
9.4 本章小結
10 | 專案演練
10.1 反詐騙系統
10.2 本章小結
前言
01 | 基本環境部署
1.1 環境整理
1.2 Docker 安裝
1.3 Docker-Compose 安裝
1.4 Go 語言環境安裝
1.5 本章小結
02 | Fabric 及環境部署
2.1 Fabric 介紹
2.2 Fabric 功能整理
2.3 Fabric 組成模型
2.4 Fabric 環境部署
2.5 本章小結
03 | End-2-End 案例
3.1 平台特定檔案
3.2 執行e2e_cli
3.3 e2e_cli 案例分析
3.4 本章小結
04 | 部署單機多節點網路
4.1 產生憑證檔案
4.2 部署Orderer 節點
4.3 部署peer0.org1 節點
4.4 架設Fabric 網路
4.5 初步接觸智慧合約
4.6 部署peer0.org2 節點
4.7...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。