Fabric支持开发模式,在开发者模式下,调试智能合约比较方便。但是这仅仅适用Fabric1.4,链码安装在peer节点上。
Fabric2.0虽然保留了开发者模式,但是链码容器独立运行,作为独立的Docker容器,这种模式就不一定灵光了。
本文目的是记录下探索Fabric链码调试方法过程的尝试及错误排查,最终的结果是没有成功。
结论是,链码尽管可能需要调试但是链码开发者模式并不适用。
建议: 链码编写过程中小心点儿,搭建本地测试网络,进行合约测试,没有问题再部署到生产网络。
一、测试环境
deepin 20.1
二、依赖条件
1. 克隆仓库到本地: https://github.com/hyperledger/fabric-samples.git
三、调试环境搭建
1. 测试网络搭建
1. 切换到如下目录 cd chaincode-docker-devmode
执行如下命令,启动docker容器
docker-compose -f docker-compose-simple.yaml up
以上命令实现了,启动如下4个容器:
orderer --排序节点,交易排序
peer --对等节点,账本存储
cli --链码交互容器
chaincode --链码容器,运行链码
执行完成,容器如下:
2. 编译链码并运行
(1)执行 docker exec --user root -it chaincode sh,进入容器
(2) ls 查看目录,abstore是我们要使用合约的目录
切换到目录/opt/gopath/src/chaincode/abstore/go
编译报错 go build
设置go proxy代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go mod vendor
运行链码
CORE_CHAINCODE_ID_NAME=mycc:0 CORE_PEER_TLS_ENABLED=false ./abstore -peer.address peer:7052
原文:https://www.cnblogs.com/jiftle/p/14603040.html