Fabric单机多节点网络的搭建

在跑通fabric给出的e2e实例后尝试搭建了fabric的单机多节点网络,本次实验环境为Ubuntu。

1.基本文件的准备

在/home/docker/github.com/hyperledger/fabric文件夹下创建此次的实验环境文件aberic以方便以后的项目管理。
需要将Fabric1.0版本平台特定的二进制文件(bin)上传至本文件夹。bin文件夹的位置和内容如下图所示,只需要复制到aberic文件夹中即可,这其中包括接下来生成证书所必须的配置文件。
Fabric单机多节点网络的搭建_第1张图片
此外还需要将fabric1.0版本下的configtx.yaml和crypto-config.yaml两个文件拷贝至aberic文件夹。
Fabric单机多节点网络的搭建_第2张图片
在这里插入图片描述
准备好基础文件后,aberic文件夹中应有上图三个文件。

2生成证书文件

接下来我们就可以开始生成所需证书文件了,我们执行相关命令需要指定执行文件的路径,为了方便,直接进入aberic项目目录下进行操作,随后执行如下命令生成我们项目所需文件:

./bin/cryptogen generate --config=./crypto-config.yaml

运行结果如下:
Fabric单机多节点网络的搭建_第3张图片
之后在crypto-config文件夹中将有两个文件夹:orderOrganizations和peerOrganizations
Fabric单机多节点网络的搭建_第4张图片

3.生成创世区块

生成创世区块之前我们在/home/docker/github.com/hyperledger/fabric/aberic目录下手动创建一个channel-artifacts文件夹,之后根据configtx.yaml来生成创世区块,具体命令及结果截图如下:

./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

Fabric单机多节点网络的搭建_第5张图片
创世区块是为了orderer启动时用到的,peer在启动后需要创建的channel配置文件在这里也一并生成,执行具体命令和结果示图如下:

./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel

该命令是生成了一个channelID为mychannel的tx文件,通过该文件,peer可以执行channel的创建工作。
Fabric单机多节点网络的搭建_第6张图片
命令执行完成后在channel-artifacts目录下生成一个mychannel.tx通道文件:
Fabric单机多节点网络的搭建_第7张图片

4.order节点的处理

单机多节点部署,此次试验采用的共识模式的solo。我们需要编写一份docker-orderer.yaml文件放入aberic文件夹。
docker-orderer.yaml具体内容如下:

version: '2'

services:

  orderer.example.com:
    container_name: orderer.example.com
    image: hyperledger/fabric-orderer
    environment:
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=aberic_default
      # - ORDERER_GENERAL_LOGLEVEL=error
      - ORDERER_GENERAL_LOGLEVEL=debug
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_LISTENPORT=7050
      #- ORDERER_GENERAL_GENESISPROFILE=AntiMothOrdererGenesis
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      #- ORDERER_GENERAL_LEDGERTYPE=ram
      #- ORDERER_GENERAL_LEDGERTYPE=file
      # enabled TLS
      - ORDERER_GENERAL_TLS_ENABLED=false
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.

你可能感兴趣的:(区块链)