作者:Tiny熊
来源:区块链兄弟
原文链接:http://t.cn/ELoD2h2
本文约1700字+,阅读(观看)需要10分钟
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇文章对fabric的网络环境启动过程进行讲解,也就是我们上节讲到的启动测试fabric网络环境时运行network_setup.sh这个文件的执行流程
fabric网络环境启动过程详解
上一节我们讲到 fabric网络环境的启动测试,主要是使用 ./network_setup.sh up 这个命令,所以fabric网络环境启动的重点就在network_setup.sh这个文件中。接下来我们就分析一下network_setup.sh这个文件
network_setup.sh其中包括两个部分,一个是利用generateArtifacts.sh脚本文件配置组织关系和颁发证书、公/私钥、通道证书等,另一个是docker-compose-cli.yaml用于根据配置启动集群并测试chaincode的示例代码。下面是具体的流程图介绍:
首先看下generateArtifacts.sh脚本文件,它包含三个函数,分别是:
1.generateCerts:
该函数使用cryptogen工具根据crypto-config.yaml来生成公私钥和证书信息等。
2.replacePrivateKey:
将docker-compose-e2e-template.yaml文档中的ca私钥替换成具体的私钥。
3.generateChannelArtifacts:
使用configtxgen工具根据configtx.yaml文件来生成创世区块和通道相关信息,更新锚节点。
接着是docker-compose-cli.yaml文件** docker-compose-cli.yaml文件根据组织关系启动docker集群,并在cli容器中执行command命令运行./scripts/script.sh脚本文件。 那./scripts/script.sh脚本具体做了什么呢?
创建channel
- joinChannel:将每个peer节点加入channel。
- updateAnchorPeers:更新锚节点
- installChaincode:部署chaincode。
- instantiateChaincode:初始化chaincode。
- chaincodeQuery:chaincode查询
另外docker-compose-cli.yaml这个文件还有一个配置项是需要注意的地方,那就是:
file: base/docker-compose-base.yaml
这里的docker-compose-base.yaml其实就是Orderer和peer的基础配置文件,包括指定端口等。### 几个重要的配置文件#### 1.crypto-config.yaml基于crypto-config.yaml(此文件在../fabric/examples/e2e_cli中)**生成公、私钥和证书信息,并保存在crypto-config文件夹中**。
另外crypto-config.yaml还定义了组织成员以及组织下的peer节点个数。**crypto-config.yaml文件讲解:**字段Name和Domain就是关于这个组织的名字和域名,这主要是用于生成证书的时候,证书内会包含该信息。
而Template.Count=2是说我们要生成2套公私钥和证书,一套是peer0.org1的,还有一套是peer1.org1的(也就指定了org中存在peer0和peer1两个节点)。最后Users.Count=1是说每个Template下面会有几个普通User(注意,Admin是Admin,不包含在这个计数中),这里配置了1,也就是说我们只需要一个普通用户User1@org1.example.com 我们可以根据实际需要调整这个配置文件,增删Org Users等。
文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人。