官方文档:点这里


1简介

同一个通道中,允许某一组织在对同一通道内其他组织保持部分的数据私有。也就是说有一部分被标识为私有的数据只能具有权限的组织查看和操作,而其余组织不具备查看和操作私有数据的权限。

通常如果需要保持数据私有可以另外创建一个通道只为私有数据服务,但是如果涉及到多个业务方时,为每一个组织另外创建通道会增加额外的管理类开销。并且也不能在进行私有数据操作的时候,让其余没有权限的组织节点都知道有这么一笔交易发生。

从Fabric 1.2开始,引入了一个私有数据集合的概念,它允许通道内的指定的某一个组织中的部分成员可以对私有数据进行操作,而其他没有权限的节点只能知道有这么一笔交易发生而不能了解交易的细节。

1.1私有数据集合


私有数据集合包括两个部分:

  1. 私有数据实体:通过Gossip协议在具有权限的节点之间传输,并且只有具有权限的节点可以看到。这部分私有数据存储在具有权限的节点的私有的状态数据库中。可以通过链码API在具有权限的节点上进行访问。并且私有数据不涉及排序服务,因为是通过Peer节点间的Gossip协议进行传输的。所以要求每一个节点都需要设置参数CORE_PEER_GOSSIP_EXTERNALENDPOINT,并在通道内设置锚节点用于跨组织通信。

  2. 私有数据的哈希值:这一部分数据用于背书,排序以及写账本到通道内的每一个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私有数据的更多相关文章

  1. 在 Fabric 中使用私有数据

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

  2. 第5章 Hyperledger Fabric功能

    Hyperledger Fabric is a unique implementation of distributed ledger technology (DLT) that delivers e ...

  3. Hyperledger Fabric之模型

    本文主要介绍Hyperledger Fabric的主要设计特点,为了满足功能丰富.可定制.企业化区块链解决方案. Assets - 资产定义,使得任何形式的资产,从食物到汽车到货币都可以进行自由的交换 ...

  4. HyperLedger Fabric 学习思路分享

    HyperLedger Fabric 学习思路分享 HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的.由Linux基金会主办的一个超级账本项目,它是一个目前非常 ...

  5. Hyperledger Fabric Capabilities——超级账本功能汇总

    Hyperledger Fabric是一种模块化的区块链架构,是分布式记账技术(DLT)的一种独特的实现,它提供了可供企业运用的网络,具备安全.可伸缩.加密和可执行等特性.Hyperledger Fa ...

  6. HyperLedger Fabric 1.4 关键技术(6.4)

    本节介绍从最底层的账本开始,逐一讲解账本的结构和存储.智能合约的编写和部署.通道的操作.节点的背书和提交.排序的共识和客户端SDK的接口调用,与交易流程顺序相反,由里及表的说明Fabric最关键的技术 ...

  7. Hyperledger Fabric架构详解

    区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 2018年5月26日 陶辉 Comments 10 Comments hyper ...

  8. Hyperledger Fabric on SAP Cloud Platform

    今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...

  9. HyperLedger Fabric部署与链码解读

    1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术.和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统.它是一个联盟链.Fabric与其 ...

随机推荐

  1. Nginx动静分离(Nginx+Tomcat)

    第一步:nginx构建 第二步:Tomcat构建 1.Tomcat基础点 (1)Tomcat 是基于java开发的web容器,用来发布java代码和jsp网页. (2)开发人员开发java web网站 ...

  2. PHP和JavaScript中奖概率算法

    这是一个经典的概率算法. 现在有数组:[10, 20, 30, 40] . 假设对应中奖几率:特等奖10%,一等奖20%,二等奖30%,三等奖40%,总共100%. 算法开始时,从数组中选出一个值$v ...

  3. stream,做减法,优化搜索代码。

    做一个搜索,三个输入条件,求这个条件的交集.起初我的思路是按照操作的流程,一步步的来做这三个筛选. let searchResults = []; //step1 根据id搜索,得到一个子集. if ...

  4. Spring Boot 最简单整合Shiro+JWT方式

    简介 目前RESTful大多都采用JWT来做授权校验,在Spring Boot 中可以采用Shiro和JWT来做简单的权限以及认证验证,在和Spring Boot集成的过程中碰到了不少坑.便结合自身以 ...

  5. 工作流Activity组件值数据传递获取问题

    如图:先简单说一下大致过程 通过具体的菜单节点,加载具体的指令组件.本着低耦合的原件,需要将核查组件从指令组件重拆分出来,作为单独的组件根据业务需要拖拽到指令组件中.但是具体业务方面核查组件一方面需要 ...

  6. shell 往文件中添加一列一样的字符串

    例如:往文件file.txt中,添加一列字符串"20161020", 用制表符分割 awk '$0=$0"\t20161020"' file.txt

  7. php上传下载文件

    之前做一个上传下载的项目,发现网上的和自己需求不是很一样,翻阅了下书籍和整理了下网上的一些代码.做了一个上传下载的demo,上传通过php本身的uploadfile函数,并返回以时间戳命名的文件名后, ...

  8. 大数据之Linux基础

    回顾这一个多月以来闭关学大数据的一些相关重要知识,就当复习,顺便以备以后查看 Linux学习第一步自然是安装Linux. 关于Linux 首先介绍下Linux,Linux系统很多程序员开发者其实都耳熟 ...

  9. bundle 的生成和使用

    一.bundle 的生成 1.打开XCode,创建iOS版用的bundle资源包,有两种方式:第一种直接将工作,open in  finder.在目录中直接新建文件夹,文件夹以bundle格式.文件夹 ...

  10. CoderForces Round60-(1117A,1117B,1117C题解)

    A. Best Subsegment time limit per test 1 second memory limit per test 256 megabytes input standard i ...