【问题标题】:Multi channel mulriorganisation hyperledger fabric多通道多组织超级账本结构
【发布时间】:2018-04-17 04:18:44
【问题描述】:

我正在做一个电子健康记录 Hyperledger Fabric 网络。假设我的网络有两家医院,这些医院需要相互共享患者信息等信息并在分类帐上注册。我创建了三个通道通道 1,具有医院 1 的对等方,通道 2 具有医院 2 的对等方,另一个通道具有两个组织的对等方。因此,员工详细信息等信息不会保存在其他组织的同行中。我的设置是否正确,还是需要进行更改?以及如何将患者记录分享给医院2。

【问题讨论】:

    标签: hyperledger-fabric blockchain hyperledger-composer


    【解决方案1】:

    在技术方面,你是对的。只有通道 3 将提供共同的“数据共享”。 在架构方面,通道 1 和 2 的目的是什么?数据将仅由 1 个组织(1 家医院)读写。所以一个更“经典”的数据库可以完成这项工作。

    如果您想在两家医院之间共享患者数据,则需要在通道 3 的所有对等点上安装链码,然后对其进行实例化。在这个链码中,你应该有一个调用函数,它将新的患者键/值放入分类帐中。

    【讨论】:

    • 是的,我知道在这里使用区块链是无关紧要的,但是是否可以通过公共通道上的链码从通道 1 读取患者信息。我这样做只是为了精通 Hyperledger Fabric。
    • 是的,可以从链码内部调用另一个通道的链码。这将是一个查询事务(不可能调用事务)。因此,您可以从公共通道的事务中读取通道 1 的数据,但前提是事务调用者有权访问通道 1。 "InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response"
    • // InvokeChaincode 在本地调用指定的链码Invoke 使用 // 相同的事务上下文;也就是说,调用链码的链码不会 // ​​创建新的交易消息。
    • // 如果被调用的链码在同一个通道上,它只是简单地将被调用的链码读集和写集添加到调用事务中。 // 如果被调用的链码在不同的通道上, // 只有响应返回给调用链码; // 来自被调用链码的任何 PutState 调用都不会对账本产生任何影响;也就是说, // 在不同通道上调用的链码将不会将其读取集 // 和写入集应用于事务。
    • 只有调用链码的 // 读集和写集将被应用到事务。实际上 // 在不同通道上调用的链码是 Query,它不 // 参与后续提交阶段的状态验证检查。 // 如果channel为空,则假定调用者的频道。
    猜你喜欢
    • 2018-09-30
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多