区块链学习——HyperLedger-Fabric v1.0 启动过程分析

本章我们从fabric v1.0e2e_cli示例开始分析整个启动过程以及在过程中的一些配置文件

首先呢,还是确保你的基本环境已经搭建完成,v1.0源码和镜像也都下载完毕

一.fabric启动过程中的相关脚本文件解析
1.1 network_setup.sh脚本文件

在源码目录下的network_setup.sh文件是官方提供的快速部署测试的一个自动化脚本,接下来我们看一下在启动这个文件时都做了什么:
在这里插入图片描述
在上图中我们只是截取了启动函数,在这个函数中可以清楚的看出在启动中调用了generateArtifacts.shdocker-compose-cli.yaml两个文件,这两个文件的作用分别是:

generateArtifacts.sh:生成所需的证书(crypto-config文件夹)和通道相关的配置文件(channel-artifacts文件夹)
docker-compose-cli.yaml:描述的是这个示例网络的拓扑结构
1.2 generateArtifacts.sh脚本文件

我们继续分析在network_setup.sh中调用generateArtifacts.sh文件具体又做了什么呢
generateArtifacts.sh中一共有3个函数:replacePrivateKey()generateCerts()generateChannelArtifacts()

generateCerts():在这里插入图片描述
在上图中可以看到这个函数使用工具cryptogen和crypto-config.yaml文件来生成所需的证书文件和公私钥。
我们可以看一下crypto-config.yaml文件:
Name和Domain是指该org的名字和域名,Template.Count是指该org中的节点数量,Users.Count是指该org中包含的user数量.

OrdererOrgs:
  - Name: Orderer
    Domain: example.com
    Specs:
      - Hostname: orderer
# ---------------------------------------------------------------------------
PeerOrgs:
  - Name: Org1
    Domain: org1.example.com
    Template:
      Count: 2
    Users:
      Count: 1
  # ---------------------------------------------------------------------------
  - Name: Org2
    Domain: org2.example.com
    Template:
      Count: 2
    Users:
      Count: 1

generateChannelArtifacts():
在这里插入图片描述
在上图中可以看到这个函数使用工具configtxgenconfigtx.yaml文件来生成创世区块以及通道相关的配置文件。而configtx.yaml文件里主要是一些org的配置项信息,如ID、Host、Port等,除此之外还指明了orderer的共识方式为solo等一些的基础的配置项信息。

1.3 docker-compose-cli.yaml脚本文件

docker-compose-cli.yaml文件描述了这个示例网络的拓扑结构,如下,包含:

  • orderer:1个
  • org1:peer0(锚节点),peer1
  • org2:peer0(锚节点),peer1
  • cli:对上面的容器节点进行管理
  • 为什么cli能够对上面的容器进行管理呢?
    因为cli是经过网络中其他节点进行授权认可的,而认可的凭证就是公私钥

#command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT'
文件中上面这一行是笔者故意注释掉的,使docker-compose-cli.yaml文件启动时不会自动去执行script.sh脚本,而这个脚本就是自动创建、加入通道以及链码相关操作的自动化脚本,而在下面,我们将自己动手来一步步完成这些步骤,从而加深对fabric启动过程的理解。

version: '2'

services:

  orderer.example.com:
    extends:
      file:   base/docker-compose-base.yaml
      service: orderer.example.com
    container_name: orderer.example.com

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer0.org1.example.com

  peer1.org1.example.com:
    container_name: peer1.org1.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer1.org1.example.com

  peer0.org2.example.com:
    container_name: peer0.org2.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer0.org2.example.com
  peer1.org2.example.com:
    container_name: peer1.org2.example.com
    extends:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值