BSN区块链服务网络开发入门

在开发模式下调试直播打卡链码

小韦云科技-区块链+小程序+公众号+商城+分销+直播+企业官网+外贸电商-为您提供优质的开发服务-电话/微信联系:18123611282

合约开发,调试是必须的,在开发过程一般使用Fabric提供的开发模式进行调试。和之前的教程 在开发者模式下调试BSN链码 一样,需要先打开三个gitbash终端

在1号终端启动开发网络

cd $GOPATH/src/github.com/hyperledger/fabric-samples/chaincode-docker-devmode
docker-compose -f docker-compose-simple.yaml up

在2号终端部署链码

要等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

部署成功后会处于监控模式,后面对链码的操作的日志会在这个终端里显示出来

在3号终端与链码交互

先进入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,否则追究其法律责任

关键词:

广告位招商