Byfn.win 是Hyperledger Fabric著名的byfn.sh脚本的Windows版本的移植,用于帮助开发人员在Windows环境中快速搭建Hyperledger Fabric链码及应用开发环境。官方下载地址:http://sc.hubwiz.com/codebag/byfn-win/。
Byfn.win的主要特点如下:
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网络运行与管理代码 |
使用byfn.exe
的reset
子命令来生成或复位BYFN网络运行所依赖的基础资料:
注意:
reset
命令都会清空已有的区块链数据和密码学资料使用byfn.exe
的up
子命令来启动BYFN网络:
up
子命令的选项如下:
默认情况下,byfn.win禁用TLS并仅启动一个排序节点和一个对等节点,即:
可以使用上述选项切换启动设置,例如启用tls、etcdraft排序并启动所有peer节点:
使用byfn.exe
的admin
子命令进入peer节点的管理控制台:
admin
子命令的选项如下:
默认情况下进入peer0.org1.example.com的管理控制台,可以使用上述选项进入不同的peer节点的控制台,例如进入peer1.org2.example.com的管理控制台:
byfn admin -p 1 -o 2
注意:
byfn admin --tls
> peer channel list --tls --cafile=%ORDERER_CA%
其中环境变量ORDERER_CA
中已经设置了相应的路径,可以直接使用。
进入管理控制台后,可以调用e2e.cmd
来进行基本的测试:
e2e.cmd主要执行如下任务:
e2e.cmd是一个标准的windows批处理文件,每一个命令都可以在管理控制台单独执行。
例如,下面的三个命令分别用于查询当前所管理节点加入的通道、当前节点安装的链码和指定通道激活的链码:
首先使用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
注意:
在执行reset
子命令时,会自动生成org1的连接配置文件:
Hyperledger Fabric官方提供的SDK可以直接使用上述连接配置文件,
可以根据自己的需要选择json或yaml格式。
byfn.win官方下载地址:byfn for windows