多机部署Fabric2.x(RAFT)版本
fabric局域网多机链管理目录
环境
-
Linux CentOS 7.4
准备好三台虚拟机,IP地址:
192.168.1.25 (orderer 排序组织) 192.168.1.26 (org.peer0) 192.168.1.27 (org.peer1)
保证其网络正常访问
-
wget
确保
wget
命令正常使用,安装方式如下:#yum install wget #wget --version - GNU Wget 1.14 built on linux-gnu.
-
unzip
确保
unzip
命令正常使用,安装方式如下:#yum install unzip #unzip --version
-
docker
确保
docker
已经安装,安装方式如下:
#下载repo文件
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
#把软件仓库地址替换为 TUNA
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
#安装docker
yum -y install docker-ce
docker -v
#-Docker version 19.03.8, build afacb8b
#启动并加入开机启动
systemctl start docker
systemctl enable docker
- 如有使用本地
harbor
私服。增加如下配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"insecure-registries": ["ip:port"],
"log-opts": {
"max-size": "10m"
}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker login `ip:port` -u `admin` -p `pwd`
-
docker-compose
确保
docker-compose
命令正常使用,安装方式如下:
#从国内镜像 get.daocloud.io 快速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#给执行文件添加执行权限
chmod +x /usr/local/bin/docker-compose
docker-compose --version
#-docker-compose version 1.23.2, build 1110ad01
准备工作
-
文件夹创建
三台主机分别执行:
mkdir /data/fabric #fabric文件夹名字需要与后续对应 cd /data/fabric mkdir chaincode #存放链码文件 mkdir channel-artifacts #存放区块链配置类文件 mkdir ledger #存放账本数据
-
镜像拉取(使用harbor私服)
-
orderer主机
docker pull 192.168.1.212:8080/fabric/fabric-orderer:2.0.0
-
org主机(peer0和peer1)
docker pull 192.168.1.212:8080/fabric/fabric-tools:2.0.0 docker pull 192.168.1.212:8080/fabric/fabric-peer:2.0.0 docker pull 192.168.1.212:8080/fabric/fabric-ccenv:2.2.0 docker tag 192.168.1.212:8080/fabric/fabric-ccenv:2.2.0 hyperledger/fabric-ccenv:2.2 docker pull 192.168.1.212:8080/fabric/fabric-baseos:2.2.0 docker tag 192.168.1.212:8080/fabric/fabric-baseos:2.2.0 hyperledger/fabric-baseos:2.2 #后面两个在链码安装时候需要用的镜像。官方使用的默认的镜像名字,因为本例子使用了私服,故需要改成默认镜像名字。
-
工具准备
fabric2.0编译工具
hyperledger-fabric-linux-amd64-2.0.0.tar.gz
(点击下载)下载后上传至orderer
主机(192.168.1.25)
[root@localhost fabric]# tar -zxvf hyperledger-fabric-linux-amd64-2.0.0.tar.gz
bin/
bin/configtxgen
bin/orderer
bin/peer
bin/discover
bin/idemixgen
bin/configtxlator
bin/cryptogen
config/
config/configtx.yaml
config/core.yaml
config/orderer.yaml
[root@localhost fabric]# ls
bin config hyperledger-fabric-linux-amd64-2.0.0.tar.gz
[root@localhost fabric]# cp bin/* /usr/bin/
配置文件准备
- configtx.yaml(注意格式!!!)
# configtx.yaml
---
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: crypto-config/ordererOrganizations/test.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Writers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Admins:
Type: Signature
Rule: "OR('OrdererMSP.admin')"
OrdererEndpoints:
- orderer.test.com:7050
- &org
Name: orgMSP
ID: orgMSP
MSPDir: crypto-config/peerOrganizations/org.test.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('orgMSP.admin', 'orgMSP.peer', 'orgMSP.client')"
Writers:
Type: Signature
Rule: "OR('orgMSP.admin', 'orgMSP.client')"
Admins:
Type: Signature
Rule: "OR('orgMSP.admin')"
Endorsement:
Type: Signature
Rule: "OR('orgMSP.peer')"
AnchorPeers:
- Host: peer0.org.test.com
Port: 7051
Capabilities:
Global: &ChannelCapabilities
V2_0: true
Orderer: