Fabric官方文档---Key Concepts---Private data

1.1 问题背景:

如果某个渠道上的一组组织需要将数据与该渠道上的其他组织保密,则他们可以选择创建一个仅包含需要访问数据的组织的新渠道。 但是,在每种情况下创建单独的渠道都会产生额外的管理开销(维护链码版本,策略,MSP等),并且channel不允许参与者都看到交易同时又保留一部分交易的用例。 

Private data 使渠道上已定义的组织子集能够认可,提交或查询私有数据,而无需创建单独的渠道。

1.2 私有数据收集什么

一是实际的私有数据,通过gossip协议发送peer-to-peer 给有权查看的组织

此数据存储在授权组织对等方的私有状态数据库中,可以从这些授权对等方上的链码进行访问。排序服务看不到私有数据。

需要注意的是,由于gossip在授权组织之间分配所有数据peer-to-peer,需要引导锚节点,在每个peer上配置CORE_PEER_GOSSIP_EXTERNALENDPOINT,以引导跨组织通信

二是该数据的哈希值,已经背书、排序、写到channel中每个peer结点的账本中。

hash用作事务的证据,并且用于状态验证以及审计目的。

下图展示了授权的peer结点有私有数据:

如果收集成员发生争议或想要将资产转让给第三方,则收集成员可以决定与其他方共享私人数据。 然后,第三方可以计算私有数据的哈希值,并查看其是否与通道分类帐上的状态匹配,从而证明该状态在某个时间点存在于集合成员之间。

问题:When to use a collection within a channel vs. a separate channel

当必须在属于该渠道成员的一组组织中对整个交易(和分类账)保密时,请使用渠道。
当必须在一组组织之间共享事务(和分类帐)时,但是当这些组织的子集应有权访问事务中的某些(或全部)数据时,请使用集合。 此外,由于私有数据是通过点对点而不是通过块进行分发的,因此当必须对交易数据保密时,请不要使用私有数据集合来订购服务节点。

1.3 A use case to explain collections

考虑一个在渠道上交易产品的五个组织:

  • 一位农民在国外出售商品
  • 一家将货物运往国外的分销商
  • 托运人在各方之间移动货物
  • 批发商分销商处购买商品
  • 零售商托运人和批发商那里购买商品

分销商可能希望与农民和托运人进行私下交易,以使批发商和零售商对交易条款保密(以免暴露他们收取的加价幅度)。

分销商可能还希望与批发商建立单独的私人数据关系,因为它向零售商收取的价格要比零售商低。

批发商可能还希望与零售商和托运人建立私人数据关系。

可以为多个关系之间定义共享多个私有数据集合(PDC),而不是为这些关系中的每个定义许多小渠道。

PDC1:分销商,农民和托运人
PDC2:分销商和批发商
PDC3:批发商,零售商和托运人

使用此示例,分发者拥有的对等方将在其分类账中拥有多个私有数据库,其中包括来自分发者,农民和托运人关系以及分发者和批发商关系的私有数据。

1.4 Transaction flow with private data

当在链码中引用私有数据集合时,事务流程会略有不同,以便在提议,认可并提交给分类帐的事务时保护私有数据的机密性。

1.5 Sharing private data

在许多情况下,一个集合中的私有数据键/值可能需要与其他渠道成员其他私有数据集合共享,作为交易的一部分,接收方通常会希望根据链上的散列来验证私有数据。

1.6 Purging private data

1.7 How a private data collection is defined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值