Hyperledger Fabric:私有数据和世界状态

时间:2018-09-26 17:43:12

标签: hyperledger-fabric

假设我有一个Hyperledger-Fabric应用程序,不同的成员可以在其中评论彼此的个人资料图片。

进一步假设有三个成员(“组织”):亚当,鲍勃和萨拉。

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

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

假设Sarah发送事务“ addCommentToProfile”,并添加注释“您的头发看起来很好!”到亚当的个人资料。

鲍勃看不到交易的结果(在亚当的个人资料上有一条新评论“你的头发看起来很好!”)?

我的理解是鲍勃看不到该评论。因为就我而言,使用私有数据需要拥有一个独立的世界状态。因此,亚当相对于莎拉有一个特征,而鲍勃则具有另一个特征。

我的理解正确吗?

5 个答案:

答案 0 :(得分:1)

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

在亚当和鲍伯的关系中,您所拥有的是他们之间的私人交易。数据本身位于Sarah无法访问的私有独立数据库中。

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

因此,您介绍的场景似乎是准确的。

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

这是我目前的理解

答案 1 :(得分:1)

私有数据功能由私有数据集合(组织)的成员通过八卦协议共享与自身之间的交易有关的私有数据。只有在集合成员之间共享的私有数据的哈希才被写入分类帐。

就您的问题而言,答案是肯定的,您正确理解-至少基于所写内容。

您可以在documentation中了解有关此功能的更多信息。

答案 2 :(得分:0)

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

 使用Fabric中的“私有数据”功能,您可以从与您的组织在同一频道上的组织隐藏数据,但是您不希望他们看到您的数据。在通道中仅发送数据的哈希。发送哈希值可防止未经授权的组织和订购服务看到您的数据。

答案 3 :(得分:0)

很简单。

在结构应用程序(v1.2)中,有三个组织Adam(org1),Bob(org2)和Sara(org3)。并且您正在adam(org1)和sara(org3)之间的通道上定义组织的子集。您正在创建一个仅由Adam(org1)和sarah(org3)组成的私有数据收集通道。 请注意,您并不是要创建单独的频道。

因此,只有亚当(org2)的这些方之间才可见数据。亚当(org2)将仅获得哈希值。散列可作为交易的证据,用于状态验证,可用于审计目的。但是您的数据保持私有(加密)状态。 是的,你是对的。

答案 4 :(得分:0)

以您的说法,鲍勃会看到莎拉评论了亚当的个人资料(哈希),但他看不到评论是什么,而亚当和莎拉将看到评论的内容。