本片文章搭建的网络有一个orderer节点,两个组织和四个peer节点。总共需要五台主机,但由于资源限制,只有两台主机,但方法都是一样的。所以本文在一台主机上搭建一个orderer节点和一个组织的两个peer节点,另一台主机上搭建另一个组织的两个peer节点。
系统配置
主机名 | ip | 功能 |
---|---|---|
bd223 | 10.1.24.223 | orderer节点,org1的peer0和peer1 |
bd225 | 10.1.24.225 | org2的peer0和peer1 |
准备工作
- 在两台机器上搭建fabric环境,可以参考上篇文章hyperledger fabric 1.4.4版本安装手册。
- 将fabric的bin目录加入环境变量以方便各种命令的直接使用,这里就先临时加入
export PATH=$PATH:/home/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/bin
,可以通过which configtxgen
来判断是否添加成功。 - 创建并进入
test-cluster
目录作为工作目录 - 在文件夹下创建
.env
文件,文件内容如下:COMPOSE_PROJECT_NAME=net IMAGE_TAG=1.4.4 CHANNEL_ID=cluster-channel CHANNEL_NAME=clusterchannel
source .env
配置基础环境
- 创建
crypto-config.yaml
配置文件,也可以从fabric-samples
项目的first-network
文件夹中复制。 - 从
first-network
中复制configtx.yaml
三个文件到cluster-network
工作目录中。 - 从
first-network
中复制ccp-generate.sh、ccp-template.json、ccp-template.yaml
三个文件到cluster-network
工作目录中。 - 从
first-network
中复制docker-compose-e2e-template.yaml
文件到cluster-network
工作目录中。并将network这部分配置去掉。处理完成之后的配置文件如下:# Copyright IBM Corp. All Rights Reserved. # # SPDX-License-Identifier: Apache-2.0 # version: '2' volumes: orderer.example.com: peer0.org1.example.com: peer1.org1.example.com: peer0.org2.example.com: peer1.org2.example.com: services: ca0: image: hyperledger/fabric-ca:$IMAGE_TAG environment: - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server - FABRIC_CA_SERVER_CA_NAME=ca-org1 - FABRIC_CA_SERVER_TLS_ENABLED=true - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/cdf0bf41bf501fbf0360ddb5b245debb22baafe77f504b093d1036cf8257c35a_sk ports: - "7054:7054" command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/cdf0bf41bf501fbf0360ddb5b245debb22baafe77f504b093d1036cf8257c35a_sk -b admin:adminpw -d' volumes: - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config container_name: ca_peerOrg1 ca1: image: hyperledger/fabric-ca:$IMAGE_TAG environment: - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server - FABRIC_CA_SERVER_CA_NAME=ca-org2 - FABRIC_CA_SERVER_TLS_ENABLED=true - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/b0a6041e30115b95e6a6ccc68d571c30fb61eaf37fe751f30333bd4ba0789d21_sk ports: - "8054:7054" command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/b0a6041e30115b95e6a6ccc68d571c30fb61eaf37fe751f30333bd4ba0789d21_sk -b admin