gpt4 book ai didi

hyperledger-fabric - 不同 ORG 的 2 个节点能否实例化相同的 ChainCode 并提交交易?

转载 作者:行者123 更新时间:2023-12-04 07:54:55 24 4
gpt4 key购买 nike

我已经使用 BYFN 创建了一个带配置的结构网络

2 ORG with each ORG having 2 peers (each having their own couch-db as state db), 1 orderer and 2 fabric-ca.

现在,我在 peer0.org1peer0.org2 上安装了链码(命名为 ordering-network)并启动了链码peer0.org1

场景:

  1. 我能够使用 org1 管理员凭据或通过创建所有链接到 org1 的参与者身份在链码上提交交易。
  2. 我无法在 peer0.org2 上启动链代码,但出现以下异常。

    Error: Error trying to start business network. Error: No valid responses from any peers.Response from attempted peer comms was an error: Error: 2 UNKNOWN: chaincode error (status: 500, message: chaincode exists ordering-network)

  3. 我尝试通过 composer-playground 使用 org2 的管理员凭据访问链码,但返回异常

    Error: Error trying to ping. Error: 2 UNKNOWN: error executing chaincode: transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '50a2c29340d9011a6530a95ead8ad83effc7804880ce482f8926aabaf6f1bb87', has not been registered

问题:

  1. 如果单个链代码安装在多个对等点上,是否只需要由任何一个对等点(跨组织)启动(实例化)?
  2. 如果我希望两个节点都能够修改链码,流程是怎样的?通过流程,我的意思是组织的每个同级都需要在他们的末端修改和更新代码,或者任何一个组织的成员都可以更新链代码并且它将在所有同级上实例化?
  3. 背书政策是否负责确保不同组织的多个节点参与链代码?

很抱歉发了这么长的帖子,但我无法理解单个链代码如何跨多个组织工作。

ChainCode 来源:https://github.com/monarch0111/ordering-network/

最佳答案

  1. 链码只需在 channel 上实例化一次。换句话说,您只需要在 channel 中的一个节点上执行 peer chaincode instantiate ...... 命令。如果在 channel 上实例化链代码后再次发出该命令,您可能会收到如您在场景 2 中提到的错误。

  2. 如果你想修改现有的链码,我们也称之为升级链码(保持相同的链码名称,同时更改版本号)。你必须将它安装在那些你希望他们成为背书人的节点上,这样他们就可以在执行阶段进行交易模拟。但是,您只需要调用一次peer chaincode upgrade ......,就像实例化链码时一样。这样做就像做一个广播,告诉 channel 里的每个成员链码已经升级到新版本了。

    为了进一步重申这一点,并不要求 channel 中的每个节点都安装链码。只有一小部分同行必须这样做,我们称他们为背书同行

  3. 背书策略定义哪些节点/多少节点应该执行交易(交易模拟)并就交易的相同执行结果达成一致。假设您在一个 channel 中有三个组织,您可以将背书策略指定为 AND('Org1.member', 'Org2.member') 或 AND('Org1.member', 'Org2.member','Org3.member ') 这取决于您的需要。但要说的是,在背书策略中定义来自不同组织的多个peer有助于保证执行结果的确定性。

    您可以在此处引用文档以获取更多信息。 https://hyperledger-fabric.readthedocs.io/en/release-1.2/endorsement-policies.html

    此外,我建议您查看此处的答案以了解背后的直觉。 Hyperledger Blockchain Endorsement Policy Guidelines/Recommendation

关于hyperledger-fabric - 不同 ORG 的 2 个节点能否实例化相同的 ChainCode 并提交交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51685968/

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