转载地址
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 操作界面。用户可以使用它来快速查看底层区块链平台的运行信息,如区块个数、交易情况、网络状况等。