Fabric v2.0中的隐私数据
文章来源于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中的隐私数据的更多相关文章
- PCMM(人力资源能力成熟度模型)V2.0中英对照版发布
PCMM中英版终于发布 时光荏苒,从当初的回眸到如今的回头,这才发现:坚守一份承诺是多么的不易! 一年多了,这份承载殷切期待的作品--<PCMM(人力资源能力成熟度模型)V2.0 (中英文对照版 ...
- (转)Fabric 1.0 读写集
本文译自Fabric 1.0 文档,这篇文档详述了当前读写集语义实现的细节.文档地址为: https://hyperledger-fabric.readthedocs.io/en/latest/rea ...
- 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)
前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...
- HyperLedger Fabric 1.0的Transaction处理流程
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...
- 谈谈PBOC3.0中使用的国密SM2算法
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主 ...
- PageAdmin Cms V2.0 getshell 0day
黑小子在土司公布了“PageAdmin cms getshell Oday”,并给出了一个漏 洞的利用EXP.经过危险漫步在虚拟机里测试,存在漏洞的是PageAdmin Cms的次最薪版本PageAd ...
- 带你全面认识CMMI V2.0(一)
新发布的CMMI V2.0在方法论和方法上都提出了一些战略上的变化和改进.这些更新提供了新的要求.历史标准的演进以及以往实践的延续. CMMI V2.0和CMMI V1.3的变化 CMMIV2.0的定 ...
- Vue3.0中引入地图(谷歌+高德+腾讯+百度)
1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...
- 在 Fabric 中使用私有数据
本教程将演示收集器(collection)的使用,收集器为区块链网络上已授权的组织节点 提供私有数据的存储和检索. 本教程假设您已了解私有数据的存储和他们的用例.更多的信息请参阅 私有数据 . 本教程 ...
随机推荐
- pandas.DataFarme内置的绘图功能参数说明
可视化是数据探索性分析及结果表达的一种非常重要的形式,因此打算写一个python绘图系列,本文是第一篇,先说一下pandas.DataFrame.plot()绘图功能. pandas.DataFram ...
- java多线程---张孝祥
1.java web 中,一次http请求是一个任务,因为服务器里面有线程池的,存在一个线程处理多个请求任务. 2.在java中,vector,hashtable,concurrentHashMap是 ...
- 分库分表神器 Sharding-JDBC,几千万的数据你不搞一下?
今天我们介绍一下 Sharding-JDBC框架和快速的搭建一个分库分表案例,为讲解后续功能点准备好环境. 一.Sharding-JDBC 简介 Sharding-JDBC 最早是当当网内部使用的一款 ...
- ubuntu13.04修改默认启动内核
ubuntu下面的启动内核选项跟其他操作系统不一样,有个子菜单,比如我在默认的ubuntu13.04上安装了一个新的内核3.14.5,那么默认的第一项是3.14.5内核,第二项是一个子菜单,第二项里面 ...
- PHP核心配置基础解读
PHP核心配置 原为引用 <代码审计企业级web代码安全架构>尹毅 第一章内容 Register_globals(全局变量开关) 会直接把用户GET.POST等方式提交上来的参数注册成为 ...
- js 进度条效果
<!DOCTYPE html><html><head><meta charset="utf-8"><title>< ...
- prometheus监控实战--基础
1.简介 prometheus就是监控系统+TSDB(时间序列数据库),通过pull方式从exporter获取时间序列数据,存入本地TSDB,被监控端需安装exporter作为http端点暴露指标数据 ...
- Docker-maven-plugin + Dockerfile + Arthas实现应用诊断
一.前言 我们的微服务响应生产环境出现一个功能响应时间过慢,对Prometheus监控 Http Request进行分析发下该功能调用的后端接口响应时间平均在30秒以上,分析源码接口有mysql查询. ...
- DjangoForm表单组件
Form组件的介绍: 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验 ...
- Java 虚拟机垃圾收集机制详解
本文摘自深入理解 Java 虚拟机第三版 垃圾收集发生的区域 之前我们介绍过 Java 内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈三个区域随线程共存亡.栈中的每一个栈帧分配多少内存 ...