hyperledger fabric--1.1--kafka多机部署

配置文件github地址:https://github.com/X-ljy/Hyperledger-fabric-config

一、环境搭建

各个主机的配置情况:

10.10.44.120
orderer0.example.com ca0.org1.example.com

10.10.44.122
orderer1.example.com peer0.org1.example.com
zookeeper0.example.com kafka0.example.com
couchdb0.org1.example.com

10.10.44.123
orderer2.example.com peer1.org1.example.com
zookeeper1.example.com kafka1.example.com
couchdb1.org1.example.com

10.10.44.124
peer0.org2.example.com zookeeper2.example.com
kafka2.example.com couchdb0.org2.example.com

10.10.44.129
peer1.org2.example.com kafka3.example.com
couchdb1.org2.example.com ca0.org2.example.com

每台主机都需要先进行单机的区块链部署,所以以下步骤适用于所有主机。

1、Docker-CE 安装
1)安装docker-ce
step 1: 安装必要的一些系统工具

#sudo yum install -y yum-utils device-mapper-persistent-data lvm2  

Step 2: 添加软件源信息

#sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  

Step 3: 更新并安装 Docker-CE

#sudo yum makecache fast  
#sudo yum -y install docker-ce    
  1. 是否安装成功
#docker --version

3)docker 启动

#service docker start

4)docker 开机自启动

#chkconfig docker on

2、Docker-compose 安装
1)Compose 安装

  #curl https://get.daocloud.io/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose



 #chmod +x /usr/local/bin/docker-compose

2)是否安装成功

  #docker-compose --version

3、Go语言安装
1)下载解压

#cd /opt
#mkdir golang
#cd golang
#curl -O https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
#tar -zxvf go1.9.2.linux-amd64.tar.gz
  1. 配置Go语言环境变量
#vi /etc/profile
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/opt/gopath

以上内容添加到/etc/profile后面

#source /etc/profile

3) 查看版本

#go version

4)查看环境变量

   #go env

4、git 安装

yum install git

5、Fabric的安装
1)Fabric的下载

#mkdir -p $GOPATH/src/github.com/hyperledger/
#cd $GOPATH/src/github.com/hyperledger/
#git clone https://github.com/hyperledger/fabric.git
#cd fabric
#git checkout v1.1.0

6、加速镜像

#sudo mkdir -p /etc/docker
#sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://8w1wqmsz.mirror.aliyuncs.com"]
}
EOF
#sudo systemctl daemon-reload
#sudo systemctl restart docker

7、下载镜像

		#cd /opt/gopath/src/github.com/hyperledger/fabric/scripts
		#vim bootstrap.sh

hyperledger fabric--1.1--kafka多机部署_第1张图片
(修改图中的版本为1.1.0)

#./bootstrap.sh
#docker images

部镜像截图如下:

在这里插入图片描述

8、安装gcc
#yum install gcc

9、运行e2e_cli
#cd /opt/gopath/src/github.com/hyperledger/fabric
#make release
#cd /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli
#vim base/peer-base.yaml
(将圈住的部分改为图中所显示的名称)
在这里插入图片描述
# bash generateArtifacts.sh
#./network_setup.sh up
(出现ALL GOOD 即单机部署成功)
hyperledger fabric--1.1--kafka多机部署_第2张图片
关闭网络
#./network_setup.sh down

二、多机部署

10.10.44.120
orderer0.example.com
ca0.org1.example.com

10.10.44.122
orderer1.example.com
peer0.org1.example.com
zookeeper0.example.com
kafka0.example.com
couchdb0.org1.example.com

10.10.44.123
orderer2.example.com
peer1.org1.example.com
zookeeper1.example.com
kafka1.example.com
couchdb1.org1.example.com

10.10.44.124
peer0.org2.example.com
zookeeper2.example.com
kafka2.example.com
couchdb0.org2.example.com

10.10.44.129
peer1.org2.example.com
kafka3.example.com
couchdb1.org2.example.com
ca0.org2.example.com

一、生成公私钥、证书、创世区块。
1) 切换到orderer.example.com这台服务器上

#cd /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli

# ./generateArtifacts.sh mychannel

2)生成的crypto-config和channel-artifacts使用scp命令拷贝到其它四台电脑上的e2e_cli的目录中,如:

#scp -r crypto-config [email protected] 	/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli
#scp -r channel-artifacts [email protected] /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli

二、编写对应的配置文件
配置文件已经打包在该目录下。

hyperledger fabric--1.1--kafka多机部署_第3张图片

三、将对应的配置文件发送到对应的主机上

四、配置hosts文件,将相应的域名加入到/etc/hosts 文件内。
多点集群的启动

1)zookeeper是一个集群插件,所以了一单独先启动

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

其中-d 代表的是后台运行的意思,如果要看日志可以加 –-verbose 参数

上述命令在每一个含有zookeeper的主机进行。
2)kafka 启动依赖于zk集群,所以接下来进行kafka集群的启动。

 #docker-compose -f docker-kafka.yaml up -d
	同样在每台机器上启动

3)orderer 排序服务启动
#docker-compose -f docker-orderer.yaml up -d
	分别在每台机器上启动
4)peer 组织节点的启动

#docker-compose -f docker-peer.yaml up -d
分别在每个节点上启动

五、运行脚本
启动脚本已在文档中备份
进入examplecli客户端容器
#docker exec -it examplecli bash
#./script001.sh
升级链码:
首先在cli 下把需要升级的链码进行安装,安装需要注意链码的路径,和版本号的变化,具体命令在多机启动脚本里详见。然后是升级命令。

#ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
#CORE_PEER_TLS_ENABLED=true

#peer chaincode upgrade -o orderer0.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -v 2.0 -c '{"Args":["init"]}' -P "OR      ('Org1MSP.member','Org2MSP.member')"


验证:
#peer chaincode invoke -o orderer0.example.com:7050  --tls  true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc   -v 2.0 -c'{"Args":["setdigital","digital0","keyvalue","enya"]}'

如图所示:

在这里插入图片描述

证书说明

hyperledger fabric--1.1--kafka多机部署_第4张图片

**

配置文件链接

链接:https://pan.baidu.com/s/1MbSibcmQbc1mxdNHzP1Xrw 密码:3lrc

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