Hyperledger Fabric 初學者教程:綜合指南
已發表: 2021-02-24有許多可用的Hyperledger 框架和工具。 最成功的之一是 Hyperledger Fabric。 自 2016 年發布以來,Hyperledger Fabric 已成為開發企業應用程序的流行框架。 在這個面向初學者的 Hyperledger Fabric 教程中,我們將引導您了解您需要了解的所有內容,包括它是什麼、結構是什麼,以及如何在其上運行您的第一個應用程序。 事不宜遲,讓我們從Hyperledger Fabric 教程開始。
目錄
什麼是超級賬本結構?
Hyperledger Fabric 是一個企業級的基於區塊鏈的框架。 它是一個開源框架,為開發應用程序和業務解決方案提供許可 DLT(分佈式賬本技術)。 Hyperledger Fabric的一些核心功能包括:
- 高度模塊化的架構
- 即插即用共識
- 支持 Solidity 和 EVM
- 支持 JSON 查詢、基於鍵的查詢和其他可查詢數據
- 多語言智能合約支持
了解了 Hyperledger Fabric 的基礎知識及其核心功能,讓我們進入本Hyperledger Fabric 初學者教程的下一部分。
從世界頂級大學在線學習軟件課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
什麼是 Hyperledger Fabric 系統架構?
在開始我們的核心Hyperledger Fabric 教程之前,有必要了解底層架構。 對結構有深入的了解將幫助您了解框架的運作方式。
- 事務:有兩種類型的事務:部署和調用。 部署事務用於創建鏈碼,鏈碼是由區塊鏈運行的程序。 另一方面,調用事務用於在先前部署的鏈碼的上下文中執行事務。
- 數據結構:與任何區塊鏈框架一樣,Hyperledger Fabric 中使用的數據結構是鍵值對。 鏈碼通過 put 和 get 操作來操作數據。
- Ledger :它是對鏈的所有成功和不成功更改的序列。
- 節點:它們是通信代理,或者換句話說,是網絡的實體。
- 客戶:最終用戶或代表他們行事的人。
- Peer :他們處理鏈的狀態並確保一切順利運行。
初學者開發他們的第一個應用程序的 Hyperledger Fabric 教程
現在我們知道了基本架構,是時候開發我們的第一個 Hyperledger Fabric 應用程序了。

建立並啟動第一個網絡
此步驟包括安裝先決條件和示例組件以開始開發我們的應用程序。
建立網絡
您需要做的第一件事是構建和啟動網絡。 如果沒有正在運行的網絡,您的應用程序將毫無用處。 查看 Hyperledger Fabric 的先決條件指南和二進製文件、Docker 映像和示例安裝指南。
安裝完所有內容後,使用以下命令移動到帶有示例網絡的存儲庫。
cd 織物樣本/第一網絡
接下來,使用 byfn.sh 腳本運行網絡。 運行這個網絡將促進網絡通信並啟動容器、對等點、鏈碼等基本要素,這將有助於其他過程。 運行示例網絡後,就該生成工件了。
生成工件
使用以下代碼生成工件,然後在要求確認時按“Y”以開始填寫必要的詳細信息。
.byfn.sh 生成
為網絡供電
生成工件後,您需要為網絡供電。 它將啟動所有組件,包括鏈碼和容器,以允許新的對等點加入網絡。 使用以下代碼為網絡供電:
./byfn.sh 向上
Hyperledger Fabric 鏈碼的默認語言是 Go。 但是,您可以分別使用以下命令切換到使用 Node.js 或 Java:
.byfn.sh up -l 節點
.byfn.sh up -l java
您還可以使用以下任一代碼來選擇使用多種編程語言:
./byfn.sh up -o etcdraft
./byfn.sh up -o 卡夫卡
啟動網絡
現在我們將啟動網絡。 但在此之前,我們必須:
- 獲取我們應用程序的子目錄
- 製作 fabric-sample repo 的本地克隆
使用以下命令腳本啟動網絡:

./startFabric.sh javascript
啟動網絡後,您將擁有從訂購者到對等方再到證書頒發機構的一切權利來開發您的應用程序。 由於我們正在使用應用程序的子目錄,因此將自動啟動智能合約。
安裝您的第一個應用程序
使用以下代碼安裝安裝和啟動應用程序所需的依賴項。
npm 安裝
與證書頒發機構連接
一旦網絡啟動並運行,讓我們首先與可以允許我們將用戶添加到鏈中的當局進行溝通。 為此,我們需要接受證書籤名請求 (CSR)。 使用以下命令聯繫證書頒發機構並創建公共、私有和 x.509 證書。
節點註冊管理員.js
您的信息現在將保存在錢包中。 同樣,要添加任何新用戶,您需要經歷相同的過程並使用以下代碼:
節點 reisterUser.js
此代碼將添加用戶,詳細信息將保存在錢包中。
查詢賬本
您可以使用讀取查詢通過區塊鍊網絡查詢賬本並獲取結果。 應用程序不會執行任何寫入查詢,因為分類帳是只讀的。
使用以下代碼從分類帳中檢索所有數據:
節點查詢.js
接下來,我們需要建立一個連接來傳送數據。 建立連接後,創建一個網關以允許應用程序連接到網絡。 以下代碼行將幫助您完成所有這些工作。
const { FileSystemWallet, Gateway } = require('fabric-network');
常量網關 = 新網關();
等待網關.connect(ccp,{錢包,身份:'user1'});
常量合約 = network.getContract('subdirectory_name');
上述代碼中的 CPP 用於訪問和驗證用戶信息。 代碼的最後一行是連接到特定通道。 這是必不可少的,因為整個區塊鍊網絡在多個渠道上運行。
了解合同
前往 chaincode/subdirectory_name/javascript/lib 子目錄以訪問應用程序的智能合約。 在上述目錄中,subdirectory_name 將是您的應用程序子目錄的名稱。 在編輯器中打開您在此處獲得的 application_name.js 文件。 在此文件中,您將獲得智能合約以及在 Contract 類中定義的所有交易。 假設您的應用程序是關於汽車的,交易細節將如下所示:
async queryCar(ctx, carNumber) {…}
閱讀:為什麼區塊鍊是未來
更新分類帳
本Hyperledger Fabric 初學者教程的最後一部分是更新分類帳。 考慮相同的汽車示例,讓我們看看如何在日誌中添加新車。 使用以下代碼行將新車輛添加到分類帳中。
await contract.submitTransaction('createCar', 'CAR15', 'Owner', 'Brand', 'CarModel', 'Color');

使用上述命令將創建一輛新車以及提到的屬性值。 要將此新交易發送到分類帳,請編寫以下代碼:
節點調用.js
這將成功更新分類帳。
結論
這使我們的Hyperledger Fabric 教程結束。 區塊鏈技術和 Hyperledger Fabric 框架有可能徹底改變全球多個行業。 本教程簡要介紹了 Hyperledger Fabric 框架的工作原理以及如何在其上運行您的第一個事務和應用程序。 如果您想深入了解並學習如何使用該框架開發實際的業務應用程序,您可以申請 upGrad 和 IIIT 班加羅爾的區塊鏈技術高級證書課程。
該課程 250 多個小時的區塊鏈技術和框架學習材料,如以太坊、Hyperledger Fabric、分佈式應用程序開發(智能合約開發、後端開發、API)。 如果您想從事區塊鏈開發的職業,請立即申請。