Fabric的6大特性
文章目录
什么是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大特性的更多相关文章
- AngularJS-chapter1-2-四大特性
4大特性 MVC MVC实例 数据模型,控制器,视图 HelloAngular_MVC.html 图中的 ng-controller="HelloAngular" 定义了Hel ...
- ES6的十大特性和认知
---恢复内容开始--- ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率.本文主要针对E ...
- java的3大特性
java的3大特性 1.继承: * 继承是从已有类得到继承信息创建新类的过程. * 提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). * 继承让变化中的软件系统有定的延 ...
- 有了这 4 大特性,CDN 好用到飞起
随着 CDN 市场的快速发展和网络新技术的不断涌现,目前的 CDN 已不仅仅是当初简单的内容分发,同时也是新特性研发.新技术推广及实践的平台.这些新技术.新特性,或者能够保障 CDN 安全性,或是提升 ...
- 前端开发者不得不知的es6十大特性(转)
转载自AlloyTeam:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten ...
- 前端开发者不得不知的ES6十大特性
前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will- ...
- 不得不知的ES6十大特性
ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率. 本文主要针对ES6做一个简要介绍. 主 ...
- jdk8十大特性并代码demo(转)
一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 4.方法引用,与Lambda表达式联合使用 5.引入重复注解 6.类型注解 7.最新的Da ...
- css 两大特性:继承性和层叠性
css 有两大特性: 继承性和层叠性, 继承性 面向对象语言都会存在继承的概念,在面向对象的语言中,继承的特点:继承了父类的属性和方法.那么我们现在主要研究css,css中没有方法,所以我们仅仅继承属 ...
随机推荐
- B 基因改造
时间限制 : - MS 空间限制 : - KB 问题描述 "人类智慧的冰峰,只有萌萌哒的我寂寞地守望."--TBTB正走在改造人类智慧基因的路上.TB发现人类智慧基因一点也不 ...
- MapReduce( map的使用)
MapReduce Description MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Red ...
- flask-sqlalchemy的基本使用
flask-sqlalchemy 1 .配置应用和基本使用 和sqlalchemy一样,先定义好数据库配置和db_url.然后在app的config加入SQLALCHEMY_DATABASE_URI等 ...
- DNS是个什么东东
工作中经常用到或者听到DNS,什么内网服务器,DNS服务器,啥也别想,你问下自己,你知道什么是DNS吗? 如果你非常清楚,OK,那你肯定是鼠标点错了,赶紧关了这个页面吧,如果你不是很清楚,知道一点,那 ...
- ThinkPHP中的行为扩展和插件详解
原理分析 将标签与类之间的对应关系(如'app_init'=>array('Common\Behavior\InitHook')),通过Hook类中import或add方法,加载到Hook类中静 ...
- Python Requests-学习笔记(10)-会话对象
会话对象让你能够跨请求保持某些参数.它也会在同一个Session实例发出的所有请求之间保持cookies. 会话对象具有主要的Requests API的所有方法. 我们来跨请求保持一些cookies: ...
- floyd三重循环最外层为什么一定是K
Floyd算法为什么把k放在最外层? - 知乎 https://www.zhihu.com/question/30955032高票答案: 简单地总结一下:K没放在最外面一定是错的,但是在某些数据比较水 ...
- Java入门系列之线程池ThreadPoolExecutor原理分析思考(十五)
前言 关于线程池原理分析请参看<http://objcoding.com/2019/04/25/threadpool-running/>,建议对原理不太了解的童鞋先看下此文然后再来看本文, ...
- vueThink框架搭建与填坑(new)
自己跟着官网搭建vueThink框架,发现github上文档有很多坑.所以总结一下(仅针对WIN端下载使用) 1.安装node.js 前端部分是基于node.js上运行的,所以必须先安装node.js ...
- AJ学IOS(48)多线程网络之多线程简单了解
AJ分享,必须精品 一:进程和线程 1:什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 比如同时打开QQ.Xcode,系统就会分 ...