Hyperledger Fabric V2.5 生产环境部署文档
1.部署区块链网络
1. 安装基础依赖(分别执行)
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y git curl wget jq unzip build-essential libtool autoconf pkg-config
2.安装Docker(分别执行)
curl -fsSL https://get.docker.com -o get-docker.sh
chmod +x get-docker.sh
sh get-docker.sh --mirror Aliyun
sudo usermod -aG docker $USER
sudo systemctl start docker && sudo systemctl enable docker
sudo vi /etc/docker/daemon.json
{ "registry-mirrors" : [ "https://docker.1ms.run" ,"https://docker.xuanyuan.me" ]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo curl -L "https://github.com/docker/compose/releases/download/v2.37.1/docker-compose-$( uname -s) -$( uname -m) " -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. 网络组件规划
IP 节点 端口 容器 10.6.0.13 peer0.org1.example.com 7051,7052,7053 peer0.org1.example.com 10.6.0.13 ca_org1 7054 ca.org1.example.com 10.6.0.13 cli - - 10.6.0.3 peer0.org2.example.com 7051,7052,7053 peer0.org2.example.com 10.6.0.3 ca_org2 7054 ca.org2.example.com 10.6.0.3 cli - - 10.6.0.7 orderer.example.com 7050 orderer.example.com 10.6.0.7 ca_orderer 7054 ca.orderer.example.com
4.主机互通(分别执行)
echo "10.6.0.13 ca.org1.example.com peer0.org1.example.com" | sudo tee -a /etc/hosts
echo "10.6.0.3 ca.org2.example.com peer0.org2.example.com" | sudo tee -a /etc/hosts
echo "10.6.0.7 orderer.example.com ca.orderer.example.com" | sudo tee -a /etc/hosts
5.创建目录(分别执行)
sudo mkdir -r /home/ubuntu/hyperledger/multinodes
sudo chown -R ubuntu:ubuntu /home/ubuntu/hyperledger/multinodes
6.下载二进制文件(orderer节点)
hyperledger-fabric-linux-amd64-2.5.5.tar.gz
hyperledger-fabric-ca-linux-amd64-1.5.15.tar.gz
7.编写CA 配置文件
orderer ca
cd /home/ubuntu/hyperledger/multinodes
cat > compose-ca.yaml << 'EOF'
services:ca_orderer:image: hyperledger/fabric-ca:1.5.7environment:- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server- FABRIC_CA_SERVER_CA_NAME=ca-orderer- FABRIC_CA_SERVER_TLS_ENABLED=true- FABRIC_CA_SERVER_PORT=7054- FABRIC_CA_SERVER_CSR_CN=ca-orderer- FABRIC_CA_SERVER_CSR_HOSTS=ca.orderer.example.comports:- "7054:7054"command: sh -c 'fabric-ca-server start -b admin:adminpw -d'volumes:- ./fabric-ca/ordererOrg:/etc/hyperledger/fabric-ca-servercontainer_name: ca_ordererextra_hosts:- "ca.orderer.example.com:10.6.0.7"- "ca.org1.example.com:10.6.0.13"- "ca.org2.example.com:10.6.0.3"
EOF
docker-compose -f docker-ca.yaml up -d
org1 ca
cd /home/ubuntu/hyperledger/multinodes
cat > compose-ca.yaml << 'EOF'
services:ca_org1:image: hyperledger/fabric-ca:1.5.7environment:- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server- FABRIC_CA_SERVER_CA_NAME=ca-org1- FABRIC_CA_SERVER_TLS_ENABLED=true- FABRIC_CA_SERVER_PORT=7054- FABRIC_CA_SERVER_CSR_CN=ca-org1- FABRIC_CA_SERVER_CSR_HOSTS=ca.org1.example.comports:- "7054:7054"command: sh -c 'fabric-ca-server start -b admin:adminpw -d'volumes:- ./fabric-ca/org1:/etc/hyperledger/fabric-ca-servercontainer_name: ca_org1extra_hosts:- "ca.orderer.example.com:10.6.0.7"- "ca.org1.example.com:10.6.0.13"- "ca.org2.example.com:10.6.0.3"
EOF
docker-compose -f docker-ca.yaml up -d
org2 ca
cd /home/ubuntu/hyperledger/multinodes
cat > compose-ca.yaml << 'EOF'
services:ca_org2:image: hyperledger/fabric-ca:1.5.7environment:- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server- FABRIC_CA_SERVER_CA_NAME=ca-org2- FABRIC_CA_SERVER_TLS_ENABLED=true- FABRIC_CA_SERVER_PORT=7054- FABRIC_CA_SERVER_CSR_CN=ca-org2- FABRIC_CA_SERVER_CSR_HOSTS=ca.org2.example.comports:- "7054:7054"command: sh -c 'fabric-ca-server start -b admin:adminpw -d'volumes:- ./fabric-ca/org2:/etc/hyperledger/fabric-ca-servercontainer_name: ca_org2extra_hosts:- "ca.orderer.example.com:10.6.0.7"- "ca.org1.example.com:10.6.0.13"- "ca.org2.example.com:10.6.0.3"
EOF
docker-compose -f docker-ca.yaml up -d
将各节点ca证书拷贝到其它节点 ,最终如下:
8.编写生成组织证书脚本
cd fabric-ca/
cat > registerEnroll.sh << 'EOF'
#!/bin/bashfunction createOrg1 {echoecho "Enroll the CA admin"echomkdir -p organizations/peerOrganizations/org1.example.com/export FABRIC_CA_CLIENT_HOME=${PWD}/organizations/peerOrganizations