fabric-samples的basic-network实现hyperledger网络部署和调用

使用官方提供的fabric-samples提供的配置和链码示例,调用和查询链码,最小化地体验超级账本的环境。

一、下载docker镜像

超级账本源码scripts目录下有多个下载镜像的脚本,我们可以修改权限以后直接运行:

#进入fabric/scripts目录
chmod +x bootstrap-1.0.0.sh
sed -i ' ' 's/curl/#curl/g' bootstrap-1.0.0.sh
./bootstrap-1.0.0.sh

二、部署超级账本网络

git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples/basic-network #进入basic-network目录
docker-compose -f docker-compose.yaml up -d

使用docker ps查看已启动的容器
切换到管理员用户再创建通道和加入通道:

#切换环境到管理员用户的MSP,进入peer节点容器peer0.org2.example.com
docker exec -it -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com bash
#创建通道
peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
#加入通道
peer channel join -b mychannel.block
#退出peer节点容器peer0.org1.example.com
exit
#进入cli容器安装链码和实例化
docker exec -it cli /bin/bash
#给peer节点peer0.org1.example.com安装链码
peer chaincode install -n mycc -v v0 -p github.com/chaincode_example02/go
#实例化链码
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v0 -c '{"Args":["init","a","100","b","200"]}'

三、链码调用和查询

在cli容器里查询初始值:

peer chaincode query -C mychannel -n mycc -v v0 -c '{"Args":["query","a"]}'  

调用链码,从“a”转移10到“b”:

peer chaincode invoke -C mychannel -n mycc -v v0 -c '{"Args":["invoke","a","b","10"]}}'  

再次查询“a”和“b”的值:

peer chaincode query -C mychannel -n mycc -v v0 -c '{"Args":["query","a"]}'  
peer chaincode query -C mychannel -n mycc -v v0 -c '{"Args":["query","b"]}' 

查询结果显示,“a”的值为Query Result:90,“b”的值为Query Result:210。

四、注意事项

现在fabric出到1.1.0版本,在下载docker images时需要注意版本问题。
以及安装和实例化链码的时候是在cli容器里不是在peer节点容器里。

参考自
《深度探索区块链——hyperledger技术与应用》

你可能感兴趣的:(区块链)