文章目录
- 一、手动为已加入通道的组织增加Peer节点
- 1.1. 准备工作
- 1.2. 流程
- 1.2.1. 为新增Peer节点生成加密材料
- 1.2.2. 启动新增的Peer节点
- 1.2.3. 将新增Peer节点加入现有通道
一、手动为已加入通道的组织增加Peer节点
1.1. 准备工作
本节通过向已加入应用通道的组织Org1
增加Peer节点来扩展Fabric测试网络。扩展之前需要先启动测试网络并创建通道:
cd hyfa/fabric-samples/test-network
./network.sh down
./network.sh up createChannel
将二进制文件和配置文件core.yaml
的目录加入环境变量:
export PATH=$PATH:${PWD}/../bin/
export FABRIC_CFG_PATH=${PWD}/../config/
1.2. 流程
1.2.1. 为新增Peer节点生成加密材料
拷贝组织Org1
的MSP配置文件crypto-config-org1.yaml
并重命名:
cp ./organizations/cryptogen/crypto-config-org1.yaml ./organizations/cryptogen/add-peer-org1.yaml
修改add-peer-org1.yaml
:
gedit ./organizations/cryptogen/add-peer-org1.yaml
将组织Org1
的节点数量增加到两个。
查看组织Org1
的MSP:
tree ./organizations/peerOrganizations/org1.example.com/peers
使用cryptogen
工具更新MSP:
cryptogen extend --config=./organizations/cryptogen/add-peer-org1.yaml --input ./organizations/
extend
子命令可以在原有MSP结构的基础上增加新的Peer节点加密材料,且共用一个根CA。--input
标志的参数应与cryptogen generate
命令使用的--output
标志一致。
更新后再一次查看组织Org1
的MSP:
tree ./organizations/peerOrganizations/org1.example.com/peers
1.2.2. 启动新增的Peer节点
编写组织Org1
的新增Peer节点的节点配置文件:
gedit ./compose/compose-addpeer-org1.yaml
内容如下:
version: '3.7'volumes:peer1.org1.example.com:networks:test:name: fabric_testservices:peer1.org1.example.com:container_name: peer1.org1.example.comimage: hyperledger/fabric-peer:latestlabels:service: hyperledger-fabricenvironment:- FABRIC_CFG_PATH=/etc/hyperledger/peercfg- FABRIC_LOGGING_SPEC=INFO#- FABRIC_LOGGING_SPEC=DEBUG- CORE_PEER_TLS_ENABLED=true- CORE_PEER_PROFILE_ENABLED=false- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt# Peer specific variables- CORE_PEER_ID=peer1.org1.example.com- CORE_PEER_ADDRESS=peer1.org1.example.com:7061- CORE_PEER_LISTENADDRESS=0.0.0.0:7061- CORE_PEER_CHAINCODEADDRESS=peer1.org1.example.com:7062- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7062- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7061- CORE_PEER_LOCALMSPID=Org1MSP- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/msp- CORE_OPERATIONS_LISTENADDRESS=peer1.org1.example.com:9454- CORE_METRICS_PROVIDER=prometheus- CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG={"peername":"peer1org1"}- CORE_CHAINCODE_EXECUTETIMEOUT=300s#Generic peer variables- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric_test volumes:- ../organizations/peerOrganizations/org1.example.com/peers/peer1.org1.example.com:/etc/hyperledger/fabric- peer1.org1.example.com:/var/hyperledger/production- ./docker/peercfg:/etc/hyperledger/peercfg- ${DOCKER_SOCK}:/host/var/run/docker.sockworking_dir: /rootcommand: peer node startports:- 7061:7061- 9454:9454networks:- test
将新增的Peer节点启动:
export DOCKER_SOCK="${DOCKER_HOST:-/var/run/docker.sock}"
docker-compose -f compose/compose-addpeer-org1.yaml up -d
1.2.3. 将新增Peer节点加入现有通道
对于已加入现有通道的组织,新增的Peer节点加入通道不需要获得其它组织的许可。
设置环境变量,以Org1 admin用户操作peer CLI,指向Org1新增的Peer节点peer1.org1.example.com
:
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7061
将Org1新增的Peer节点加入到通道mychannel中:
peer channel join -b ./channel-artifacts/mychannel.block