HyperLedger Fabric 2.0 启动网络脚本配置剖析。
根据[HyperLedger Fabric 2.0测试网络部署](https://learnblockchain.cn/article/581)可知Fabric网络启动主要依赖脚本`./byfn.sh up`
接下针对这个脚本进行剖析,研究Fabric2.0 first-network的启动过程。
## 1. byfn.sh
查看byfn.sh找到up模式主要做了什么,如下图可见,执行networkUp这个function来实现Fabric网络启动。
![ Fabric 网络启动 networkUp ](https://img.learnblockchain.cn/2020/02/FAF48EB162.png)
接下来进入networkUp详细阅读:
![networkUp分析](https://img.learnblockchain.cn/2020/02/CFA2DE6279.png)
networkUp这个function里面核心脚本主要为以上红色框住的部分,分别为:
1. 检查二进制文件是否可用以及对应版本docker镜像是否存在。
2. 假如当前sh所在父目录不存在crypto-config目录就执行生成区块、通道以及证书脚本,详情请查看[Fabric2.0 first-network 生成配置说明](https://learnblockchain.cn/article/582)
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
```
执行结果如下图所示:
![在这里插入图片描述](https://img.learnblockchain.cn/2020/02/95816F1B03.png)
总共启动了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.exa