ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Hyperledger Fabric 二三事 - 私有数据

2021-04-01 10:35:11  阅读:202  来源: 互联网

标签:Fabric 托运 私有 批发商 二三 分销商 Hyperledger 数据 节点


私有数据

私有数据集合

我们都知道在Fabric中,若有利益相关方想要共享账本或数据又不想向利益无关方泄露,可以创建一个通道共同加入进去。但现在有下面这种场景:

设想一个通道上的五个组织,他们从事农产品贸易:
	1. 农民在国外售卖他的货物
	2. 分销商将货物运往国外
	3. 托运商负责参与方之间的货物运输
	4. 批发商向分销商采购商品
	5. 零售商向托运人和批发商采购商品
分销商可能希望与农民和托运商进行私下交易,以对批发商和零售商保密交易条款
(以免暴露他们收取的加价)

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

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

如果想要实现上述分销商和批发商的小心思,首先我们可能会想到可以让他们与各自的上下游建立一个小通道。但是,在每种情况下创建单独的通道会产生额外的管理开销(维护链码版本、策略、MSP等),并且不能在保留一部分数据私有的同时,可以让所有通道参与者看到该事务。

下面我们来介绍一种基于定义私有数据集合(PDC)的方法。从v1.2开始,Fabric 提供了创建私有数据集合的功能,它允许在通道上定义的组织子集能够背书、提交或查询私有数据,而无需创建单独的通道。

首先来了解下什么是私有数据集合,集合是两个元素的组合:

  • 实际的私有数据,通过 Gossip 协议点对点地发送给授权可以看到它的组织。私有数据保存在被授权的组织的节点上的私有数据库上,它们可以被授权节点的链码访问。排序节点不能影响这里也不能看到私有数据。注意,由于 gossip 以点对点的方式向授权组织分发私有数据,所以必须设置通道上的锚节点,也就是每个节点上的 CORE_PEER_GOSSIP_EXTERNALENDPOINT 配置,以此来引导跨组织的通信。
  • 该数据的 hash 值,该 hash 值被背书、排序之后写入通道上每个节点的账本。Hash 值作为交易的证明用于状态验证,并可用于审计。

下面的图表分别说明了被授权和未被授权拥有私有数据的节点的账本内容。
image

所以,对于上面那个问题,我们可以分成3个PDC:

  • PDC1: 分销商, 农民 和 托运商
  • PDC2:分销商 和 批发商
  • PDC3:批发商, 零售商 和 托运商
    image
    其中,属于分销商的节点将在其账本中包含多个私有的私有数据库,其中包括来自分销商、农民和托运商子集合关系和分销商和批发商子集合关系的私有数据。
    image

使用私有数据的交易流

上课去了,待补充。。。

标签:Fabric,托运,私有,批发商,二三,分销商,Hyperledger,数据,节点
来源: https://www.cnblogs.com/starqjh/p/14605144.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有