文章来源于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. ceph luminous 新功能之内置dashboard

    前言 ceph luminous版本新增加了很多有意思的功能,这个也是一个长期支持版本,所以这些新功能的特性还是很值得期待的,从底层的存储改造,消息方式的改变,以及一些之前未实现的功能的完成,都让ce ...

  2. Flink处理函数实战之二:ProcessFunction类

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. Linux 入侵痕迹清理技巧

    清除history历史命令记录 vim ~/.bash_history //编辑history记录文件,删除部分不想被保存的历史命令 history -c //清除当前用户的history命令记录 H ...

  4. Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端

    本文是使用 golang 实现 redis 系列的第六篇, 将介绍如何实现一个 Pipeline 模式的 Redis 客户端. 本文的完整代码在Github:Godis/redis/client 通常 ...

  5. Guitar Pro 功能介绍之RSE引擎

    众所周知,Guitar Pro是一个集多音轨丰富音色库的一款软件,并且拥有MIDI 音序器,但是光拥有MIDI是无法让我们制作的音乐可以如此逼真,而Guitar Pro能创造制作这么逼真的音乐,多亏了 ...

  6. FL Studio中的文件设置介绍

    在fl中,我们想要找到文件设置选项,可以在主菜单中选择选项-文件设置来打开,也可以通过按"F10"快捷键来一步打开." 文件设置"页面可以将其他文件夹链接到浏览 ...

  7. Markdown特点

    前言 以前经常在 gitHub 中看到 .md 格式的文件,一直没有注意,也不明白为什么文本文档的后缀不是 .txt ,后来无意中看到了 Markdown,看到了用这个东西写得一些web界面等特别的规 ...

  8. ubuntu安装imagick扩展

    注意:安装该扩展不要求安装ImageMagick从http://pecl.php.net/package/imagick找到imagick的最新的版本 Linux代码 wget http://pecl ...

  9. centos 7 安装zabbix-4.0

    第一步:安装nginx ############安装Nginx###########yum localinstall http://nginx.org/packages/centos/7/noarch ...

  10. C语言讲义——函数

    为实现特定目的而编写的一段可被调用的代码 简单地讲:函数就是一组语句,取了个名字 别名:子例程(routine)/方法(Method,一般面向对象的语言使用这个叫法) 函数的组成部分 以主函数为例: ...