我已经搭建了一个只有1个排序节点的Hyperledger Fabric网络,但是不知道如何将更多的排序节点添加到正在运行的生产Hyperledger网络中。
非常感谢您的任何帮助。
我已经搭建了一个只有1个排序节点的Hyperledger Fabric网络,但是不知道如何将更多的排序节点添加到正在运行的生产Hyperledger网络中。
非常感谢您的任何帮助。
jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./channel-artifacts/org3.json > modified_config.json
来将新的组织加密材料添加到网络中,而是打开json文件并查找“OrdererAddresses”。那里应该有一个排序节点的数组,在另一个标签“addresses”下。在这里添加您的排序节点,然后将文件保存为modified_config.json。然后您可以继续运行相同的命令。peer channel signconfigtx -f org3_update_in_envelope.pb
进行信封签名时,请使用一个活动的排序节点引导您的CLI,并使用OrdererMSP,否则排序节点将拒绝您的交易。用于添加新组织的组织MSP将无法工作。为了帮助排除故障,我发现最好先启动上述github存储库创建的2个排序节点设置,然后测试删除1个排序节点,接着再添加回来。之后再进一步尝试添加第三个。
顺便提一下,您可以在这里找到所有其他可以通过通道更新更改的内容:http://hyperledger-fabric.readthedocs.io/en/release-1.1/config_update.html。单击“点击此处查看配置”以查看json配置的示例(注意:该示例是一个solo而不是Kafka)。
按照要求逐步执行:
cryptogen extend --config=./crypto-config.yaml
注意:'extend'部分,以便生成您需要的内容而不是重新生成所有内容。docker exec -it cli bash
进入CLI容器,并使用活动orderer信息引导它,因为您需要OrdererMSP签署此更改。引导示例(您的可能不同):CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp
CORE_PEER_ADDRESS=orderer0.example.com:7050
CORE_PEER_LOCALMSPID=OrdererMSP
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
CHANNEL_NAME=mychannel
apt update && apt install -y jq
peer channel fetch config config_block.pb -o orderer0.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json
configtxlator proto_encode --input config.json --type common.Config --output config.pb
configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb
configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb
configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json
echo '{"payload":{"header":{"channel_header":{"channel_id":"mychannel", "type":2}},"data":{"config_update":'$(cat org3_update.json)'}}}' | jq . > org3_update_in_envelope.json
configtxlator proto_encode --input org3_update_in_envelope.json --type common.Envelope --output org3_update_in_envelope.pb
peer channel update -f org3_update_in_envelope.pb -c $CHANNEL_NAME -o orderer0.example.com:7050 --tls --cafile $ORDERER_CA
一旦你的同行收到这个新区块,他们现在知道了新排序者的地址并可以联系它。