什么是Hyperledger Fabric

为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是由LinuxFoundation®托管的8个Hyperledger®项目之一。

Hyperledger Fabric是被广泛使用的,支持准入网络上的分布式账本解决方案。它的模块化架构最大程度地提高了区块链解决方案的机密性,弹性和灵活性。

1. 成员准入

Hyperledger Fabric是用于准入网络的框架,其中所有参与者都具有已知身份。在考虑准入的网络时,您应该考虑您的区块链用例是否需要遵守数据保护法规。许多用例(尤其是在金融部门和医疗保健行业)受数据保护法律的约束,这些法律要求了解网络的成员是谁以及谁在访问特定数据。

例如,考虑一家私募股权公司。根据定义,私募股权不在证券交易所公开交易,其投资者通常是风险投资公司,私募股权公司或天使投资者。该网络的参与者必须是已知的,并且在资金方面具有信誉,才能进行投资才能参与区块链。

2. 性能,可伸缩性和信任级别

Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议(“链码”),事务排序以及事务验证和承诺。这种分离具有多个优点:跨节点类型所需的信任和验证级别更少,并且网络可伸缩性和性能得到了优化。

为了说明这一点,让我们看一下Hyperledger Fabric v1.0中的事务流,如下图所示。

从图的左侧开始:

1)交易建议由应用程序提交给背书的peer节点。

2)背书政策概述了签署提案需要多少个背书人和/或哪些背书人组合。背书者执行链码以模拟网络对等方中的提议,从而创建一个读/写集。

3)然后背书的peer节点将签名的提案响应(背书)发送回应用程序。

4)应用程序将交易和签名提交给Order服务

5)创建一批或一组交易,并将其交付给提交peer节点。

6)当提交peer节点收到一批事务时

7)验证是否符合背书策略,并检查读/写集以检测冲突的事务。如果两项检查均通过,则该块将提交到账本,并且每个事务的状态更新都将反映在状态数据库中。

由于使用新的v1.X架构,只有签名和读/写集是通过网络发送的,因此可伸缩性和性能得到了优化。此外,由于只有背书人和提交人才能真正看到交易,因此在区块链系统的不同部分中需要较少的信任级别,从而提供了更高的安全性。

例如,在资本市场中,随着股权支持证券或债券的买卖,交易量由于参与者的增加而增加。增加的事务需要改进的可伸缩性和性能,Hyperledger Fabric v1.X提供了此功能,部分原因是拆分了链代码执行。

拆分链码执行还可以使网络动态增长。在Hyperledger Fabric v1.X中,可以动态和以编程方式添加peer,而不是像v0.6中那样以静态方式添加。例如,假设一家管理外汇汇率的公司有一家新银行要添加到网络中。使用Hyperledger Fabric v1.X,他们可以以编程方式执行此操作。

3 需要了解的数据

由于竞争力,保护法和个人数据机密性的规定,企业需要对某些数据元素进行隐私保护,这可以通过在区块链上进行数据分区来实现。 Hyperledger Fabric支持的通道允许数据仅传递给需要了解的各方。

例如,许多金融实体对竞争对手甚至看到正在处理的交易数量表示担忧。一些金融机构认为加密“不足”来保护其数据。鉴于某些金融工具需要花费10年或更长的时间才能实现价值,随着时间的流逝,密码破解的风险可能会使私人信息公开。通道帮助提供了数据分区功能,只有那些需要了解数据的人员才能看到事务数和数据本身。

4 通过不可变的分布式账本进行复杂查询

分布式账本是区块链应用程序状态转换的顺序记录。每笔交易都会产生一组资产键值对,这些键值对在创建,更新或删除时将被提交到账本。 peer支持LevelDB和CouchDB两种格式存储。

默认情况下,LevelDB键值数据库支持键查询,复合键查询和键范围查询。如果您还需要复杂的丰富查询,则可以使用CouchDB,它支持LevelDB的基本功能,并添加完整的数据复杂查询。这种文档数据库(例如CouchDB)的内容是JSON格式的,同时支持复杂查询,其中数据模型与现有键/值编程模型兼容。

这种JSON格式有助于最大程度地减少生成简单报告和执行审核功能所需的工作。例如,在供应链场景中,您可以使用JSON文档样式来帮助概述商品和运输实体的特定数据。您可以轻松地生成用于资产到最终目的地的不同地点和运输实体的资产报告。

5 支持插件组件的模块化架构

Hyperledger Fabric体系结构的模块化使网络设计人员可以插入其首选组件实现,这是一个优势。最需要模块化的领域之一是“使用自己的身份认证系统”。很多公司已经具有自己的身份管理,并且想要重用而不是重建。

可插拔的体系结构的其他组件包括共识或加密,允许使用自己的加密标准。

6 保护数字钥匙和敏感数据

HSM(硬件安全模块)提供了对数字密钥的高级保护。对于涉及身份管理的方案,HSM可以更好的保护密钥和敏感数据。

更多教程请参考 flydean的博客

Fabric的6大特性的更多相关文章

  1. AngularJS-chapter1-2-四大特性

    4大特性 MVC MVC实例  数据模型,控制器,视图 HelloAngular_MVC.html 图中的 ng-controller="HelloAngular"  定义了Hel ...

  2. ES6的十大特性和认知

    ---恢复内容开始--- ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率.本文主要针对E ...

  3. java的3大特性

    java的3大特性 1.继承: * 继承是从已有类得到继承信息创建新类的过程. * 提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). * 继承让变化中的软件系统有定的延 ...

  4. 有了这 4 大特性,CDN 好用到飞起

    随着 CDN 市场的快速发展和网络新技术的不断涌现,目前的 CDN 已不仅仅是当初简单的内容分发,同时也是新特性研发.新技术推广及实践的平台.这些新技术.新特性,或者能够保障 CDN 安全性,或是提升 ...

  5. 前端开发者不得不知的es6十大特性(转)

    转载自AlloyTeam:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten ...

  6. 前端开发者不得不知的ES6十大特性

    前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will- ...

  7. 不得不知的ES6十大特性

    ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率. 本文主要针对ES6做一个简要介绍. 主 ...

  8. jdk8十大特性并代码demo(转)

    一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 4.方法引用,与Lambda表达式联合使用 5.引入重复注解 6.类型注解 7.最新的Da ...

  9. css 两大特性:继承性和层叠性

    css 有两大特性: 继承性和层叠性, 继承性 面向对象语言都会存在继承的概念,在面向对象的语言中,继承的特点:继承了父类的属性和方法.那么我们现在主要研究css,css中没有方法,所以我们仅仅继承属 ...

随机推荐

  1. bs4使用

    目录 安装使用 遍历文档树 查找文档树 安装使用 # 安装 pip3 install beautifulsoup4 from bs4 import BeautifulSoup soup=Beautif ...

  2. B - Charlie's Change

    Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie drives a lot and so he often buys coffe ...

  3. oracle实现分页功能 limit功能例子

    oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的. 记录两种常用方法: (1)使查询 ...

  4. 1047 Student List for Course (25分)

    Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course ...

  5. 1020 Tree Traversals (25 分)

    Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...

  6. 51单片机内存条(64K)

    51单片机内存条扩展(64K) 设计时间:2015年 实现功能:51单片机SRAM扩展 51单片机64K内存条

  7. APScheduler轻量级定时任务框架

    目录 一.APScheduler简介 支持的后端存储作业 集成的Python框架 二.APScheduler下载安装 三.APScheduler组件 各组件简介 调度器 作业存储器 执行器 触发器 四 ...

  8. C++编译/编辑器对OIer的必要功能

    (没有引战的意思,如果有不同意见可以评论区发言,只是写出我目前的情况) 作为一个C++ OIer肯定是用过Dev的,因为学校推荐啊我也没有办法.都知道Dev又丑又没有代码补全,但是却是最最最适合OIe ...

  9. Prthon多线程和模块

    Prthon多线程和模块 案例1:简化除法判断 案例2:分析apache访问日志 案例3:扫描存活主机 案例4:利用多线程实现ssh并发访问 1 案例1:简化除法判断 1.1 问题 编写mydiv.p ...

  10. php __DIR__ 解释下

    __DIR__, php5.3 才增加的这个魔术常量,表示当前文件所在的目录地址. php5.3之前用dirname(__FILE__);表示__DIR__; __FILE__这个表示当前文件的路径.