Hyperledger Fabric私有数据
官方文档:点这里
1简介
在同一个通道中,允许某一组织在对同一通道内其他组织保持部分的数据私有。也就是说有一部分被标识为私有的数据只能具有权限的组织查看和操作,而其余组织不具备查看和操作私有数据的权限。
通常如果需要保持数据私有可以另外创建一个通道只为私有数据服务,但是如果涉及到多个业务方时,为每一个组织另外创建通道会增加额外的管理类开销。并且也不能在进行私有数据操作的时候,让其余没有权限的组织节点都知道有这么一笔交易发生。
从Fabric 1.2开始,引入了一个私有数据集合的概念,它允许通道内的指定的某一个组织中的部分成员可以对私有数据进行操作,而其他没有权限的节点只能知道有这么一笔交易发生而不能了解交易的细节。
1.1私有数据集合
私有数据集合包括两个部分:
私有数据实体:通过Gossip协议在具有权限的节点之间传输,并且只有具有权限的节点可以看到。这部分私有数据存储在具有权限的节点的私有的状态数据库中。可以通过链码API在具有权限的节点上进行访问。并且私有数据不涉及排序服务,因为是通过Peer节点间的Gossip协议进行传输的。所以要求每一个节点都需要设置参数
CORE_PEER_GOSSIP_EXTERNALENDPOINT,并在通道内设置锚节点用于跨组织通信。私有数据的哈希值:这一部分数据用于背书,排序以及写账本到通道内的每一个Peer节点。哈希值作为交易的证明用于状态验证还可以用于审计。
1.2什么时候使用私有数据
- 当所有的数据都需要在通道内的成员之间保密的时候,使用通道比较合适。
- 当交易要在所有组织之间传播,并且要求只有通道内的部分组织成员可以查看或操作交易内的某一部分数据时,需要使用私有数据集合。并且部分数据需要对排序节点进行保密时,使用私有数据集合。
1.3私有数据的交易流程
1. 当客户端提交一个调用链码的功能(读或写私有数据)提案请求到具有该私有数据集合操作权限的背书节点时,私有数据或者是用于通过链码生成私有数据的数据时,通过提案中的`transient`字段进行发送。
2. 背书节点模拟交易并将私有数据存储到`peer`节点上的`transient data store`一个临时的数据存储区,并基于私有数据定义的策略,通过`Gossip`协议发送到其他具有权限的节点。
3. 背书节点将提案响应发送给客户端。提案响应包括已经背书的读写集。读写集包括公共数据和私有数据的哈希值。发送给客户端的不包括任何的私有数据。
4. 客户端应用提交交易(包括带有私有数据哈希值的提案响应)到排序节点。带有私有数据哈希值得交易将和正常交易一样包括在区块中。带有私有数据哈希值得区块分发到所有节点上。用这种方式,通道中所有的`peer`节点可以通过私有数据的哈希值对交易进行验证而不需要知道任何的私有数据信息。
5. 在区块提交时,具有权限的节点通过集合策略确定是否具有访问私有数据的权限。如果具有权限,他们将会检查本地的`transient data store`确定他们是否已经在进行链码背书的时候接收到私有数据。如果没有,将试图从其他具有权限的节点处拉取私有数据。他们将验证公共区块中私有数据的哈希值并提交交易。当验证与提交结束后,私有数据将移动到他们的私有数据库和私有读写副本中。最后从`transient data store`中删除私有数据。
Hyperledger Fabric私有数据的更多相关文章
- 在 Fabric 中使用私有数据
本教程将演示收集器(collection)的使用,收集器为区块链网络上已授权的组织节点 提供私有数据的存储和检索. 本教程假设您已了解私有数据的存储和他们的用例.更多的信息请参阅 私有数据 . 本教程 ...
- 第5章 Hyperledger Fabric功能
Hyperledger Fabric is a unique implementation of distributed ledger technology (DLT) that delivers e ...
- Hyperledger Fabric之模型
本文主要介绍Hyperledger Fabric的主要设计特点,为了满足功能丰富.可定制.企业化区块链解决方案. Assets - 资产定义,使得任何形式的资产,从食物到汽车到货币都可以进行自由的交换 ...
- HyperLedger Fabric 学习思路分享
HyperLedger Fabric 学习思路分享 HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的.由Linux基金会主办的一个超级账本项目,它是一个目前非常 ...
- Hyperledger Fabric Capabilities——超级账本功能汇总
Hyperledger Fabric是一种模块化的区块链架构,是分布式记账技术(DLT)的一种独特的实现,它提供了可供企业运用的网络,具备安全.可伸缩.加密和可执行等特性.Hyperledger Fa ...
- HyperLedger Fabric 1.4 关键技术(6.4)
本节介绍从最底层的账本开始,逐一讲解账本的结构和存储.智能合约的编写和部署.通道的操作.节点的背书和提交.排序的共识和客户端SDK的接口调用,与交易流程顺序相反,由里及表的说明Fabric最关键的技术 ...
- Hyperledger Fabric架构详解
区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 2018年5月26日 陶辉 Comments 10 Comments hyper ...
- Hyperledger Fabric on SAP Cloud Platform
今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...
- HyperLedger Fabric部署与链码解读
1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术.和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统.它是一个联盟链.Fabric与其 ...
随机推荐
- react可拖动的好用的树结构插件
react tree 可拖动树结构: github地址: github地址:react-sortable-tree 安装: NPM npm install react-sortable-tree –s ...
- tabBarItem是模型,只有控件才有textColor属性
如果通过模型设置控件的文字颜色,只能通过文本属性(富文本:颜色,字体,图文混排,空心)
- Jpa支持LocalDateTime类型持久化
package com.boldseas.porscheshop.common.config; import javax.persistence.AttributeConverter; import ...
- PHP 获取服务器详细信息的原生方法
获取系统类型及版本号: php_uname() (例:Windows NT PCA15130 6.1 build 7601 (Windows 7 Ultimate Edition Ser ...
- jquery树形结构
<div class="tree_content"> <div class="tree_node"> <div class=&qu ...
- 【网络流相关】最大流的Dinic算法实现
Luogu P3376 于\(EK\)算法求最大流时每一次只求一条增广路,时间复杂度会比较高.尽管实际应用中表现比较优秀,但是有一些题目还是无法通过. 那么我们就会使用\(Dinic\)算法实现多路增 ...
- 华为云MySQL金融版正式商用,高可靠的金融级数据库来了
摘要:全新三节点架构,基于深度优化的MGR组复制技术,提供金融级的数据一致性. 日前,华为云数据库MySQL 金融版正式商业化发布,MySQL金融版采用MGR技术,基于Paxos协议,采用一主两备三节 ...
- 【开发者portal在线开发插件系列三】字符串 及 可变长度字符串
基础篇 基础场景见上面两个帖子,这里单独说明字符串和可变长度字符串的用法. 话不多说,开始今天的演(表)示(演) Profile和插件开发 添加一个string类型的属性: 在插件里添加一条数据上报消 ...
- WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
利用vSphere调整各台虚拟机后,重新启动mesos,让其启动docker,并为每个container分配cpu和mem,但每次都有一个TASK_LOST. 查看mesos slave的log,发现 ...
- chrome浏览器通过ajax的POST请求报403解决方法
方法1 把POST改成GET方式 方法2 添加请求格式contentType:“application/json”,