gpt4 book ai didi

hyperledger-fabric - 如何向正在运行的 super 账本结构网络添加更多排序节点

转载 作者:行者123 更新时间:2023-12-04 01:46:15 26 4
gpt4 key购买 nike

我已经设置了一个带有 1 个排序节点的 super 账本结构网络,但不知道如何向正在运行的生产 super 账本网络添加更多的排序节点。

任何帮助将不胜感激,谢谢。

最佳答案

首先,您的网络订购服务必须设置为 Kafka 服务,而不是单独的。您可以在 OrdererType 下的 configtx.yaml 文件中执行此操作。然后,您还必须创建 kafka 代理、动物园管理员并配置所有这些。如果你不熟悉这个,我发现实验和研究这个 repo https://github.com/keenkit/fabric-sample-with-kafka非常有帮助。

假设您有一个带有 Kafka Ordering Service 的工作网络,添加额外的 orderer 是通过 channel 更新完成的,这与添加新组织非常相似。涉及很多步骤,但它们都在这里列出和解释http://hyperledger-fabric.readthedocs.io/en/release-1.1/channel_update_tutorial.html .我建议您首先了解添加组织的工作原理,但如果您觉得舒服,那么添加排序者的唯一区别是:

  • 显然没有必要创建新的组织加密 Material ,但您将需要另一个订购者的加密 Material
  • 而不是运行命令 jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./channel-artifacts/org3.json > modified_config.json它将新的组织加密 Material 添加到网络,打开 json 文件并查找“OrdererAddresses”。在另一个标签“地址”下应该有一系列订购者。在此处添加您的订购者并将文件保存为 modified_config.json。然后,您可以继续运行相同的命令。
  • 当您使用 peer channel signconfigtx -f org3_update_in_envelope.pb 在信封上签名时使用事件排序器引导您的 CLI 并使用 OrdererMSP,否则排序器将拒绝您的交易。用于添加新组织的组织 MSP 将不起作用。

  • 为了帮助进行故障排除,我发现最初启动上面的 github 存储库创建的 2 个订购者设置,然后测试删除 1 个订购者,然后将其重新添加进去更容易。在该实验之后,进一步添加第三个。

    作为旁注,您可以在此处找到所有其他可以通过 channel 更新更改的内容: http://hyperledger-fabric.readthedocs.io/en/release-1.1/config_update.html .单击“单击此处查看配置”可查看 json 配置示例(注意:示例是 solo 而非 Kafka)。

    一步一步(根据要求):
  • 在 OrdererOrgs 下的 crypto-config 中:Specs:为您的订购者创建一个新的主机名(使用与其他人相同的域名和名称)。
  • 运行命令 cryptogen extend --config=./crypto-config.yaml注意:“扩展”部分因此它生成您需要的内容而不是重新生成所有内容。
  • 启动一个新的 orderer 容器,该容器基本上与另一个 orderer 相同,除了加密卷指向步骤 2 中的新加密生成,(可能还有不同的端口,具体取决于您的设置)。您可能会注意到此时它已连接到 kafka 代理并拥有您的 channel 和块,因为它使用相同的创世块。但是需要做的是网络需要知道这个新排序者的地址。
  • docker exec -it cli bash进入您的 CLI 容器并使用事件的订购者信息引导它,因为您将需要 OrdererMSP 来签署此更改。

  • bootstrap 例如(你的可能不同): 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
  • 在 CLI 容器中安装 jq 以将块转换为 json 并返回 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
  • 转换为 json 并修剪标题 configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json
  • 打开 json 文件查找“OrdererAddresses”,在该标题下应该有另一个标签“addresses”。为该数组中的新排序节点添加新 IP 和端口。将更改保存为 modified_config.json
  • 隐藏 json 形式步骤 7 以阻止 configtxlator proto_encode --input config.json --type common.Config --output config.pb
  • 将第 8 步中的 json 转换为块 configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb
  • 计算第 9 步和第 10 步中的块之间的增量 configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb
  • 将增量更改回 json configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json
  • 将 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

  • 一旦您的同行获得这个新区块,他们现在就知道新订购者的地址并且可以联系它。

    关于hyperledger-fabric - 如何向正在运行的 super 账本结构网络添加更多排序节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50153905/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com