fabric源码调试二:orderer源码调试

前言
用fabric-samples里自带的test-network网络,一个orderer,两个peer,其中orderer去容器启动,peer用容器启动。
一、调试工具
goland,可能遇到的问题见这里
二、前期准备

拉取fabric2.1源码
cd fabric
mkdir work_dir && cd work_dir  
mkdir bin                      
mkdir orderer									 # 放置orderer程序运行产生的文件

# 拷贝test-network必要的配置
cp <fabric-samples path>/config/* ./config/
cp <fabric-samples path>/test-network ./
cp -r <fabric-samples path>/chaincode ./

# 运行一下验证拷贝过来的配置是能用的
cp <fabric-samples path>/bin/* ./bin/     # 先用下载下来的bin测试,待源码编译的时候会自动将其替换掉
cd test-network
./network down
./network up

# 结果打印应该提示成功,略

三、添加go build配置
goland中打开fabric项目,Run/Debug Configuration,添加go build配置。(orderer配置的yaml文件:/fabric/work_dir/test-network/docker/ docker-compose-test-net.yaml):
在这里插入图片描述
把上面的环境变量编辑到go build配置中,如下:
在这里插入图片描述
Environment一项:
在这里插入图片描述
在这里插入图片描述

注意添加最后一行是关于orderer配置 的yaml文件里没有的,这是告诉程序启动的时候去./config找orderer.yaml文件。
四、(1)修改orderer.yaml文件

vi work_dir/config/orderer.yaml
修改账本的位置

在这里插入图片描述
(2)/work_dir/test-network/configtx/configtx.yaml
OrdererType选择kafka:
在这里插入图片描述

五、开始debug
(1)清理环境

cd work_dir/test-network
./network.sh down

# 清理orderer的FileLedger目录,以后每次网络重置都需要做这步,./byfn.sh down脚本无法照顾到IDE启动的
# orderer
rm -rf ../orderer/*  

(2)启动peer容器

wang@wang:~/go/src/github.com/hyperledger/fabric/work_dir/test-network$ ./network.sh up

(3)debug
先把断点打在 fabric/cmd/orderer/main.go中,然后点击debug
在这里插入图片描述
(4)发送交易

wang@wang:~/go/src/github.com/hyperledger/fabric/work_dir/test-network$ ./network.sh createChannel
wang@wang:~/go/src/github.com/hyperledger/fabric/work_dir/test-network$ ./network.sh deployCC

后续内容详见这篇文章

猜你喜欢

转载自blog.csdn.net/u010931295/article/details/108663935