如何在Hyperledger Fabric中添加第四个组织?
在Hyperledger Fabric中添加第四个组织的具体步骤
本质上,添加第四个组织(以下称Org4)的流程完全复用官方addOrg3的逻辑,只是需要将所有与Org3相关的配置、命名替换为Org4的对应内容,具体步骤如下:
1. 复制并改造addOrg3模板文件夹
- 从官方示例中复制
addOrg3文件夹,重命名为addOrg4 - 批量替换文件夹内所有文件中的命名:
- 将
Org3、org3、Org3MSP统一替换为Org4、org4、Org4MSP - 修改
docker-compose-org4.yaml中的端口配置,避免与现有组织冲突(例如将Peer的7051端口改为8051,7053改为8053)
- 将
2. 生成Org4的证书与密钥
- 进入
addOrg4/crypto-config目录,修改crypto-config.yaml,确保组织名称、域名、节点名称完全对应Org4的定义 - 运行命令生成证书:
cryptogen generate --config=./crypto-config.yaml - 若使用Fabric CA而非cryptogen,需修改
addOrg4/fabric-ca下的CA配置文件,启动CA服务后为Org4生成身份证书
3. 更新通道配置以纳入Org4
- 先获取当前通道的配置区块:
peer channel fetch config config_block.pb -o orderer.example.com:7050 -c mychannel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem - 将配置区块转成JSON格式:
configtxlator proto_decode --input config_block.pb --type common.Block --output config_block.json - 提取通道核心配置:
jq .data.data[0].payload.data.config config_block.json > config.json - 在
configtx.yaml中添加Org4的MSP定义,然后生成Org4的配置更新片段,最终打包成org4_update_in_envelope.pb - 让网络中已有的组织(Org1、Org2、Org3)的管理员分别对配置更新签名
- 提交配置更新到通道:
peer channel update -f org4_update_in_envelope.pb -c mychannel -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
4. 启动Org4的节点服务
- 进入
addOrg4目录,检查docker-compose-org4.yaml中的证书挂载路径,确保指向刚生成的Org4证书目录 - 启动Org4的Peer与CA服务:
docker-compose -f docker-compose-org4.yaml up -d - 验证容器运行状态:
docker ps | grep org4
5. 将Org4节点加入通道
- 进入Org4的CLI容器:
docker exec -it cli.org4.example.com bash - 获取通道创世区块(若本地无缓存):
peer channel fetch 0 mychannel.block -o orderer.example.com:7050 -c mychannel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem - 执行节点加入通道命令:
peer channel join -b mychannel.block
6. 调整链码背书策略(按需操作)
- 如果链码需要Org4参与背书,需修改背书策略并升级链码
- 在Org4的Peer上安装链码:
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/ - 升级链码并更新背书策略:
peer chaincode upgrade -o orderer.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 1.1 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer','Org3MSP.peer','Org4MSP.peer')"
内容的提问来源于stack exchange,提问作者Alif Daido
相关产品推荐
相关产品推荐

