合约开发,调试是必须的,在开发过程一般使用Fabric提供的开发模式进行调试。和之前的教程 在开发者模式下调试BSN链码 一样,需要先打开三个gitbash终端
cd $GOPATH/src/github.com/hyperledger/fabric-samples/chaincode-docker-devmode
docker-compose -f docker-compose-simple.yaml up
要等1号网络启动成功后,才能执行下面的步骤
先进入 chaincode容器
cd $GOPATH/src/github.com/hyperledger/fabric-samples/chaincode-docker-devmode
winpty docker exec -it chaincode sh
进入链码目录先编译
cd bsnBaseCC
go build
然后部署链码
CORE_PEER_ADDRESS=peer:7052 CORE_PEER_TLS_ENABLED=false CORE_CHAINCODE_ID_NAME=mycc:0 ./bsnBaseCC
部署成功后会处于监控模式,后面对链码的操作的日志会在这个终端里显示出来
先进入cli容器
cd $GOPATH/src/github.com/hyperledger/fabric-samples/chaincode-docker-devmode
winpty docker exec -it cli bash
有时cil会启动失败,需要先清空docker再从第一步重新开始,如果成功即不用管它
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
先安装和实例化链码
peer chaincode install -p chaincodedev/chaincode/bsnBaseCC -n mycc -v 0
peer chaincode instantiate -n mycc -c '{"Args":["UserReg", "user_123"]}' -v 0 -C myc
在我们的链码中,Init方法是不需要输入参数的,但如果不加-c
参数的话实例化会出错,因此随便加一些参数就行
peer chaincode invoke -n mycc -c '{"Args":["UserReg", "user_123"]}' -C myc
验证下是否数据写入成功
peer chaincode query -n mycc -c '{"Args":["GetValue","user_123"]}' -C myc
peer chaincode invoke -n mycc -c '{"Args":["EventReg", "event_7", "user_123", "1000", "0", "100", "{\"口令1\":[\"1590048003\",\"1590996481\"],\"口令2\":[\"1590048003\",\"1590996481\"]}", "1590048003", "1590996481", "0", "10", "20"]}' -C myc
验证下是否数据写入成功
peer chaincode query -n mycc -c '{"Args":["GetValue","event_7"]}' -C myc
注册一个新用户,然后报名活动,然后看看用户和活动的数据变化
peer chaincode invoke -n mycc -c '{"Args":["UserReg", "user_456"]}' -C myc
peer chaincode invoke -n mycc -c '{"Args":["UserJoinEvent", "user_456", "event_7", "0"]}' -C myc
peer chaincode query -n mycc -c '{"Args":["GetValue","user_123"]}' -C myc
peer chaincode query -n mycc -c '{"Args":["GetValue","event_7"]}' -C myc
注册一个新活动,注意口令的时间,然后验证打卡时的各种条件限制是否起作用,最后看看用户和活动的数据变化
peer chaincode invoke -n mycc -c '{"Args":["EventReg", "event_8", "user_123", "1000", "0", "100", "{\"口令1\":[\"1590048003\",\"1591996481\"],\"口令2\":[\"1590048003\",\"1591996481\"]}", "1590048003", "1591996481", "0", "10", "20"]}' -C myc
peer chaincode invoke -n mycc -c '{"Args":["UserJoinEvent", "user_456", "event_8", "0"]}' -C myc
peer chaincode invoke -n mycc -c '{"Args":["UserClockIn", "user_456", "event_8", "口令2","1590048004"]}' -C myc
peer chaincode query -n mycc -c '{"Args":["GetValue","user_456"]}' -C myc
peer chaincode query -n mycc -c '{"Args":["GetValue","event_8"]}' -C myc
活动开始前
peer chaincode invoke -n mycc -c '{"Args":["CronEndEvent", "1590048003"]}' -C myc
活动中
peer chaincode invoke -n mycc -c '{"Args":["CronEndEvent", "1590998481"]}' -C myc
活动结束
peer chaincode invoke -n mycc -c '{"Args":["CronEndEvent", "1591996681"]}' -C myc
本文由小韦云原创,转载请注明出处:https://bctos.cn/doc/10/1852,否则追究其法律责任
关键词: