文章来源于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. 《GNU_Makefile》第4章——makefile规则

    规则明确在什么情况下,使用什么方法,重构文件,该文件称为目标. make的唯一目的是重构终极目标.终极目标默认是第一个目标. 1. 2.规则语法 TARGETS : PREREQUISITES COM ...

  2. cetos6.5 gcc4.8 安装

    1.准备源 #安装仓库 wget http://people.centos.org/tru/devtools-2/devtools-2.repo mv devtools-2.repo /etc/yum ...

  3. bootstrap-datetimepicker 编辑回显

    官网上居然没给出解决方案....汗 stackoverflow给出了灵感: $("#dateOfManufacture").find("input").val( ...

  4. sql bypass waf fuzz python

    从freebuf copy过来的,先保存,有空再改 #encoding=utf-8 import requests url = "http://127.0.0.1/index.php?id= ...

  5. 算法基础——KMP字符串匹配

    原题链接 题目: 给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字. 模板串P在模式串S中多次作为子串出现. 求出模板串P在模式串S中所有出现的位置的起始下标. 输入 ...

  6. 二分查找 leetcode704

    class Solution {    public int search(int[] nums, int target) {        int l=0;        int r=nums.le ...

  7. Python生成随机测试数据

    前言 安装 pip install Faker 使用 from faker import Faker fake = Faker() name = fake.name() address = fake. ...

  8. C语言讲义——链表的实现

    节点(结构体描述) struct Node { int _id; char s[50]; struct Node* pre;// 指向前一个节点的地址 struct Node* next;// 指向下 ...

  9. 【Usaco 2009 Gold 】JZOJ2020年9月19日提高B组T2 电视游戏问题

    [Usaco 2009 Gold ]JZOJ2020年9月19日提高B组T2 电视游戏问题 题目 Description 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可 ...

  10. 区块链学习5:智能合约Smart contract原理及发展历程科普知识

    ☞ ░ 前往老猿Python博文目录 ░ 一.智能合约的定义 通俗来说,智能合约就是一种在计算机系统上,当一定条件满足的情况下可被自动执行的合约,智能合约体现为一段代码及其运行环境.例如银行信用卡的自 ...