代码之家  ›  专栏  ›  技术社区  ›  steady_progress

Hyperledger结构:私有数据和世界状态

  •  8
  • steady_progress  · 技术社区  · 6 年前

    假设我有一个HyperledgeFabric应用程序,在该应用程序中,不同的成员可以对彼此的个人资料图片进行评论。

    再假设有三个成员(“组织”):亚当、鲍伯和萨拉。

    此外,Adam和Bob Fabric还使用了新的“私有数据”功能。亚当和莎拉之间也使用这个功能。

    假设有一个名为“addCommentToProfile”的事务,可用于向其他配置文件添加注释。

    假设Sarah发送事务“addCommentToProfile”,添加评论“你的头发看起来很好!”亚当的简介。

    是交易的结果(新评论“你的头发看起来很好!”在亚当的侧面)鲍勃看不见?

    我的理解是Bob看不到这个评论。因为就我而言,使用私人数据需要有一个独立的世界国家。因此,亚当会有一个侧面与莎拉,另一个侧面与鲍勃。

    我的理解正确吗?

    4 回复  |  直到 6 年前
        1
  •  1
  •   Andrei Dragotoniu    6 年前

    这也是我的理解,在看了整个私人约会概念之后。

    在亚当和鲍勃的关系中,你拥有的是他们之间的私人交易。数据本身位于一个单独的数据库中,莎拉无法访问该数据库。

    在文档中,它们被称为特定组织之间的私人数据收集,并且不存储在分类帐数据库中。此外,所涉及的两个组织中的每个对等方都将拥有自己的该侧数据副本,这意味着与这些对等方对话的API将可以访问该数据。莎拉不会得到数据,因为它不会被发送到该组织的同行。

    因此,您提出的方案似乎是准确的。

    然而,你提到组织,但你真正拥有的是用户。每个用户不会有一个组织。您将拥有属于组织的用户,这样来自两个组织的任何人都可以看到数据,因为他们都可以访问该组织的对等方。

    这是我对它的理解,在这个时候

        2
  •  1
  •   christo4ferris    6 年前

    私有数据功能由私有数据收集(组织)的成员通过八卦协议共享与项目本身之间的事务相关的私有数据来工作。只有集合成员之间共享的私有数据散列才会写入分类帐。

    就你的问题而言,答案是肯定的,你理解得正确——至少根据你写的内容。

    您可以在 documentation .

        3
  •  0
  •   mahdi    6 年前

    是的,你的理解是正确的。

    使用Fabric中的“私有数据”功能,您可以将数据隐藏在组织所在渠道的组织中,但您不希望他们看到您的数据。通道中只发送数据的哈希。发送哈希会阻止未经授权的组织和订购服务看到您的数据。

        4
  •  0
  •   Shubham Jaiswal    6 年前

    很简单。

    在Fabric应用程序(v1.2)中,有三个组织:Adam(org1)、Bob(org2)和Sara(org3)。在Adam(org1)和Sara(org3)之间的通道上定义组织的一个子集,创建一个仅由Adam(org1)和Sarah(org3)组成的私有数据收集通道。 请注意,您没有创建单独的频道。

    因此,数据只在这些方之间可见,而不在Adam(org2)中可见。Adam(org2)将只获取哈希。哈希用作事务的证据,用于状态验证,并可用于审核目的。但您的数据保持私有(加密)。 是的,你是对的。