Hyperledger Fabric介绍
转载地址
https://blog.csdn.net/xiaonu123/article/details/81006936
简介
Hyperledger介绍
超级账本(Hyperledger)项目是首个面向企业应用场景的开源分布式账本平台。由linux基金会牵头,包括 IBM 等 30家初始企业成员共同成立的。
Hyperledger Fabric是什么
该项目定位是面向企业的分布式账本平台,引入权限管理,设计上支持可插拔、可扩展,是首个面向联盟链场景的开源项目。
Fabric 基于 Go 语言实现,主要包含 Fabric CA、Fabric SDK 多个相关的子项目。
与其它区块链系统最大的不同点在于HyperLedger Fabric是私有的,而且是被许可的。但并不允许未知身份来参与HyperLedger Fabric网络(要求协议验证事务并确保网络的安全),HyperLedger Fabric组织的成员可以通过一个Membership Service Provider(成员服务提供者即MSP)来注册。
Hyperledger Fabric提供了一个独特的可伸缩、可扩展的架构,这也是Hyperledger Fabric与其他区块链解决方案的显著区别。假如你正在计划部署具备完整审查机制以及开源架构的企业级区块链,Hyperledger Fabric是你的一个不错的起点。
对于初学者,推荐首先阅读下文中的简介,以便于理解区块链的工作原理、具有的主要特点以及Hyperledger Fabric中包含的组件。
HyperLedger Fabric也提供了创建通道(channel)的能力,允许一组参与者创建一个单独的共同维护的交易账本。所以这对于其它竞争对手的网络来说,这是很重要的选择,例如:他们向特定的一组参与者提供了一个特别的价格,其它参与者享受不到这个特别价格。但是如果两个参与者在同一个通道(channel),那么这些参与者,以及其他参与者,都有该渠道的分类帐本。
什么是分布式账本
一个区块链网络的核心是一个分布式账本,在这个账本中记录了网络中发生的所有交易信息。
区块链账本通常被定义为去中心化,这是因为在整个网络中,每个参与者都保存着一个区块链账本的副本,所有参与者通过协作共同维护着账本。接下来我们会看到,去中心化与协作这两个特点在现实世界的商业货物交易和商务服务中展现出的显著优点。
除了去中心化与协作,区块链的另一个显著特点是信息在只能以“附加”的方式记录在区块链中,同时使用加密技术保障了交易一旦被添加进账本中,就无法被篡改。区块链的这种不可篡改性使得信息来源的确认变得异常容易,这是由于参与者可以肯定信息一旦被写入区块链中就几乎不可被篡改。这也是为什么区块链常常也被称为证明的系统的原因。
什么是智能合约
HyperLedger Fabric的智能合约是用Chaincode编写的,为了持续的进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制。
智能合约不仅仅可用于在区块链网络中打包信息,它们也可以被用于自动的执行由参与者定义的特定交易操作。
例如,买卖双方可以定义一个智能合约,以保证当卖方发货的商品运送到达时,买方支付的货款会自动转账给卖方。
什么是隐私
根据网络的需要,企业对企业(B2B)网络的参与者可能对他们所共享的信息非常敏感。对其他网络来说,隐私不会成为首要关注的问题。
HyperLedger Fabric支持需要将隐私(使用通道)作为关键操作需求的网络,同时也是相对开放的网络。
什么是共识
保持网络中所有账本交易的同步流程,就是共识。共识保证了账本只会在交易双方都确认后才进行更新。同时在账本更新时,交易双方能够在账本中的相同位置,更新一个相同的交易信息。
这是一个经过彻底研究的计算机科学领域,有很多方法可以实现它,每一个都有不同的权衡。例如:PBFT(拜占庭容错)可以为文件副本提供一种机制,使其能够相互通信,从而保持每个副本的一致性。或者,在比特币中,排序是通过一个名为“挖矿”的过程来实现的,在这个过程中,竞争的计算机竞相解决一个加密难题,该难题定义了所有流程随后构建的顺序。
关于HyperLedger Fabric共享机制,它目前包括SOLO和Kafka,并将很快扩展到SBFT(简化的拜占庭容错)
区块链为什么切实可行
当前的记录系统
自从商业数据记录网络系统诞生以来,直到今天的交易网络并没有发生太大的变化。在商业网络中的成员进行相互交易时,他们各自维护着自己独立的交易记录。同时,人们交易的物品——无论是16世纪佛兰德的挂毯,还是现代的有价证券——都仍然需要在每次卖出交易过程中提供来源信息,以确保卖方拥有所出售商品的所有权。
当前的商业网络就像下图描述的一样:
随着科技的进步,上图中的交易流程不断演化发展,经历了从使用石碑、使用纸质账本、使用硬盘存储器直到使用云计算平台的不同阶段,但流程的底层架构并没有发生任何变化。并不存在一个可以统一管理网络参与者身份的系统,确认商品来源十分费劲,常常会耗费数天的时间明确证券的交易(包含数以万计美元的数量)。人们必须签订合约并手动执行,每一个系统中的数据库都包含着独立的信息并最终代表一个单点的错误。
在今天的信息和过程共享断裂的方法中,建立一个跨越商业网络的记录系统是不可能的,尽管可见性和信任的需求是明确的。
区块链的不同点
那我们为什么不用“现代”的交易系统来替代这种效率低下的网络?新的商业网络可以具有标准的方法建立身份信息,执行交易,并且存储数据。为什么不建立一个可信的交易链条记录?通过查询这个链条上的所有交易,来确定交易商品来源,并且这个链条上的信息一旦被写入,就无法被再次篡改。
以上描述的商业网络就如下图所示:
这就是区块链网络。在区块链网络中,每一个参与者都保有一份账本的副本。在区块链网络中,不仅仅是账本信息会被共享,更新账本的流程也是共享的。不同于目前的系统——参与者使用私有的程序对私有的账本进行更新,而区块链系统使用共享的程序对共享的账本进行更新。
通过使用共享账本协调整个商业网络,区块链网络能够减少时间、成本以及隐私信息泄露的风险,并且能使流程更加可信和透明。
现在你已经明白了什么是区块链以及它的用途。同时还有许多其他的内容也非常重要,他们是信息与流程共享的基础知识。
其它团队贡献的Fabric项目
Hyperledger Sawtooth
该项目由Intel 等企业发起和贡献的分布式账本平台,基于 python 语言实现,包含诺韦尔共识算法,计时验证(PoET), 它针对的是以最小的资源消耗处理大量的分布式验证器。
Hyperledger Iroha
该项目定位是分布式账本平台框架,基于 C++ 语言的实现,设计上类似 Fabric,同时提供了基于 C++ 的区块链开发环境,并考虑了移动端和web端的一些需求。
Hyperledger Burrow
该项目提供了支持以太坊虚拟机的智能合约区块链平台,并支持pos共识机制和权限管理
Hyperledger Indy
该项目致力于打造一个基于区块链和分布式账本技术的数字中心管理平台。该平台支持去中心化,支持跨区块链和跨应用的操作,可实现全球化的身份管理。
Hyperledger 工具篇
Hyperledger Cello
该项目的定位为区块链管理平台,提供区块链即服务实现区块链环境的快速部署,以及对区块链平台的运行时管理。
Hyperledger Composer
Composer 是一个协同工具,用以创建区块链业务网络,加速智能合约及其跨分布式账本部署的发展。
Hyperledger Explorer
该项目定位是区块链平台的浏览器,基于 Nodejs 语言实现,提供 web 操作界面。用户可以使用它来快速查看底层区块链平台的运行信息,如区块个数、交易情况、网络状况等。
Hyperledger Fabric介绍的更多相关文章
- HyperLedger Fabric Introduction——区块链超级账本介绍
介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...
- 使用Node.JS访问Hyperledger Fabric的gRPC服务
在即将正式发布的Hyperledger Fabric SDK 1.0中,Hyperledger Fabric通过gRPC提供服务接口以取代现有的REST API.本文介绍了如何使用Node.JS访问H ...
- Hyperledger fabric Client Node.js Hello World示例程序
简介 Hyperledger fabric Client (HFC)提供了基于Node.js的应用接口来访问Hyperledger区块. 本文介绍了一个使用HFC访问IBM Bluemixr区块服务的 ...
- 基于docker的 Hyperledger Fabric 多机环境搭建(上)
环境:ubuntu 16.04 Docker 17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...
- Hyperledger Fabric 1.0 从零开始(五)——运行测试e2e
3:运行测试e2e 3.1.运行fabric-samples的问题说明 该问题说明能够解决6.1.平台特定使用的二进制文件配置第一步的问题.可以选择继续阅读该说明,或者等参考到6.1小节时再反向阅读本 ...
- Hyperledger Fabric 1.0 从零开始(四)——Fabric源码及镜像文件处理
2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下.通过1.3 ...
- Hyperledger Fabric 1.0 从零开始(一)——吐槽
在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后没过多久1.0就发布了.自从2017 ...
- Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用
Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多 ...
- Hyperledger Fabric 1.0 从零开始(九)——Fabric多节点集群生产启动
7:Fabric多节点集群生产启动 7.1.多节点服务器配置 在生产环境上,我们沿用4.1.配置说明中的服务器各节点配置方案. 我们申请了五台生产服务器,其中四台服务器运行peer节点,另外一台服务器 ...
随机推荐
- 数据库-SQL查询语言(一)
SQL数据定义 DDL sql的DDL不仅能定义一组关系,还能定义每个关系的信息,包括: 每个关系的模式 每个属性的取值类型 完整性约束 每个关系的维护的索引集合 每个关系的安全性和权限信息 每个关系 ...
- Nginx之伪404( root与alias )
目录 一.现象 二.root与alias的区别 三.建议 四.写在最后 一.现象 人类善于伪装,机器某些时候也善于伪装:Nginx请求看到404,第一反应就是文件不存在:但我们去检查的时候,它就正 ...
- Cypress系列(41)- Cypress 的测试报告
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 注意 51 testting 有一篇文章 ...
- 大数据(hadoop)
大数据 一.概述 二.大数据特点 三.大数据部门组织结构 hadoop框架 一.hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 主要解决,海量数据的存储和海量数 ...
- JDK动态代理和 CGLIB 代理
JDK动态代理和 CGLIB 代理 JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期期间创建一个接口的实现类来完成对目标对象的代理. 代码示例 接口 public interface ...
- cpp求职
//Created by Arc on 2020/5/23 //////// Created by snnnow on 2020/5/20.//////面向对象的程序设计-期中测试// 根据题目实现求 ...
- c++输出左右对齐设置
#include<iostream> int main(){ using std::cout; cout.setf(std::ios::left); int w = cout.width( ...
- Explain关键字解析
Explain 用法 explain模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的.分析你的查询语句或是表结构的性能瓶颈. 语法:Explain + SQ ...
- map 函数基本写法
map(需要对对象使用的函数,要操作的对象) 函数可以是自定义的,也可以是内置函数的,或者 lambda 匿名函数 操作的对象多为 可迭代对象可以是函数名的列表集合 2020-05-04
- Python List list()方法
描述 list() 方法用于将元组转换为列表.高佣联盟 www.cgewang.com 注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中. 语法 list ...