温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Fabric2.0启动网络脚本配置的示例分析

发布时间:2021-12-20 09:59:59 来源:亿速云 阅读:154 作者:小新 栏目:互联网科技

这篇文章主要介绍Fabric2.0启动网络脚本配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.byfn.sh

查看byfn.sh找到up模式主要做了什么,如下图可见,执行networkUp这个function来实现fabric网络启动。

Fabric2.0启动网络脚本配置的示例分析

接下来进入networkUp详细阅读: Fabric2.0启动网络脚本配置的示例分析 networkUp这个function里面核心脚本主要为以上红色框住的部分,分别为: 1. 检查二进制文件是否可用以及对应版本docker镜像是否存在。 2. 假如当前sh所在父目录不存在crypto-config目录就执行生成区块、通道以及证书脚本,详情请查看Fabric2.0 first-network 生成配置说明 3. 使用docker-compose命令启动fabric网络。 4. 加载go合约依赖包 5. 使用cli客户端执行脚本操作

     其中在默认条件下启动yaml文件包括:
	 docker-compose-cli.yaml
     docker-compose-etcdraft2.yaml

2.docker-compose-cli.yaml

为了看清楚docker-compose-cli.yaml具体启动了什么,我们将文件拆分执行 首先打开控制台,输入以下命令

cd first-network
docker-compose -f docker-compose-cli.yaml up -d 2>&1

执行结果如下图所示: Fabric2.0启动网络脚本配置的示例分析 总共启动了6个容器分别是: 5个排序节点中的其中一个节点 orderer.example.com

两个组织org1、org2的节点 - peer0.org1.example.com - peer1.org1.example.com - peer0.org2.example.com - peer1.org2.example.com

fabric客户端 cli

2.1 排序节点启动

orderer.example.com 从排序节点入手: 一般来说,我会从启动日志入手,先看结果再看配置,打开控制台,输入以下命令

docker logs -f orderer.example.com --tail=300

控制台输出了orderer.example.com的启动日志如下

由于太长我分开几个部分来说

(1)排序节点配置项输出: 排序节点启动的时候,会根据环境变量输出相应的配置,包括证书配置、监听端口配置等, Fabric2.0启动网络脚本配置的示例分析 而这些配置对应就是docker-compose-cli.yaml的以下配置: Fabric2.0启动网络脚本配置的示例分析 我们继续追踪base/docker-compose-base.yaml,找到orderer.example.com服务

Fabric2.0启动网络脚本配置的示例分析 从上图来看,orderer的配置还是引入peer-base.yaml中的orderer-base服务

Fabric2.0启动网络脚本配置的示例分析

从上图来看与日志输出配置匹配,就是yaml里面加了ORDERER_前缀,其余配置的修改也可通过这种方式。详细排序节点配置说明,晚点补充。

(2)加载创始区块,启动排序节点。 Fabric2.0启动网络脚本配置的示例分析 好的系统的一个好的日志输出,fabric的日志输出还是很优秀的,从日志输出可以跟踪排序节点启动究竟干了什么,通过上图日志输出,可以读到:

1.根据1的配置初始化排序节点
2. 创建本地账本目录
3. 设置排序节点服务监听端口
4. 根据创始区块文件初始化本地账本
5. 启动fabric系统通道
6. 启动raft服务

(3)raft服务启动 Fabric2.0启动网络脚本配置的示例分析 上图已经标识了核心日志并且进行说明,有一点还是很清晰的就是,(对于没仔细研究fabric2.0 raft的人来说)一个通道就是一个raft服务集群。红色的日志是错误,在分配完raft集群节点后,其余节点没启动,所以都是失败的,后面一直在做重连操作。

以上就是orderer.example.com启动剖析过程。

2.2 节点启动

然后我们来看以下peer0.org1.example.com 打开控制台,输入以下命令

docker logs -f peer0.org1.example.com --tail=300

控制台输出结果如下: Fabric2.0启动网络脚本配置的示例分析 peer节点启动主要是 1. 启动peer grpc服务 2. 初始化gossip服务 3. 初始化本地账本 4. 安装系统链码,这里比起1.x,2.0多了一个系统链码就是_lifecycle,是跟智能合约相关的链码,我们下一篇进行详解。 5. 基于gossip对同组织节点进行交互

3.docker-compose-etcdraft2.yaml

同样的套路,首先打开控制台,输入以下命令:

cd first-network
 docker-compose -f docker-compose-etcdraft2.yaml up -d 2>&1

控制台输出结果如下: Fabric2.0启动网络脚本配置的示例分析 由上图可知,主要启动了其余4个排序节点

先不看新启动的排序节点,查看原本开始启动的orderer.example.com 控制台输入以下命令

 docker logs --tail=300  -f orderer.example.com

控制台输出结果如下: Fabric2.0启动网络脚本配置的示例分析 由日志可以观察到,orderer.example.com以及成功连接其他raft节点,并且在raft 的term2 leader 从orderer.example.com (0)变成orderer5.example.com(5)

接下来我们看一下orderer5.example.com节点的情况 控制台输入以下命令:

docker logs --tail=300  -f orderer5.example.com

控制台输出: Fabric2.0启动网络脚本配置的示例分析 由日志可见,在term2 经过一轮投票后,orderer5获得5票回应成为了term2的raft leader。 整体网络处于完全启动状态。

Fabric2.0启动网络脚本配置的示例分析

以上是“Fabric2.0启动网络脚本配置的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI