Fabric实战(13)Fabric链码调试(容器外)

链码调试

本文章所有操作基于的操作系统版本是:ubuntu16.04 64位
本文章基于的Fabric网络环境是《Fabric实战(2)运行一个简单的fabric网络(容器外)》

1 开发环境链码调试

1.1 容器之外运行Chaincode

第一步:注册需要调试的chaincode

  • 设置peer节点的运行模式
    可以通过修改配置文件或者添加环境变量的方式修改Peer节点的启动模式。配置文件可以通过修改core.yaml文件中chaincode节点的mode子节点的值,将mode改为net,修改如下:
chaincode:
    mode: net

或者通过环境变量修改运行模式

export set CORE_CHAINCODE_MODE=net
  • 注册chaincode
    注册步骤就是执行chaincode的install和instantiate操作
export set FABRIC_FCG_PATH=/home/zym/fabric-ws/simple-demo/production
export set ORDERER_GENERAL_LOGLEVEL= debug
export set CORE_PEER_LOCALMSPID=Org1MSP


export set CORE_PEER_ADDRESS=peer0.org1.simple-network.com:7051
export set CORE_PEER_MSPCONFIGPATH=/home/zym/fabric-ws/simple-demo/crypto-config/peerOrganizations/org1.simple-network.com/users/[email protected]/msp

peer chaincode install -n r_debug_cc6 -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02


peer chaincode instantiate -o orderer.simple-network.com:7050 -C testchannel -n  r_debug_cc6 -v 1.0    -c '{"Args":["init", "a", "100", "b", "200"]}'

第二步:将Peer节点设置为调试模式
可以通过修改配置文件或者添加环境变量的方式修改Peer节点的启动模式。配置文件可以通过修改core.yaml文件中chaincode节点的mode子节点的值,将mode改为dev,修改如下:

chaincode:
    mode: dev

或者通过环境变量修改运行模式:

export set CORE_CHAINCODE_MODE=dev

注意:设置为dev模式后,无法执行peer chaincode instanitate命令

第三步:编译chaincode
切换到chaincode的源码目录:

 cd ~/go/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

编译chaincode源码:

 go build chaincode_example02.go

第四步:运行chaincode

export set CORE_PEER_ADDRESS=127.0.0.1:7051
export set CORE_CHAINCODE_ID_NAME=r_debug_cc6:1.0
export set CORE_CHAINCODE_LOGGING_LEVEL=INFO
export set CORE_CHAINCODE_LOGGING_SHIM=INFO

./chaincode_example02 -peer.address=0.0.0.0:7052

环境变量和命令参数说明:
CORE_PEER_ADDRESS: peer节点(背书节点)的IP地址
CORE_CHAINCODE_ID_NAME: chaincode的名字和版本号,必须和install时命令中-n和-v的参数一致。
CORE_CHAINCODE_LOGGING_LEVEL: chaincode系统的日志级别。
CORE_CHAINCODE_LOGGING_SHIM: shimd日志级别。
-peer.address: Peer节点中监听chaincode的ip和端口,必须和core.yaml文件中的peer节点下面的chaincodeListenAddress的值一样。

1.2 IDE中调试Chaincode
本教程使用goland为例演示如何调试Chaincode
第一步:打开链码工程
Fabric实战(13)Fabric链码调试(容器外)_第1张图片

点击create
Fabric实战(13)Fabric链码调试(容器外)_第2张图片

第二步:配置运行环境设置窗口
在菜单Run-Edit Configureations打开运行环境设置窗口,在窗口的左边树型菜单中选择GO Build,内容如下,主要是配置两方面:

  • 环境变量
  • 程序运行参数

内容和命令行运行时指定一样。

注意:环境变量中不要有空格,否则可能无效

Fabric实战(13)Fabric链码调试(容器外)_第3张图片

环境变量设置:
Fabric实战(13)Fabric链码调试(容器外)_第4张图片

第三步:打断点并运行
Fabric实战(13)Fabric链码调试(容器外)_第5张图片

你可能感兴趣的:(Fabric)