“据中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要,我国将会加快推动数字产业化进程,区块链作为数字经济重点产业进入国家规划布局,具体内容包括推动智能合约、共识算法、加密算法、分布式系统等区块链技术创新,以联盟链为重点发展区块链服务平台和金融科技、供应链管理、政务服务等领域应用方案,完善监管制度。”
随着企业在采用区块链技术方面的追赶,私有区块链平台的选择变得非常关键。Hyperledger,其开源项目比其他项目支持更多的企业区块链用例,目前在私有分布式账本技术(DLT)实施的竞赛中处于领先地位。在本文中,从你已知区块链的工作原理以及Hyperledger生态系统背后的设计理念的假设出发,我们将简要回顾五个活跃的Hyperledger DLT。除了本文讨论的DLT之外,Hyperledger生态系统还有更多的支持工具和库,我将在以后的文章中详细介绍。
本文主要针对那些对Hyperledger比较陌生的人。对于那些有兴趣提供区块链解决方案架构师服务和做区块链企业咨询和开发的人来说,这篇文章将是一个很好的资源。本文所包含的资料将帮助你从整体上理解Hyperledger DLT,并以其高层次的概述作为指导,使每个Hyperledger项目发挥出最佳的效果。
由于Hyperledger得到了强大的开源社区的支持,新的项目会定期加入到Hyperledger生态系统中。在撰写本文时,即2021年2月,它由6个活跃的项目和其他10个处于孵化阶段的项目组成。每个项目都有独特的特点和优势。
1. Hyperledger Fabric
Hyperledger Fabric是最流行的Hyperledger框架。智能合约(也称为链码chaincode)用Golang或JavaScript编写,并在Docker容器中运行。Fabric以其可扩展性著称,允许企业在一个成熟成功的架构之上构建分布式账本网络。Fabric是一个许可的区块链,最初由IBM和Digital Asset贡献,Fabric旨在成为开发应用或解决方案的基础,采用模块化架构。它采取插件组件来提供共识和会员服务等功能。与Ethereum一样,Hyperledger Fabric可以托管和执行智能合约,这些合约被命名为链码。一个Fabric网络由对等节点组成,这些节点执行智能合约(chaincode),查询账本数据,验证交易,并与应用程序交互。用户输入的交易被引导到一个订购服务组件,该组件最初是Hyperledger Fabric的共识机制。被称为订购者节点的特殊节点验证交易,确保区块链的一致性,并将验证后的交易发送到网络的对等体以及会员服务提供商(MSP)服务。
Hyperledger Fabric与Ethereum的两大亮点是:
多账本 (Multi-ledger):Ethereum上的每个节点在网络中都有一个单一账本的副本。然而,Fabric节点可以在每个节点上携带多个账本,这对于企业应用来说是一个很好的功能。
私有数据 (Private Data): 除了私有通道功能外,与Ethereum不同的是,Fabric成员在一个联盟内可以相互交换私有数据,而不通过Fabric通道传播,这对企业应用非常有用。
这里(https://coding-bootcamps.com/blog/review-of-hyperledger-fabric-architecture-and-components.html) 有一篇很好的文章,用于回顾所有Hyperledger Fabric组件,如peer、channel和、chaincode,这些组件对构建区块链应用至关重要。简而言之,彻底了解所有Hyperledger Fabric组件对于构建、部署和管理企业级Hyperledger Fabric应用是非常推荐的。
2. Hyperledger Besu
Hyperledger Besu是一个开源的Ethereum客户端,在Apache 2.0许可下开发,用Java编写。它可以运行在Ethereum公共网络上,也可以运行在私有许可网络上,以及Rinkeby、Ropsten和Gorli等测试网络上。Hyperledger Besu支持多种共识算法,包括PoW、PoA和IBFT,并有专门为在联盟环境中使用而设计的综合权限方案。
Hyperledger Besu实现了企业Ethereum联盟(EEA)规范。EEA规范的建立是为了在Ethereum内的各种开源和闭源项目之间建立共同的接口,以确保用户不会被供应商锁定,并为构建应用程序的团队创建标准接口。Besu实现了与EEA客户端规范一致的企业功能。
作为一个基本的Ethereum客户端,Besu具有以下功能:
它连接到区块链网络,同步区块链交易数据或向网络发出事件。
它通过智能合约在Ethereum虚拟机(EVM)环境中处理交易。
它使用网络(区块)的数据存储。
它发布客户端API接口,供开发者与区块链网络交互。
Besu实现了工作证明( Proof of Work)和权限证明 (Proof of Authority) PoA共识机制。此外,Hyperledger Besu实现了多个PoA协议,包括Clique和IBFT 2.0。
Clique是一个权威性证明的区块链共识协议。区块链运行Clique协议,维护授权签字人名单。这些被批准的签名者直接开采和封存所有区块,而不需要挖矿。因此,交易任务在计算上很轻。当创建一个区块时,矿工收集并执行交易,用计算出的区块散列更新网络状态,并使用他的私钥签署区块。通过使用定义的时间段来创建区块,Clique可以限制处理交易的数量。
IBFT 2.0(伊斯坦布尔BFT 2.0)是一个PoA拜占庭容错/Byzantine-Fault-Tolerant
(BFT)区块链共识协议。网络中的交易和区块由授权账户(称为验证器)进行验证。验证者收集、验证和执行交易并创建下一个区块。现有的验证者可以提议并投票增加或删除验证者,并维护一个动态的验证者集。共识可以确保即时的最终性。顾名思义,IBFT 2.0建立在IBFT区块链共识协议的基础上,安全性和生动性得到了提高。在IBFT 2.0区块链中,所有的有效区块都直接添加到主链中,不存在分叉。
3. Hyperledger Sawtooth
Sawtooth是第二个达到1.0版本成熟度的Hyperledger项目。Sawtooth-core是用Python编写的,而Sawtooth Raft和Sawtooth Sabre是用Rust编写的。它还拥有JavaScript和Golang组件。Sawtooth支持有权限和无权限部署。它通过与Hyperledger Burrow的合作支持EVM。通过设计,Hyperledger Sawtooth是为了解决性能问题而创建的。因此,与其他Hyperledger DLT相比,它的一个显著特点是,Sawtooth中的每个节点都可以通过验证和批准交易来充当订单器。其他值得注意的特点还有:
并行交易执行(Parallel Transaction Execution): 许多区块链使用串行交易执行来确保网络上每个节点的排序一致,而Sawtooth遵循先进的并行调度器,将交易分类为并行流,最终导致交易处理性能的提升。
应用与核心分离( Separation of Application from Core):Sawtooth通过将应用层与核心系统层分离,简化了应用的开发和部署。它提供了智能合约抽象,允许开发人员用自己选择的编程语言创建合约逻辑。
自定义事务处理器(Custom Transaction Processors): 在Sawtooth中,每个应用程序都可以定义自定义事务处理器,以满足其独特的需求。它提供了交易家族作为低级功能的方法,如存储链上权限、管理全链设置,以及保存区块信息和性能分析等特殊应用。
4. Hyperledger Iroha
Hyperledger Iroha是针对复杂数字资产和身份的创建和管理而设计的。它是用C++编写的,并且用户友好。Iroha有一个强大的基于角色的访问控制模型,并支持复杂的分析。当使用Iroha进行身份管理时,查询和执行命令只限于能够访问Iroha网络的参与者。强大的权限系统确保了所有交易的安全和控制。它的一些亮点是:
易用性: 您可以轻松创建和管理简单以及复杂的数字资产(如加密货币或个人医疗数据)。
内置的智能合约。你可以使用内置的智能合约(称为 "命令")轻松地将区块链集成到业务流程中。因此,开发人员无需编写复杂的智能合约,因为它们以命令的形式提供。
BFT:Iroha使用BFT共识算法,这使得它适合那些需要以低成本实现可验证数据一致性的企业。
5. Hyperledger Indy
作为一个自主权的身份管理平台,Hyperledger Indy是明确为去中心化身份管理而构建的。服务器部分Indy节点是用Python构建的,而Indy SDK是用Rust编写的。它提供了工具和可重用的组件来管理区块链或其他分布式账本上的数字身份。Hyperledger Indy架构非常适合每一个需要在身份管理上进行繁重工作的应用,因为Indy可以在多个领域、组织孤岛和应用中轻松解释。因此,身份被安全地存储并与所有相关方共享。Hyperledger Indy的一些显著的亮点是:
身份抗关联性:根据Hyperledger Indy文档,Indy是完全抗身份关联的。因此,你不需要担心一个ID与另一个ID的连接或混合。也就是说,你无法连接两个ID,也无法在账本中找到两个相似的ID。
去中心化(DIDs)。根据Hyperledger Indy的文档,所有的去中心化标识符都是全球可解析的,是唯一的,不需要任何中心方参与其中。这意味着,Indy平台上的每一个去中心化身份都会有一个只属于你的唯一标识符。因此,没有人可以代表你索取甚至使用你的身份。所以,这将杜绝身份被盗的机会。
零知识证明。在零知识证明的帮助下,你可以只透露必要的信息,而不透露任何其他信息。所以,当你需要证明你的凭证时,你可以根据要求方的情况,只选择公开你需要的信息。例如,你可以选择只与一方分享你的出生数据,而将你的驾驶证和财务文件发布给另一方。总之,Indy为用户提供了极大的灵活性,可以随时随地分享自己的私人数据。
总结
在本文中,我们简单回顾了五种流行的Hyperledger DLT。我们首先介绍了Hyperledger Fabric及其主要组件,以及与Ethereum等公共区块链平台相比的一些亮点。尽管Fabric目前大量用于供应链管理,但如果你在供应链领域做了很多具体的工作,你也应该探索Hyperledger Grid。然后,我们继续学习如何使用Hyperledger Besu来构建支持多种共识算法的公共联盟区块链应用,以及如何从EVM管理Besu。接下来,我们介绍了Hyperledger Sawtooth的一些亮点,比如它是如何设计成高性能的。例如,我们了解了Sawtooth中的单个节点如何通过批准和验证网络中的交易来充当订单者。最后两个DLT(Hyperledger Iroha和Indy)是专门针对数字资产管理和身份识别的。因此,如果你正在从事一个大量使用身份管理的项目,你应该探索和使用Iroha或Indy而不是Fabric。
Linux基金会开源软件学园 Copyright © 2019-2024 linuxfoundation.cn, ICP license, no. 京ICP备17074266号-2