Hyperledger fabric 不同组织的两个对等方能否实例化相同的链码并提交事务?

Hyperledger fabric 不同组织的两个对等方能否实例化相同的链码并提交事务?,hyperledger-fabric,hyperledger,hyperledger-composer,hyperledger-fabric-ca,Hyperledger Fabric,Hyperledger,Hyperledger Composer,Hyperledger Fabric Ca,我使用BYFN创建了一个具有配置的结构网络 2个组织,每个组织有2个对等方(每个组织都有自己的Coach db作为状态db)、1个订购方和2个fabric-ca 现在,我在peer0.org1和peer0.org2上安装了一个链码(名为ordering network),并在peer0.org1上启动了链码 场景: 我可以使用org1管理员凭据或通过创建所有链接到org1的参与者身份,在链码上提交交易 我无法在peer0.org2上启动chaincode,但出现以下异常 错误:尝试启动业务网络时

我使用BYFN创建了一个具有配置的结构网络

2个组织,每个组织有2个对等方(每个组织都有自己的Coach db作为状态db)、1个订购方和2个fabric-ca

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

场景:

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

    错误:尝试启动业务网络时出错。错误:没有来自任何对等方的有效响应。来自尝试的对等方通信的响应是错误:错误:2未知:链码错误(状态:500,消息:链码存在
    订购网络

  • 我试图通过
    composer playerd
    访问管理员凭据为
    org2
    的链码,但返回异常

    错误:尝试ping时出错。错误:2未知:执行链码时出错:返回的事务失败:错误:名称为“admin”且标识符为“50a2c29340d9011a6530a95ead8ad83effc7804880ce482f8926aabaf6f1bb87”的当前标识尚未注册

  • 问题:

  • 如果单个链码安装在多个对等点上,是否只需要由任何一个对等点(跨组织)启动(实例化)
  • 如果我希望两个对等方都能够修改链码,那么该过程将是什么?所谓过程,我的意思是组织的每个对等方都需要在其末端修改和更新代码,或者任何一个组织的成员都可以更新链码,并在所有对等方上实例化
  • 背书政策是否负责确保不同组织的多个对等方参与链码
  • 很抱歉写了这么长的帖子,但我无法理解单个链码是如何跨多个组织工作的


    源到链码:

    1-不需要“否”。一旦链码安装在每个对等机中,网络的实例化必须只执行一次

    2-这里是工作流的高级概述:

    • a-客户端应用程序向对等机上安装的链码提交请求
    • b-每个对等方的链码认可交易,根据 与背书政策
    • c-如果交易收集到足够的背书,则可以提交 链码会修改数据库的状态(更改 资产价值)和分类账
    给你

    3-是的,背书政策定义了哪些对等方必须背书交易才能被视为有效

  • 链码只需在频道上实例化一次。换句话说,您只需要在通道中的一个对等方上执行
    对等链码实例化……
    命令。如果在通道上实例化链码后再次发出该命令,则可能会出现类似于场景2中所述的错误

  • 如果您想修改现有的链码,我们也称之为升级链码(在更改版本号时保持相同的链码名称)。您必须将其安装在您希望他们成为背书人的对等方上,以便他们可以在执行阶段进行交易模拟。但是,您只需要调用
    对等链码升级……
    一次,就像实例化链码一样。这样做就像做一个广播,告诉频道的每个成员链码已经升级到一个新版本

    为了进一步重申这一点,并不要求通道中的每个对等方都安装链码。只有一部分对等方必须这样做,我们称他们为支持对等方

  • 背书策略定义哪些对等方/多少对等方应执行交易(交易模拟),并就交易的相同执行结果达成一致。假设您在一个渠道中有三个组织,您可以根据您的需要将背书策略指定为AND('Org1.member','Org2.member')或AND('Org1.member','Org2.member','Org3.member')。但也就是说,在认可策略中定义来自不同组织的多个对等点有助于确保执行结果具有确定性

    更多信息,请参考此处的文档

    另外,我建议你从这里看一下答案,以理解背后的直觉