Hyperledger fabric 如何将更多订购者节点添加到正在运行的hyperledger结构网络
我已经设置了一个具有1个订购者节点的hyperledger结构网络,但不知道如何将更多订购者节点添加到正在运行的生产hyperledger网络Hyperledger fabric 如何将更多订购者节点添加到正在运行的hyperledger结构网络,hyperledger-fabric,Hyperledger Fabric,我已经设置了一个具有1个订购者节点的hyperledger结构网络,但不知道如何将更多订购者节点添加到正在运行的生产hyperledger网络 感谢您的帮助。首先,您的网络订购服务必须设置为卡夫卡订购服务,而不是单独订购。您可以在OrderType下的configtx.yaml文件中执行此操作。然后,您还必须创建卡夫卡代理、动物园管理员并配置所有这些。如果你不熟悉这一点,我发现实验和研究这一回购协议非常有帮助 假设您有一个带有Kafka订购服务的工作网络,则通过频道更新来添加额外的订购者,这与添
感谢您的帮助。首先,您的网络订购服务必须设置为卡夫卡订购服务,而不是单独订购。您可以在OrderType下的configtx.yaml文件中执行此操作。然后,您还必须创建卡夫卡代理、动物园管理员并配置所有这些。如果你不熟悉这一点,我发现实验和研究这一回购协议非常有帮助 假设您有一个带有Kafka订购服务的工作网络,则通过频道更新来添加额外的订购者,这与添加新组织非常相似。涉及的步骤相当多,但这里列出并解释了所有步骤。我建议您首先了解添加组织的工作原理,但如果您感到满意,那么添加订购者的唯一区别是:
- 显然,不需要创建新的组织加密材料,但您需要为其他订购者创建加密材料
- 不要运行命令
,它将新的组织加密材料添加到网络中,打开json文件并查找“OrderAddresses”。在另一个标记“addresses”下应该有一个订购者数组。在此处添加您的订购者,并将文件保存为modified_config.json。然后,您可以继续运行相同的命令jq-s.[0]*{“channel_group”:{“groups”:{“Application”:{“groups”:{“Org3MSP”:[1]}}}}}}'config.json./channel artifacts/org3.json>modified_config.json
- 使用
使用活动订购方引导CLI并使用订购方MSP,否则订购方将拒绝您的交易。用于添加新组织的组织MSP将不起作用对等通道signconfigtx-f org3\u update\u in_envelope.pb对信封进行签名时
cryptogen extend--config=./crypto config.yaml
注意:“extend”部分生成您需要的内容,而不是重新生成所有内容docker exec-it cli bash
插入您的cli容器,并使用活动的订购方信息引导它,因为您需要订购方ermsp签署此更改CORE\u PEER\u MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/PEER/crypto/orderOrganizations/example.com/users/Admin@example.com/msp
CORE\u PEER\u ADDRESS=order0.example.com:7050
CORE\u PEER\u LOCALMSPID=ordermsp
CORE\u PEER\u TLS\u ROOTCERT\u FILE=/opt/gopath/src/github.com/hyperledger/fabric/PEER/crypto/orderorganizations/example.com/orders/order0.example.com/TLS/ca.crt
order_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/orderOrganizations/example.com/orders/order0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
CHANNEL\u NAME=mychannel
apt update&&apt install-y jq
peer channel获取配置块.pb-o order0.example.com:7050-c$channel\u NAME--tls--cafile$order\u 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\u update--channel\u id$channel\u NAME--original config.pb--updated modified\u config.pb--output org3\u 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\u update\u in\u envelope.json
configtxlator proto\u encode——在envelope.json中输入org3\u update\u——键入common.envelope——在envelope.pb中输出org3\u update\u