hyperledger fabric 源码调试(orderer)环境搭建教程

  • 时间:
  • 浏览:1
  • 来源:uu快三_uu快三直播_uu快三官网开奖平台

这是告诉程序运行启动的事先 去./config找orderer.yaml文件(在官方文档里只在使用configtxgen生成初始数据的事先 提到要配置你这种环境变量,事先 该工具内部人员又做了避免并设置进了docker容器中)。你这种行事先 不加会报错:

接下来的工作但会 一步步将first-network中提供的配置移植到goland中实现源码调试。

拉取完成后,用Goland -> file -> Open ->选中fabric目录打开特征如下:

采用release-1.4的代码(事先 使用有些版本代码,事先 目录特征有差异,但本文重在理解避免思路,可参照着探索)

failed to parse config: Error reading configuration: Unsupported Config Type ""

在first-network的示例所含如下一有两个多多yaml文件:

image-20191218143827726.png

假设您事先 调试好官方文档里的first-netwotk,下述描述到“cd fabric-samples“都在指该示例相关的路径,都在在fabric源码中。

先在fabric/orderer/common/server/server.go的 func (dmt *deliverMsgTracer) Recv()第一行打上断点,但会 F9让程序运行跳过事先 Main函数处的断点,等候接收消息。

image-20191219111722411.png

image-20191218173424308.png

2.在源码目录 fabric/orderer/main.go中 打个断点,确认debug configuration为事先 设置的orderer,但会 点击debug标志,编译完成并还都还上能 看得人断点生效:

image-20191218171625107.png

​ 接触hyperledger fabric有一段时间了,看文档搭集群写链码都做过,但要深入理解还是通过源码比较直观,遂决定部署起来。同多机器部署一样,官文对源码调试的描述较少,网上有些前辈事先 写过但少有明确每一步的导致 ,本系列文尝试最好的土法律法律依据我个人所有 理解来描述构建fabric源码调试环境的步骤,加进docker这层障碍,并给出思考过程。

fabric模块划分比较细,采用docker是为了简化部署,一起在官方提供的文档中也絮状采用shell脚但会 引导,前要先大致明确2个概念:

成功!

​ 用来运行一组docker实例,在first-network中,一有两个多多多orderer和一有两个多多peer,还一有两个多多多cli,在dockker-compose-cli.yaml中配置了各实例的环境变量,它又依赖./base/peer-base.yaml和./base/docker-compose-base.yaml,后续配置过程将主要围绕这2个文件展开。

不改话语程序运行启动都会尝试创建/var/hyperledger/production/orderer,事先 报Permission denied。

​ byfn.sh 中所含了整个first-network的启动和测试,有兴趣并能阅读一下,启动debug调试的过程中事先 会从中参考运行参数。

shell脚本:

fabric只启动一有两个多多orderer那么调试,事先 整个区块链前要多个模块一起相互协作,有些还前要启动first-network的有些2个orderer和模块,为了简单起见这2个模块就用docker启动,前要做些修改,在docker-compose-cli.yaml中禁掉orderer.example.com:

docker:

docker有我个人所有 的文件目录特征,通过volumes配置映射到本地,亲戚亲戚朋友要抛开docker直接在ide里运行就前要上述涉及到路径的都替加进本地路径,先找到orderer相关的volumes配置项(在base/docker-compose-base.yaml中):

最后启动这2个容器(事先 对docker-compose熟悉就会知道,不粉悉并能从byfn.sh或build your fist network的手动调试说明中中找到):

docker-compose:

IDE: goland2019.2 下载地址 https://www.jetbrains.com/go/ 我用的

你这种有两个多多文件配置了orderer,peer,cli实例的环境变量,现在只关注其中orderer的累积,它的环境变量配置都在base/peer-base.yaml中,将其environment累积全拷贝出来贴到 一有两个多多文本文档里:

二、环境变量(还是Run/Debug Configuration)

一键复制上述配置好的环境变量,打开Run/Debug Configuration -> Environment, 点击文本框右侧按钮后粘贴进去(若直接站在文本框里前要手动用;号隔开):

但会 前要在剩下的各容器配置中都加进orderer内部人员ip映射

其中,冒号左边是本地路径,右边是docker路径,对照这几项把前边的环境变量替换过来,另外注意稍微有有些改动(加进了first-network前缀,这是事先 事先 用脚本启动时的当前路径不一样,前要做些修正,事先 并并能直接补全绝对路径):

三、config配置修改

​ 事先 有写过一篇hyperledger fabric 多机部署的教程,基于first-network示例,这次也是以它为基准,以便在遇到间题的事先 更容易从官方文档找到避免方案。前要先走通first-network的搭建,有些配置项前要参考它。

一、Run/Debug Configuration,加进一有两个多多Go build 配置,具体如下:

五、配合网络调试

1.事先 一会要配合网络调试,先清理掉事先 启动的网络并重新准备数据(但会 事先 出错):

后续有些节点的调试并并能照葫芦画瓢来做。

系统:mac OS 。windows最好弄个虚拟机或双系统。

并能看得人程序运行在断点处停下来:

现在Goland中的orderer和docker管理的有些2个模块都起来了,并能在源码中打断点调试交互过程,简单起见,挑选官文build your first network中的[Create & Join Channel]来测。

在工程目录下创建目录

(完)

注意最后一行,这是加进的,yaml文件中那么:

致后台审核:有你这种间题吗这篇文?

四、启动debug

但会 利用cli容器发送channel创建消息:

​ 应用容器工具,并能将应用运行所前要的有些环境打包进去,方便移植。