搭建fabric多机部署环境

最近在学习hyperledger fabric,应公司要求,需要测试一下fabric的多机部署环境,于是在本地安装了三个虚拟机进行测试。使用的软件是virtualbox,虚拟机版本是Ubuntu17.0.4,虚拟机采用的是NAT+host only的模式。三个虚拟机的IP地址和作用如下表:

192.168.56.105 orderer节点,peer0.org1.example.com节点,peer1.org1.example.com节点
192.168.56.102 peer0.org2.example.com节点,peer1.org2.example.com节点
192.168.56.104 peer0.org3.example.com节点,peer1.org3.example.com节点
一、部署前的准备工作:

1、下载docker和docker-compose

用下面的命令去下载docker和docker-compose:

# apt install docker.io

# apt install docker-compose

下载完成后可以检查docker和docker-compose的版本

# docker --version

# docker-compose --version

2、下载go programming language

在官网下载go1.8.3.linux-amd64.tar.gz压缩文件,并且上传到三个虚拟机,创建目录/home/fabric-1,传到这个目录下,然后进行解压缩:

# tar -C /home/fabric-1 -xzf go1.8.3.linux-amd64.tar.gz

之后修改系统环境变量,在/etc/profile文件夹下:

export GOROOT=/home/fabric-1/go

export GOBIN=$GOROOT/bin

export GOPATH=/home/workspacego

export PATH=.:$PATH:$GOBIN

记得要使用命令source /etc/profile使环境变量生效,在设置环境变量之前先创建/home/workspacego文件夹,在命令行输入go,如果出现如下命令,说明安装成功。


二、生成keys,certificates,artifacts文件

1、首先从github上下载fabric的源码

# go get github.com/hyperledger/fabric

下载完成之后,可以在/home/workspacego文件夹下看到最新的源码,我们需要fabric v1.0.1版本的源码,所以使用下面命令切换到v1.0.1的版本:

# cd /home/workspacego/src/github.com/hyperledger/fabric

# git checkout v1.0.1

2、下载fabric docker images

# cd /home/workspacego/src/github.com/hyperledger/fabric/examples/e2e_cli/

# source download-dockerimages.sh -c x86_64-1.0.1 -f x86_64-1.0.1

然后就将下载docker images,这个过程需要一段时间,请耐心等待。

3、下载好镜像之后,我们就来设置fabric多机的网络环境。

首先,我们要修改configtx.yaml,crypto-config.yaml和generateArtifacts.sh文件,在configtx.yaml文件中,默认有两个组织,我们需要增加一个组织Org3,如下图:


并且修改Organizations tag,增加Org3组织:


在crypto-config.yaml文件中,改变PeerOrgs tag:


在generateArtifacts.sh,改变函数replacePrivateKey(),增加下面一行:


改变函数generateChannelArtifacts(),增加下面一行:


修改这些文件之后,我们运行脚本来生成一些必要的文件:

# ./generateArtifacts.sh mychannel

这个脚本将生成channel-artifacts文件夹和crypto-config文件夹,channel-artifacts文件夹包含了channel的相关信息,crypto-config文件夹包含了所有节点的公钥,私钥和证书信息。这两个文件夹我们只在一个机器上生成就行了,然后拷贝到其他两个机器上就可以了。

三、配置节点文件

首先,创建docker-compose-peer.yaml文件基于docker-compose-cli.yaml文件:

# cp docker-compose-cli.yaml docker-compose-peer.yaml

修改docker-compose-peer.yaml文件,如下:(在192.168.56.105机器上


在192.168.56.102机器上:


在192.168.56.104机器上:


在192.168.56.105机器上,增加docker-compose-orderer.yaml文件,增加如下内容:


此外,在每个节点还需要修改对应的docker-compose-base.yaml文件,分别增加对应节点的配置信息,注意,因为我是在一台电脑上搭建的环境,所以每个节点都应该给配置不同的端口。

192.168.56.105:



192.168.56.102:


192.168.56.104:


这些都配置完成之后,我们就在每个机器上启动peer节点,使用如下命令:

# docker-compose -f docker-compose-orderer.yaml up -d    

这个命令在192,168,56,105节点上启动,启动排序节点

# docker-compose -f docker-compose-peer.yaml up -d

这个命令在三个节点上都启动。

然后在192。168.56.105节点上进入容器,进行测试:

# docker exec -it cli bash

# ./scripts/scripts.sh mychannel

scripts.sh脚本,包含了创建通道,将节点加入通道,下载chaincode,初始化chaincode,还有invoke,query方法等。如果执行脚本成功的话,说明我们的整个多机部署的网络已经起来了。

猜你喜欢

转载自blog.csdn.net/MisshqZzz/article/details/79207224