接着上一篇 也记录一下fabric1.0的测试过程 之前一直按照《区块链技术指南》上操作,启动时后台日志中输出如下错误信息
集群后台错误,会导致命令错误,猜测原因是容器之间有依赖关系,orderer的7050还没有开启,peer0的grpc失败。
纯属个人猜测,因为下面的Error也显示因为 grpc超时
后来我索性用了docker-compose-files/hyperledger/1.0目录下的setup_setup_fabric_1.0.sh脚本,用sudo执行
NewDeliverService -> INFO 027 Creating delivery service to get blocks from the ordering service没有错误
进入容器 peer0,在容器中执行部署命令 install 和 instantiate,注意输出日志无错误提示,最终返回结果应该如下图所示
docker exec -it fabric-peer0 bash
peer chaincode install -n test_cc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","a","100","b","200"]}' -v v0
容器后台日志
peer chaincode instantiate -n test_cc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","200"]}' -v v0
此时,系统中生成类似 dev-peer0-test_cc-v0 的 chaincode Docker 镜像,和相同名称的容器。
对部署成功的 chaincode 执行查询操作,查询 a 的余额。同样的,在 peer0 容器中执行如下命令,注意输出无错误信息,最后的结果为 Query Result:100 。
peer chaincode query -n test_cc -c '{"Args":["query","a"]}'
也可以用另外一种方式查询 b 的余额,注意最终返回结果为 Query Result: 200 。
peer chaincode invoke -n test_cc -c '{"Args":["query","b"]}'
对部署成功的 chaincode 执行调用操作,如 a 向 b 转账 10 元。此时,再次查询 a 和 b 的余额,发现发生变化,a 的新余额为 90,b 的新余额为 210。
peer chaincode invoke -n test_cc -c '{"Args":["invoke","10"]}'
peer chaincode query -n test_cc -c '{"Args":["query","a"]}' peer chaincode query -n test_cc -c '{"Args":["query","b"]}'