使用 Fabric SDK Node
Hyperledger Fabric Client SDK 能夠非常簡單的使用API和 Hyperledger Fabric Blockchain 網絡進行交互。其v1.1
及其以上的版本添加了一個重要的功能Conection-Profile來保存整個network中必要的配置信息,方便client讀取和配置。 該Demo基於Connection-Profile
測試了整個網絡的如下功能:
Fabric CA 相關
Enroll用戶
Register用戶
Channel 相關
創建Channel
將指定Peer join Channel
查詢Channel相關信息
動態更新Channel配置信息
Chaincode 相關
Install Chaincode
Instantiate Chaincode
Invoke Chaincode
Query Chaincode
查詢Chaincode相關信息
主要依賴
Node v8.9.0 或更高 (注意目前v9.0+還不支持)
npm v5.5.1 或更高
gulp命令。 必須要進行全局安裝
npm install -g gulp
docker運行環境
docker compose工具
主要fabric環境可參考Fabric 1.0。
下載 Demo 工程
進入 Hyperledger-fabric-node-sdk-demo
目錄,查看各文件夾和文件,功能如下。
文件/文件夾
功能
artifacts-local
本地準備好構建fabric網絡的基礎材料
artifacts-remote
使用官方fabric-sample動態構建網絡
extra
一些拓展性的材料
node
基於Fabric SDK Node的demo核心代碼
src
測試用chaincode
Init.sh
構建Demo的初始化腳本
構建Demo
該項目提供兩種Demo構建方式:
利用本地已經準備好的相關網絡資源,啟動fabric network。
利用官方fabric-sample項目,動態啟動fabric network。
當然,你也可以使用自己已經創建好的fabric network和其相關的connection-profile來測試Demo。
執行之後,會在根目錄中生成一個demo
文件夾,其就是Demo程序的入口。
清理Demo資源,使用./Init.sh clean
啟動Fabric網絡
首先,我們需要準備一個fabric網絡來進行測試。 進入到demo
文件夾。
本地資源構建網絡
進入資源目錄,利用腳本啟動網絡即可。
用該腳本啟動網絡中包含:1個orderer, 2個organisation, 4個peer(每個組織有2個peer)和兩個ca(每個組織一個)。
官方資源構建網絡
在demo目錄,利用腳本啟動網絡即可。
用該腳本啟動網絡中包含:1個orderer, 2個organisation, 4個peer(每個組織有2個peer)和兩個ca(每個組織一個)。
與本地資源啟動不同,該方案主要有以下步驟:
將官方fabric-sample項目clone到本地
利用
fabric-sample/first-network/bynf.sh up
啟動fabric腳本將一些資源文件連接到指定位置,方便node程序使用
通過資源文件構建connection-profile(替換密鑰等)
創建一個新的channel的binary
詳細信息可以直接查看net.sh
腳本。
clean
命令會將所有相關的docker 容器和remote的動態資源全部刪除。還原到最初的demo文件狀態。
資源清單
無論是remote還是local模式,最終資源和網絡準備完成之後,核心資源列表如下:
運行Demo
網絡和相關資源準備成功之後,進入demo/node
目錄。 其主要結構為:
使用命令node app-test.js
即可進行一個完整workflow的測試,包括最開始我們提到的所有功能。 同時可以使用node app-test.js -m ca|createChannel|joinChannel|install|instantiate|invoke|query|queryChaincodeInfo|queryChannelInfo
來運行單個功能。
程序使用的均為默認參數,其定義在app-test.js
文件中。可以按照需求修改對應的參數,再運行程序即可。
持續更新
如果在使用途中發現任何問題,或者有任何需求可以在該項目的issue中提出改進方案或者建議。 Github地址:Hyperledger-fabric-node-sdk-demo
Last updated
Was this helpful?