什么是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. java Jsoup.clean 处理入参时,会将换行符解析成空字符串问题

    Json 中clean方法有两个: 一:会格式化入参,将换行符替换成空格 clean(String bodyHtml, String baseUri, Whitelist whitelist) 二:n ...

  2. 人生苦短,学用python

    1. 我为什么开始学着用 python 啦?   扯扯网上疯传的一组图片.网上流传<人工智能实验教材>的图片,为幼儿园的小朋友们量身打造的实验教材,可谓是火了.甚至有网友调侃道:pytho ...

  3. CSS躬行记(4)——浮动形状

    CSS规范新增了一个模块:CSS Shapes,shape-outside属性属于该模块,它能影响浮动元素周边内容流的形状(即浮动形状),可接收三类值:形状盒子.函数和图像. 一.形状盒子 形状盒子( ...

  4. Ubuntu 安装配置Dosbox

    1.安装dosbox sudo apt-get install dosbox 方法一: 2.挂载虚拟空间到dosbox的c盘 在linux终端输入dosbox,进入dosbox后输入 mount  c ...

  5. postman 工具接口测试

    一.get:请求多个参数时,需要用&连接 eg:http://api.***.cn/api/user/stu_info?stu_name=小黑&set=女   eg:接口请求参数放在b ...

  6. 中阶d01-- web前端 html css js bootstrap

    html 页面骨架结构css 页面优化js(脚本语言) 页面和用户互动 bootstrap 前端框架,主要实现不同设备直接打开页面时播放比例设置(全屏暂时,不要滚动条)

  7. JS 浏览器BOM-->open() 方法

    1.定义和用法 open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. 语法: window.open(URL,name,specs,replace) 参数: URL:打开指定的页面的U ...

  8. leetcode c++做题思路和题解(4)——队列的例题和总结

    队列的例题和总结 0. 目录 栈实现队列 队列实现栈 滑动窗口最大值 1. 栈实现队列 FIFO和FILO,相当于+-号,互转都是利用"负负得正"的原理. 官方解答中第二种思路很6 ...

  9. 【高并发】不废话,言简意赅介绍BlockingQueue

    写在前面 最近,有不少网友留言提问:在Java的并发编程中,有个BlockingQueue,它是个阻塞队列,为何要在并发编程里使用BlockingQueue呢?好吧,今天,就临时说一下Blocking ...

  10. 数据结构和算法(Golang实现)(23)排序算法-归并排序

    归并排序 归并排序是一种分治策略的排序算法.它是一种比较特殊的排序算法,通过递归地先使每个子序列有序,再将两个有序的序列进行合并成一个有序的序列. 归并排序首先由著名的现代计算机之父John_von_ ...