文章来源于https://hyperledger-fabric.readthedocs.io/en/release-2.0/

  私有数据集在v1.4中提出,一直使用的是隐私数据集方式,即建立一个隐私数据集,类似一个结构体,在配置文件中指定该集合为个别组织可见,即隐私数据集的哈希在指定用户间单独传输(即满足指定节点也得不到真实数据,只能事后验证),不参与背书或者排序打包成块。而在v2.0中,换了一种新的模式,不是传输隐私数据集,而是在隐私数据集中直接包含一个组织,在隐私数据集之间进行数据的往来。

  1、接收方使用GetPrivateDataHash()这个API,从先前的私有数据交易创建的上链哈希值验证私有数据是否相匹配。

  2、私有数据收集现在可以选择覆盖为集合中链码实例化时指定的背书策略。这个功能可以用来限制哪些组织可以将数据写入到一个集合。例如,可能有一个需要大多数节点背书的背书策略,但对于任何给定的交易,你可能需要两个交易机构单独在自己的私有数据集对协议背书。

  3、不需要进行隐私数据集的定义。


  https://hyperledger-fabric.readthedocs.io/en/release-2.0/private-data/private-data.html  

  在fabric中,隐私数据集包含两部分,可以理解为key-value对,隐私数据实体是key,它的哈希是value。隐私数据集key通过gossip协议点对点直接传输,只有指定用户可见,这些数据保存在指定组织的认证节点中的私有状态数据库,可以通过安装在这些认证节点上的链码获取私有数据。排序服务自然也不可见这些数据。另外,使用gossip协议进行组织间数据传输必须要有锚节点用于数据接收广播。而value是作为传输数据,用于后续的验证和作为交易的证据。


  fabric中隐私数据的流转过程:

  1、客户端发起一个读或者写隐私数据的请求。

  2、背书节点模拟执行交易,将隐私数据存放在暂态区(节点本地的临时存储区),背书节点将隐私数据基于隐私策略分布式存储,之间通过gossip协议通信。

  3、背书节点向客户端返回响应,响应包括已经经过背书的读/写集(公开数据+hash(隐私数据)),隐私数据本体不会发送给客户端。

  4、客户端提交交易给排序节点,其中包括隐私数据的哈希,隐私数据的哈希和公开数据一起被打包成块。

  5、在块提交阶段,节点查看隐私策略确认是否有隐私数据权限,如果有,即到本地的暂态存储区确认在链码背书阶段是否已经存储了隐私数据,如果没有,就到其他的认证节点上拉取隐私数据。然后与链上存储隐私数据的块进行hash比较然后提交。一旦提交,私有数据将拷贝到私有状态数据库和私有读写集中,然后从暂态区删除。

Fabric v2.0中的隐私数据的更多相关文章

  1. PCMM(人力资源能力成熟度模型)V2.0中英对照版发布

    PCMM中英版终于发布 时光荏苒,从当初的回眸到如今的回头,这才发现:坚守一份承诺是多么的不易! 一年多了,这份承载殷切期待的作品--<PCMM(人力资源能力成熟度模型)V2.0 (中英文对照版 ...

  2. (转)Fabric 1.0 读写集

    本文译自Fabric 1.0 文档,这篇文档详述了当前读写集语义实现的细节.文档地址为: https://hyperledger-fabric.readthedocs.io/en/latest/rea ...

  3. 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)

    前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...

  4. HyperLedger Fabric 1.0的Transaction处理流程

    如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...

  5. 谈谈PBOC3.0中使用的国密SM2算法

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主 ...

  6. PageAdmin Cms V2.0 getshell 0day

    黑小子在土司公布了“PageAdmin cms getshell Oday”,并给出了一个漏 洞的利用EXP.经过危险漫步在虚拟机里测试,存在漏洞的是PageAdmin Cms的次最薪版本PageAd ...

  7. 带你全面认识CMMI V2.0(一)

    新发布的CMMI V2.0在方法论和方法上都提出了一些战略上的变化和改进.这些更新提供了新的要求.历史标准的演进以及以往实践的延续. CMMI V2.0和CMMI V1.3的变化 CMMIV2.0的定 ...

  8. Vue3.0中引入地图(谷歌+高德+腾讯+百度)

    1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...

  9. 在 Fabric 中使用私有数据

    本教程将演示收集器(collection)的使用,收集器为区块链网络上已授权的组织节点 提供私有数据的存储和检索. 本教程假设您已了解私有数据的存储和他们的用例.更多的信息请参阅 私有数据 . 本教程 ...

随机推荐

  1. shell简介及变量的定义查看撤销

    1.shell分类及相关软件  图形界面Shell(Graphical User Interface shell 即 GUI shell),如:GNOME.KDE 命令行式Shell(Command ...

  2. spring的原理

    一.pring的原理 1.1 IOC控制反转 ==> 扫描机制通过代理方式动态创建对象 扫描注解,通过反射获取类路径,动态创建对应类的对象,放置在对象池中(多线程做法,防止短时间内创建对象过多, ...

  3. 设计模式(一)--工厂模式(Go实现)

    package Factory import "fmt" type Restaurant interface { GetFood() } type Donglaishun stru ...

  4. wireshark分析nmap和metasploit内置的syn扫描

    syn扫描 syn扫描,根据三次握手,向端口发送syn包,如果对方回应SYN/ACK,则证明端口开放 首先是nmap 速度很快,0.67秒完成,看下wireshark的抓取 一次发送了大量的syn包 ...

  5. C++深拷贝与浅拷贝区别

    浅拷贝只是对指针的拷贝,浅拷贝后两个指针指向同一个内存空间: 深拷贝不仅对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针. 当对一个已知对象进行拷贝时,编译系统会 ...

  6. 2020阿里Java面试题目大汇总,看看你离阿里还有多远,附答案!

    前言 首先说一下情况,我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿 ...

  7. 如何在Camtasia中对录制视频进行动画编辑

    生活中,我们时时会遇到要剪辑视频不知道哪一款软件比较简单:当我们想要录制电脑屏幕时,网上的方法也总是不奏效.那是否有一款软件可以同时兼备这两种功能呢?今天我给大家推荐的便是一款同时兼备这两种功能的软件 ...

  8. 思维导图哪款好用?怎么借助MindManager 做旅游计划

    世界那么大,想不想去看看!想不想来一场说走就走的旅行?尤其是在新冠的笼罩下, 2020年已经过去四分之三,国内疫情已经基本得到了控制,接下来的日子里你想出门好好玩玩吗? 说走就走的旅游虽然美好,但是你 ...

  9. ABBYY FineReader 与资源管理器的集成使用

    ABBYY FineReader 15(Windows系统)与 Windows 资源管理器的集成使用后,在不打开软件的情况下,可通过右击启动快捷菜单开启. 通过与Windows资源管理器的集成,用户可 ...

  10. jQuery 第二章 实例方法 DOM操作选择元素相关方法

    进一步选择元素相关方法:  .get() .eq() .find() .filter() .not() .is() .has() .add()集中操作  .end()回退操作 .get() $(&qu ...