在Hyperledger Fabric中设计更好的私有数据集合



我有一个与私人数据收集实现相关的非常具体的案例查询,我在这里寻求专家的建议/建议。我们有一个运行在Hyperledger Fabric 2.3.3上的产品,这个平台可以有任何数量的组织。例如,最初将有4个组织,下周将有10个组织加入该网络。当这些组织开始彼此之间的事务时,问题就出现了。这些事务可以具有许多只需要在这些组织之间私有的对象。

为此,我们可以创建名称为


的私有数据集合:<>以前collection_org1collection_org2collection_org3collection_org1_org2collection_org1_org3collection_org1_org2_org3collection_org2_org3假设网络有20个组织作为参与者,有多少个私有数据收集组合。

这是因为,在给定的时间,任何组织都可以与网络中的另一个组织或一系列组织开始交易。这里的问题是,我们必须使用该模式创建大量的私有数据集合并对其进行维护。

由于这个问题,我们删除了这个实现,并为每个组织使用隐式私有数据收集。现在,如果有一个对象只能与org1, org2和;org3,将对象推入collection_org1collection_org2collection_org3。我们通过设置memberOnlyRead: falsememberOnlyWrite: false来实现这一点,并在链码级别添加验证。

这个实现解决了上述问题,但也产生了一个新问题。现在,我们想实现键级背书策略,这样,如果org1更改了在org2之间共享的私有对象;机构三,机构一须取得机构二的认可;org3同行。这意味着对等体将从自己的私有数据集合中读取对象,导致背书提议响应中的读取集不同,从而进一步导致错误显示read/write sets do not match

例如,在背书提议过程中,org1将从自己的私有数据集合collection_org1中读取对象key:key1。以类似的方式,org2将在背书期间从自己的集合collection_org2中读取相同的键,org3也是如此。这将导致在背书建议中使用不同的读集。


我正在寻求以更好的方式实现这整个功能的建议。

请让我知道你的建议/建议。

GetPrivateDataHash()是您的答案。您可以使用这个函数来验证每个背书者具有相同的值,并确保您的读集是一致的。

请参阅安全传输教程和示例,以获取用于此目的的示例。

最新更新