总目录:
(一)HyperLedger Fabric 2.0-release测试网络部署
(二)Fabric2.0 first-network 生成配置说明
(五)Fabric2.0 智能合约实践- 安装以及定义智能合约
根据HyperLedger Fabric 2.0-release测试网络部署可知fabric网络启动主要依赖脚本./byfn.sh up
接下针对这个脚本进行剖析,研究fabric2.0 first-network的启动过程。
1.byfn.sh
查看byfn.sh找到up模式主要做了什么,如下图可见,执行networkUp这个function来实现fabric网络启动。
接下来进入networkUp详细阅读:
其中在默认条件下启动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
执行结果如下图所示:
两个组织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)排序节点配置项输出: 排序节点启动的时候,会根据环境变量输出相应的配置,包括证书配置、监听端口配置等,
从上图来看与日志输出配置匹配,就是yaml里面加了ORDERER_前缀,其余配置的修改也可通过这种方式。详细排序节点配置说明,晚点补充。
(2)加载创始区块,启动排序节点。
1.根据1的配置初始化排序节点
2. 创建本地账本目录
3. 设置排序节点服务监听端口
4. 根据创始区块文件初始化本地账本
5. 启动fabric系统通道
6. 启动raft服务
(3)raft服务启动
以上就是orderer.example.com启动剖析过程。
2.2 节点启动
然后我们来看以下peer0.org1.example.com 打开控制台,输入以下命令
docker logs -f peer0.org1.example.com --tail=300
控制台输出结果如下:
3.docker-compose-etcdraft2.yaml
同样的套路,首先打开控制台,输入以下命令:
cd first-network
docker-compose -f docker-compose-etcdraft2.yaml up -d 2>&1
控制台输出结果如下:
先不看新启动的排序节点,查看原本开始启动的orderer.example.com 控制台输入以下命令
docker logs --tail=300 -f orderer.example.com
控制台输出结果如下:
接下来我们看一下orderer5.example.com节点的情况 控制台输入以下命令:
docker logs --tail=300 -f orderer5.example.com
控制台输出:
4.总结
上面是对网络启动的脚本以及配置剖析,虽然比较简单,但是主要是展示整个学习的过程,一些比较详细的配置说明还是从官方文档学习比较好,通过上面的学习,也可以看到fabric2.0的一些新特性,主要集中在智能合约以及raft共识,后面将继续往这个方向进行研究。
推荐阅读:(四)Fabric2.0通道实践