【问题标题】:Hyperledger Fabric Data ConfidentialityHyperledger Fabric 数据机密性
【发布时间】:2019-01-02 08:47:27
【问题描述】:

到目前为止,我没有找到回答这个问题的好教程或文章,也许你可以帮忙。我想做的是:

组织 1 中的节点 A 调用链代码,此链代码只能访问组织 2 中可用的数据,而节点 A 永远无法访问完整信息。

我知道 Hyperledger Fabric 支持私有通道和私有数据,是否可以实现这个要求?如果是的话,你能指出我正确的方向吗?

【问题讨论】:

    标签: hyperledger-fabric hyperledger confidentiality


    【解决方案1】:

    是的,这是可能的。以下是要完成的步骤。 通过使用私有数据,您可以完成您的要求,但需要做的工作很少。你也可以关注面料文档,我在这里提供了链接。

    1. 客户端应用程序提交提案请求以调用链代码功能(读取或写入私有数据)给作为集合授权组织一部分的背书节点。私有数据,或用于在链码中生成私有数据的数据,在提案的瞬态字段中发送。

    2. 背书节点模拟交易并将私有数据存储在临时数据存储(节点本地的临时存储)中。他们根据收集策略将私有数据通过八卦分发给授权的对等方。

    3. 背书节点将提案响应连同公共数据(包括私有数据密钥和值的散列)一起发送回客户端。不会将私人数据发送回客户端。

    查看此内容以获得认可:https://hyperledger-fabric.readthedocs.io/en/release-1.4/private-data-arch.html#endorsement

    1. 客户端应用程序将交易提交给排序服务(带有私有数据的散列),该服务会正常分发到块中。具有散列值的块被分发给所有对等点。这样,通道上的所有对等点都可以以一致的方式使用私有数据的哈希验证交易,而无需知道实际的私有数据(这是您需要完成的)。

    2. 在块提交时,授权对等方使用收集策略来确定他们是否有权访问私有数据(用于读取块数据)。如果他们这样做了,他们将首先检查他们的本地临时数据存储,以确定他们是否已经在链码背书时收到了私有数据。如果没有,他们将尝试从另一个对等方提取私有数据。然后他们将根据公共区块中的哈希验证私有数据并提交交易和区块。在验证/提交后,私有数据被移动到私有状态数据库和私有写入集存储的副本中。然后从临时数据存储中删除私有数据。

    资源:https://hyperledger-fabric.readthedocs.io/en/release-1.4/private-data/private-data.html

    【讨论】:

    • 听起来不错。你能告诉我类似的东西的实际实现吗?
    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 2017-12-24
    • 2019-04-18
    • 2020-12-19
    • 2018-12-28
    • 1970-01-01
    • 2018-10-24
    • 2018-07-14
    相关资源
    最近更新 更多