在Ubuntu中部署并测试HyperLedger Fabric(2)

这里提供了多种模式的启动方案,一种是启动4个节点的Peer,没有权限认证:4-peers.yml 另一种是在4节点Peer的基础上,再加上MembershipService节点,也就是需要权限认证的:4-peers-with-membersrvc.yml 另外还有再进一步,提供了web的Explorer的:4-peers-with-membersrvc-explorer.yml

这里我们就简单点,直接忽略掉MembershipService和Explorer,只启用4个节点的PBFT:

docker-compose -f 4-peers.yml up

系统会打印出启动的日志:

Creating network "pbft_default" with the default driver Creating pbft_vp0_1 Creating pbft_vp3_1 Creating pbft_vp2_1 Creating pbft_vp1_1 ……

至此,我们的环境搭建完毕,接下来我们就可以在上面跑链上代码了。

三、测试Fabric 3.1 在CLI中测试Example02

我们前面创建了4个容器,开启另外一个命令行窗口,输入docker ps命令,可以看到当前容器的状态:
CONTAINER ID        IMAGE                            COMMAND            CREATED            STATUS              PORTS                                  NAMES
2131cede4ade        hyperledger/fabric-peer:latest  "peer node start"  3 minutes ago      Up 3 minutes        7050-7059/tcp                          pbft_vp1_1
5acea88f21bc        hyperledger/fabric-peer:latest  "peer node start"  3 minutes ago      Up 3 minutes        7050-7059/tcp                          pbft_vp2_1
546b103d904d        hyperledger/fabric-peer:latest  "peer node start"  3 minutes ago      Up 3 minutes        7050-7059/tcp                          pbft_vp3_1
327ab874b2e3        hyperledger/fabric-peer:latest  "peer node start"  3 minutes ago      Up 3 minutes        0.0.0.0:7050->7050/tcp, 7051-7059/tcp  pbft_vp0_1

这里我们可以看到,最后一个容器pbft_vp0_1其启用了端口映射的,容器上面的7050端口会映射到Ubuntu的7050端口上。我们要执行命令行代码,需要先连接到这个容器内部:

docker exec -it pbft_vp0_1 bash

进入容器后,命令行会变为:root@vp0:/opt/gopath/src/github.com/hyperledger/fabric#

这里的容器已经帮我们把测试代码都放在了容器里面,所以我们不需要再下载测试代码。

3.1.1部署Go语言的ChainCode并初始化

下面我们部署Example02到Fabric上:

peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

这个示例是初始化两个账户a和b,a有余额100元,b有余额200元,这是运行结果:

root@vp0:/opt/gopath/src/github.com/hyperledger/fabric# peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' 08:37:12.187 [chaincodeCmd] chaincodeDeploy -> INFO 001 Deploy result: type:GOLANG chaincodeID:<path:"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" name:"ee5b24a1f17c356dd5f6e37307922e39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3ab1812590cd0f78539" > ctorMsg:<args:"init" args:"a" args:"100" args:"b" args:"200" > Deploy chaincode: ee5b24a1f17c356dd5f6e37307922e39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3ab1812590cd0f78539 08:37:12.188 [main] main -> INFO 002 Exiting..... 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14101.html