【问题标题】:Communication between 2 channels2个通道之间的通信
【发布时间】:2019-08-30 14:44:09
【问题描述】:

您好 Hyperledger 社区,

所以我用 Hyperledger Fabric 测试了一些东西,我想知道 2 个通道是否可以在某种程度上共享信息。

例如,假设我们有 3 个组织 Org1、Org2 和 Org3。

Org1 和 Org3 是经销商,Org2 是托运人。

Org2 通过 Channel 2-1 与 Org1 通信,Org2 通过 Channel 2-3 与 Org3 通信。但是 Org1 和 Org3 无法相互通信,因为它们不共享任何业务。

但是 Org2 想要将所有这些信息保存在一个且唯一的分类帐中,因为它通过只查看一个分类帐而不是始终查看两个不同的分类帐来处理数据要容易得多。

那么有没有办法让 Org2 拥有一个只属于自己的 Channel 2-Channel 2 并在 Org2 在 Channel 2-1 和 2-3 上接收或创建交易时自动在其上创建交易?

例如,假设 Org1 通过渠道 2-1 订购了 20 辆汽车(ID #A1598),而 Org3 通过渠道 2-3 订购了 2 吨土豆(ID #B502)。有没有办法让通道 2 也自动获取这些数据?这样事务也写在上面,如果有一天出现问题,可以指导 Org2 检查通道 2-1 上的事务的所有引用。

当 Org2 为所有交易请求 Channel2 时,会出现这样的情况:

[{
    id: 'A1598',
    channel: '2-1',
    org: 'Org1',
    details: '20 cars',
    price: 'xxxxx$'
},
{
    id: 'B502',
    channel: '2-3',
    org: 'Org3',
    details: '2 tons of potatoes',
    price: 'xxxxx$'
}]

【问题讨论】:

    标签: hyperledger-fabric hyperledger


    【解决方案1】:

    自动对在一个通道中完成的事务做出反应并在另一个通道中执行某些操作是事件的一个很好的用例。

    链码示例:

    eventPayload := "Order requested by Org1" + someOtherPayload
    payloadAsBytes := []byte(eventPayload)
    stub.SetEvent("Order requested", payloadAsBytes)
    

    因此将其投影到您的示例中:

    例如,假设 Org1 通过渠道 2-1 订购了 20 辆汽车(ID #A1598),而 Org3 通过渠道 2-3 订购了 2 吨土豆(ID #B502)。有没有办法让 Channel 2 也自动获取这些数据?

    当 org1(经销商)订购 20 辆汽车时,它会在该事件的链码中发出一个事件(例如,上面的“订单请求”),您可以从您的后端注册该频道的成员的 org2 用户收听该事件。现在 org3 创建订单时,还会发出一个事件(“订单请求”)。现在org2的注册用户也可以访问org1的频道,可以在这个频道上询问新的交易是否超过了当天的限制,并可以做出相应的反应。

    例如,请参阅本教程以获取 node。或者只是搜索适合您的编程语言的适当教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 2014-11-14
      • 2017-12-15
      • 1970-01-01
      • 2021-01-03
      • 2016-12-29
      相关资源
      最近更新 更多