Fabric chaincode调试

一、参考:
https://github.com/hyperledger/fabric-samples/tree/release-1.3/chaincode-docker-devmode
https://hyperledgercn.github.io/hyperledgerDocs/chaincode_developers_zh/#chaincode_7
http://www.zhayujie.com/fabric/chaincode-test.html
但是得注意docker-compose-simple.yaml中peer节点的命令,并将原来的注释掉,不然可能会报错(可能是我fabric的bin命令用的是1.2版本,而此处fabric-samples用的是1.3版本)。
在这里插入图片描述

二、编写自动化脚本简化调试流程(注意叫脚本的权限)。
1、在终端1执行启动脚本命令./startFabric.sh(目录:fabric-samples/chaincode-docker-devmode)。脚本代码如下

#!/bin/bash
set -e

docker-compose -f docker-compose-simple.yaml up

输出如下表示网络启动成功
在这里插入图片描述
2、在终端2执行链码运行环境脚本./chaincode.sh(目录:fabric-samples/chaincode-docker-devmode)。脚本代码如下

#!/bin/bash
set -e

docker exec -it chaincode ./chaincode.sh

执行完此命令将进入容器chaincode的工作目录(volume映射:./../chaincode:/opt/gopath/src/chaincode),并执行该目录下的./chaincode.sh(目录:fabric-samples/chaincode)。脚本代码如下

#!/bin/bash
set -e

cd mychaincode
go build -o ehr 
CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=ehr:0 ./ehr

输出如下表示链码运行环境搭建成功
在这里插入图片描述
3、在终端3执行链码安装并实例化的脚本./client.sh(目录:fabric-samples/chaincode-docker-devmode)。脚本代码如下

#!/bin/bash
set -e

docker exec cli peer chaincode install -p chaincodedev/chaincode/mychaincode -n ehr -v 0
printf "chaincode installed successfully!\n\n"

docker exec cli peer chaincode instantiate -n ehr -v 0 -c '{"Args":["init","a","100","b","200"]}' -C myc
printf "chaincode instantiated successfully!\n\n"
printf "you can run 'peer chaincode [function]...' to invoke chaincode function!\n\n"

docker exec -it cli bash

执行完此步之后链码ehr((目录:fabric-samples/chaincode/mychaincode/ehr.go)已经安装并实例化成功。
在这里插入图片描述
实例化过程中会执行链码中的Init函数,在终端2会打印出语句fmt.Printf("")的结果
在这里插入图片描述
链码中的Init函数如下
在这里插入图片描述
4、终端3调用
调用invoke函数

peer chaincode invoke -n ehr -c '{"Args":["invoke","a","b","10"]}' -C myc

结果
在这里插入图片描述
终端2打印
在这里插入图片描述
调用query函数

peer chaincode query -n ehr-c '{"Args":["query","a"]}' -C myc

结果
在这里插入图片描述
终端2打印
在这里插入图片描述
三、修改chaincode再次调试步骤(不用关闭3个终端窗口)
1、先在终端3中执行exit退出容器
在这里插入图片描述
然后再执行脚本./stopFabric.sh关闭网络,脚本代码如下

#!/bin/bash
set -e

docker rm -f $(docker ps -aq)
docker network prune -f
docker volume prune -f

在这里插入图片描述
2、编写链码,然后按照步骤二执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值