天天看點

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

Byfn.win 是Hyperledger Fabric著名的byfn.sh腳本的Windows版本的移植,用于幫助開發人員在Windows環境中快速搭建Hyperledger Fabric鍊碼及應用開發環境。官方下載下傳位址: http://sc.hubwiz.com/codebag/byfn-win/

1、開發包概述

Byfn.win的主要特點如下:

  • 使用原生建構的windows版本的Fabric程式,不需要安裝虛拟機/Linux子系統/Docker
  • 一鍵複位BYFN網絡,一鍵啟動BYFN網絡,為開發人員節省大量時間和精力
  • 支援TLS安全傳輸設定,支援solo共識和etcdraft共識
  • 支援Hyperledger Fabric官方及第三方提供的各種語言的鍊碼與應用開發包
  • 解壓即用,綠色軟體

Byfn.win采用Golang開發,目前版本是1.0.0,主要檔案清單如下:

檔案 說明
byfn.exe byfn.win主程式
first-network/ BYFN網絡配置目錄
first-network/crypto-config.yaml BYFN密碼學資料配置
first-network/configtx.yaml BYFN創世區塊配置
first-network/ccp-template.json 連接配接配置檔案json模闆
first-network/ccp-template.yaml 連接配接配置檔案yaml模闆
first-network/orderer.yaml Fabric排序節點配置
first-network/core.yaml Fabric對等節點核心配置
first-network/e2e.cmd 端到端測試腳本
chaincode_example02/go/ Golang鍊碼,示範
chaincode_example02/node/ Node.js鍊碼,示範
chaincode_example02/java/ Java鍊碼,示範
fabric/bin/ Fabric原生程式目錄
byfn.win/ byfn.win源代碼目錄
byfn.win/go.mod go module配置檔案
byfn.win/main.go 入口代碼
byfn.win/pkg/cmd/bygn.go 指令行處理代碼
byfn.win/pkg/shell/shell.go 作業系統接口代碼
byfn.win/pkg/shell/generate.go BYFN網絡資料生成代碼
byfn.win/pkg/shell/network.go BYFN網絡運作與管理代碼

2、Byfn.win使用說明

2.1 生成BYFN網絡基礎資料

使用

byfn.exe

reset

子指令來生成或複位BYFN網絡運作所依賴的基礎資料:

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

注意:

  1. 每次執行

    reset

    指令都會清空已有的區塊鍊資料和密碼學資料
  2. 節點的輸出日志在first-network/logs目錄下

2.2 啟動BYFN網絡

byfn.exe

up

子指令來啟動BYFN網絡:

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

up

子指令的選項如下:

  • --tls:啟用tls,預設:false
  • --full / -f:是否啟動所有節點,預設:false,僅啟動一個節點
  • --orderer / -o:選擇排序器實作,預設:solo,可選:solo或etcdraft。

預設情況下,byfn.win禁用TLS并僅啟動一個排序節點和一個對等節點,即:

  • orderer.example.com
  • peer0.org1.example.com

可以使用上述選項切換啟動設定,例如啟用tls、etcdraft排序并啟動所有peer節點:

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

2.3 進入Peer節點管理控制台

byfn.exe

admin

子指令進入peer節點的管理控制台:

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

admin

  • --peer / -p:設定節點編号,預設:0
  • --org / -o:設定機構編号,預設:1

預設情況下進入peer0.org1.example.com的管理控制台,可以使用上述選項進入不同的peer節點的控制台,例如進入peer1.org2.example.com的管理控制台:

byfn admin -p 1 -o 2           
  1. 當網絡啟用了TLS時,在進入管理終端時也需要啟用tls,例如:
byfn admin --tls           
  1. peer指令需要額外的tls相關的參數,例如:
> peer channel list --tls --cafile=%ORDERER_CA%           

其中環境變量

ORDERER_CA

中已經設定了相應的路徑,可以直接使用。

2.4 執行端到端測試

進入管理控制台後,可以調用

e2e.cmd

來進行基本的測試:

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

e2e.cmd主要執行如下任務:

  • 啟動預置的鍊碼chaincode_example02
  • 建立通道mychannel
  • 将peer0.org1.example.com加入mychannel
  • 在peer0.org1.example.com安裝鍊碼mycc:0
  • 在通道mychannle激活鍊碼mycc:0
  • 查詢鍊碼mycc:0的狀态
  • 送出交易修改鍊碼mycc:0的狀态
  • 再次查詢鍊碼mycc:0的狀态
  • 關閉鍊碼chaincode_example02

2.5 在管理控制台使用fabric預置指令

e2e.cmd是一個标準的windows批處理檔案,每一個指令都可以在管理控制台單獨執行。

例如,下面的三個指令分别用于查詢目前所管理節點加入的通道、目前節點安裝的鍊碼和指定通道激活的鍊碼:

超級賬本Fabric開發環境一鍵安裝工具【BFTN.WIN】

3、使用byfn.win測試自己開發的鍊碼

首先使用

up

子指令啟動網絡:

byfn up           

然後啟動鍊碼應用,例如啟動預置的nodejs鍊碼:

cd chaincode_example02/node
npm install
node index.js --peer.address=peer0.org1.examplecom:7052 --peer.id.name=myccjs:0           

現在進入管理終端,就可以進行鍊碼的安裝、激活、查詢或交易操作了。

安裝鍊碼:

> peer chaincode install -n myccjs -v 0 -l node -p ..\chaincode_example02\node           

激活鍊碼:

> peer chaincode instantiate -n myccjs -c "{\"Args\":[\"init\",\"tom\",\"1000\",\"mary\":\"2000\"]}" -C mychannel -o orderer.example.com           

查詢鍊碼狀态:

> peer chaincode query -n myccjs -c "{\"Args\":[\"invoke\",\"tom\"]}" -C mychannel           

送出鍊碼交易:

> peer chaincode invoke -n myccjs -c "{\"Args\":[\"invoke\",\"tom\",\"mary\",\"100\"]}" -C mychannel -o orderer.example.com           
  1. 在激活鍊碼之前,需要先啟動鍊碼
  2. 可以随時修改鍊碼或重新運作鍊碼,不需要重新激活

4、使用byfn.win開發應用

在執行

reset

子指令時,會自動生成org1的連接配接配置檔案:

  • connection-org1.json
  • connection-org1.yaml

Hyperledger Fabric官方提供的SDK可以直接使用上述連接配接配置檔案,

可以根據自己的需要選擇json或yaml格式。

byfn.win官方下載下傳位址:

byfn for windows