没有合适的资源?快使用搜索试试~ 我知道了~
区块链:研究与应用3(2022)100026金融应用程序的许可区块链的性能评估:The Quorum案例研究Marco Mazzonia,*,Antonio Corradib,Marenzo Di NicolaaaConio Inc.,地址:405 Howard Street,San Francisco,CA,94105b意大利博洛尼亚复兴大街2号博洛尼亚大学计算机科学与工程系A R T I C L E I N F O关键词:区块链共识基准Quorum加密货币A B S T R A C T鉴于在许可的情况下有几种区块链技术可用,区块链应用程序设计人员必须应对选择哪种技术和共识算法最适合特定用例的日益复杂性。然而,由于缺乏一个标准框架来评估许可区块链平台的可扩展性,并比较共识算法的性能和特征,因此开发合理的评估是一个昂贵且耗时的问题。在本文中,我们提出了Quorum区块链及其共识算法的实用可扩展性和适用性评估。虽然我们现在将评估工作应用于金融用例,但我们定义了一种可以推广到任何许可的区块链技术的方法我们利用Hyperledger Caliper作为基准测试工具,Docker作为部署工具,使我们的分析易于重复,跨平台且具有成本效益。1. 介绍在过去的十年中,随着比特币和以太坊的兴起和发展,越来越多的公司,从金融科技到零售业,都非常愿意将基于区块链的解决方案整合到他们的应用程序组合中。因此,许可区块链已经被开发出来,以满足在有限数量的公司和机构之间创建封闭联盟和私有网络的需要这允许整合区块链技术的优势,同时保持非许可区块链可能缺乏的性能和数据隐私。在许可区块链的异构和快速增长的环境中,精确标记和清楚区分任何特定技术提供的功能之间的差异变得越来越困难此外,许多基于投票的共识协议被提出来取代无许可的共识算法。因此,决定哪种技术最适合特定用例是一项复杂的任务:需要深入探索每个区块链平台的保证和性能,并且进行彻底的分析具有挑战性。在整个工作中,我们说明了一种方法来对许可的区块链框架进行准确的分析我们的方法带来的主要贡献总结如下:填补了共识算法理论分析和实际可扩展性评估;实现性能测量的工具和技术的系统化;完全开源的方法(测量工具的开发扩展是公开的);使用标准容器化工具来部署许可的区块链网络,以大大减少设置时间并提高互操作性。因此,通过遵循我们的工作流程,区块链应用设计师可以通过利用开源软件技术和通用硬件基础设施来实现对特定平台性能的重要洞察,从而使此类分析的成本非常低。作为一个案例研究,我们选择了Quorum区块链,因为它引入了在参与者之间执行私人交易的可能性,并且它提供了几个可以运行区块链的即插即用共识协议,从而可以进行清晰的比较分析。第2节给出了Quorum架构的概述,重点是隐私特性。然后,在第3节中,我们展示了如何基于它们的正式规范,通过概述要检查和关注的主要方面,对多个共识算法进行实用分析。在第4节中,我们介绍了我们的方法,然后我们描述了用于我们实验的指标,工作负载和工具。 第5节讨论了结果并得出了结论。* 通讯作者。电子邮件地址:mazzoni@conio.com(M. Mazzoni),antonio. unibo.it(A. Corradi),vincenzo@conio.com(V. Di Nicola)。https://doi.org/10.1016/j.bcra.2021.100026接收日期:2020年12月30日;接收日期:2021年6月14日;接受日期:2021年8月10日2096-7209/©2021作者。出版社:Elsevier B.V.代表浙江大学出版社。这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applicationsM. Mazzoni等人区块链:研究与应用3(2022)10002622. 法定人数特征Quorum [1]是一种基于以太坊[2]的分布式账本协议,可以创建一个支持交易隐私的许可区块链网络。 该开源项目最初由摩根大通开发,专注于金融用例;最近,它已被J. P.收购。Quorum已被引入许可区块链的广泛生态系统中,以满足以下需求:● 执行私人交易和智能合约操作。● 以即插即用的方式采用多个共识机制● 提供灵活和富有表现力的网络权限管理。Quorum是在以太坊协议(geth)的正式Go实现之后构建的:这种选择背后的理由是,通过最大限度地减少Go-Ethereum所需的更改可以轻松实现与公共以太坊代码库每个Quorum节点由两个主要服务组成:1. Quorum Client:它是扩展的geth客户端,负责执行以太坊点对点(p2p)协议(仅接受来自参与者到许可网络的连接)和共识算法(见第3节)。2. 隐私管理器:它是一个软件模块,可以实现私人交易和私人智能合约操作。 它由两个组件组成:交易管理器和加密飞地(有关更多详细信息,请参见第2.1节)。图 1说明了一个3节点Quorum网络的体系结构,概述了每个节点的服务和组件之间的交互。2.1. 交易隐私引入Quorum交易隐私功能的主要思想是利用Privacy Manager提供的加密操作私有交易的有效载荷经过加密过程[3],因此只有交易中指定的节点才允许访问有效载荷信息。因此,区块验证过程相对于经典以太坊进行了修改,使得每个节点通过执行与交易相关联的合约代码来验证所有公共交易和它们允许的任何私有交易。更重要的是,不允许特定私有交易的节点将跳过与该交易相关联的合约代码的执行。此外,值得注意的是(如图1所示),公共事务由Quorum客户端处理,而私人事务也需要由隐私管理器处理,这意味着更高的计算开销。最新版本的Quorum中采用的默认隐私管理器是Tessera [4]:它是用Java实现的,用于加密,解密和分发私人交易。Tessera交易管理器是私人交易处理过程中的核心角色:它与基础设施的其他实体(如其相应的Quorum客户端和其他Tessera节点)进行交互,并管理私人数据的生命周期更准确地说,它完成了以下任务:自我管理和发现网络中的所有节点,通过建立与其他节点的P2P连接事务管理器,并通过广播对等/密钥信息。与飞地通信,用于加密/解密私有交易有效载荷。● 维护本地链下数据库以存储加密的有效载荷数据。相反,Crypto Enclave旨在提供事务管理器所需的加密/解密操作以及密钥管理。这使得所有敏感操作都能够完全隔离地处理,从而防止任何泄漏到程序存储器的外部区域因此,处理对等管理和数据库访问的事务管理器不执行任何加密/解密,大大降低了攻击可能产生的影响。考虑到私有事务和公共事务的固有二元性,实现了状态数据库的分段:所有Quorum节点维护由私有事务组成的本地唯一私有状态,并共享通过公共事务创建的公共状态。 在以太坊中,每个节点的区块链状态存储在称为tries(ModifiedMerkle Patricia Tries)的特殊树结构中[5]。因此,Quorum将公共合约的状态存储在全局同步的公共状态trie中,而私有合约的状态存储在非全局同步的私有状态trie然而,每个节点都能够验证它与其他参与者具有相同的交易集,因为块验证过程还包括对全局交易散列的检查,即块中所有交易的散列,公共和私有交易[6]。3. 共识协议在深入研究许可的区块链技术的性能测量之前,应用程序设计师必须拥有一个Fig. 1. Quorum网络的交互模式。●●M. Mazzoni等人区块链:研究与应用3(2022)1000263þ≥ þþ--þ平台提供的每个共识协议的特征和内在差异的清晰概述。在本节中,我们基于Quorum提供的共识算法的正式规范进行比较分析为了简化比较过程,我们建议探索并关注每个协议的以下基本特征:● 容错度;● 领导人选举子协议的细节● 正常运行时的通信复杂性;● 每一步的消息轮数和区块提议者数● 法定人数;● 共识的最终性和分叉的可能性;● 关于CAP定理的一致性保证[7]。更准确地说,基于CAP定理的分析可以更好地理解特定分布式系统在强一致性(C),可用性(A)和分区容差(P)中权衡哪些属性。Quorum网络可以部署三种不同的共识算法:Raft [8],CliqueProof-of-Authority( PoA ) [9] 和 Istanbul Byzantine 容 错 ( IBFT )[10]。 由于许可区块链的特征在于严格的节点身份管理和相对较少的参与者数量,因此与无许可环境不同,不需要加密经济学共识机制(例如,工作量证明(PoW)、权益证明(PoS)),以保证网络安全。因此,与激励相关的挖矿(PoW)或造币(PoS)活动在许可区块链中是无用的:区块由先验选择的权威机构组验证,因此可以检测到任何不当行为,并且可以投票淘汰可疑的恶意节点。3.2. 筏Raft [8]是一个基于Paxos [11]的分布式共识算法它在崩溃故障模型下运行,其中每个节点故障(例如,消息遗漏、网络分区或简单的硬件故障)被假定为节点崩溃:因此,必须保持n2f 1,其中n是节点的总数,f是可以表现出崩溃故障的节点的最大数量Raft的工作原理是首先在节点组中选出一个领导者,然后让领导者完全负责接受事务请求和管理日志的复制(即,块)上的其他节点。 每个节点都可以处于以下三种状态之一:follower、candidate或leader。重要的是要指出,领导者选举过程是确定性的,因此算法不能取得进展,直到领导者已经被大多数节点选择;此外,领导者,作为块提议者,可以在协议执行的许多轮中保持不变,只要严格的大多数追随者从它那里收到周期性的心跳消息(因此我们称之为强领导者)。Raft服务器通过两种类型的远程过程调用(RPC)进行通信:RequestVotesRPC 由 候 选 人 在 选 举 期 间 使 用 以 收 集 选票;RequestVotes RPC由领导人使用以复制日志条目。当一个数据块被复制到至少f1个节点(仲裁大小)上时,只要该数据块从大多数服务器成功返回,就被认为是由领导者提交的由于领导者在正常协议操作期间广播n个重复消息,并且等待至少f个回复,因此Raft具有总体线性通信复杂度,每个协议步骤具有两个消息交换。从CAP定理[7]的角度来看,Raft可以被认为是一个当网络分区发生在Raft集群中时,只有具有大多数节点的分区可以提交和执行客户端操作。少数分区中的服务器不能提交客户端操作,如果它们是读或写操作:它们只是不回复客户端请求,因此可用性被牺牲以支持强一致性。因此,Raft保证即时共识最终性[12]:一旦领导者向区块链提交了一个区块,该区块中包含的所有交易都会立即得到确认,并且该区块最终不会被丢弃。因此,Raft防止了瞬态分叉的发生。3.3. PoA集团Clique PoA [9]是一种权威证明共识算法,专门用于在以太坊平台内启用私有网络:它模拟以太坊主网PoW共识的设计,因此每个客户端都可以以最小的努力扩展此共识协议它基于这样的想法,即区块只能由一组称为权威的可信签名者创建:每个权威都由唯一的ID和严格的多数(即,N/2N个(总共N个可信节点中的1个)权威机构被假定为诚实地行为并遵循协议。为了使Clique成为拜占庭容错(BFT)协议(例如,避免垃圾邮件攻击),所设计的解决方案建议允许每个权威机构每n/21个区块提出一个区块,其中n是节点的数量。因此,在任何时候,最多有n(n/2 1)个节点被允许提出一个区块,并且提议者的子集在整个当局集合中旋转。如果一个节点表现出任意的行为,它可以从权威列表中投票出来:每个节点可以在每个时期表达投票,如果达到法定票数,则将错误节点从列表中删除(以便它不再影响网络)。尽管容忍拜占庭故障,但该算法在通信复杂度方面通常比传统BFT协议(例如实用拜占庭容错(PBFT))更有效。[13]或IBFT [10]),因为它只保证最终的共识最终性:它采用了一种急切的策略,根据这种策略,区块提议者将区块广播给其他当局,他们相应地更新区块链的副本(如PoW算法)。由于在每个协议步骤处可以存在多个提议者,因此考虑了块由不同节点以不同顺序同时附加的可能性:因此,可能发生瞬时分叉,但是它们随后通过特定的协调协议(例如,GHOST [14])。因此,在CAP属性下分析Clique之后,可以推断它是一个A-P协议:它在强一致性和可用性(A)之间进行权衡,同时是分区容忍(P)的。由于区块链节点可能会因为短暂的分叉而对链有不同的看法,并且由于不一致性后来得到了解决,所以Clique满足了最终的一致性属性。3.4. IBFTIBFT[10]是Castro和Liskov [13]基于PBFT的拜占庭容错协议。 拜占庭共识是确定性解决的:首先,选出一个领导者或提议者(如Raft),然后每个提议的区块在提交到区块链之前经历节点之间的多个通信阶段。在节点之间交换四种类型的消息:(1) PRE-BACK、BACK、COMMIT:在算法的正常操作期间使用。(2) ROUND-CHANGE用于在怀疑当前领导失败或沟通不及时时选择新领导目前,Quorum采用的IBFT的实际实施[15]提出了两种领导人选举策略:循环法:这是默认的领导者选举策略,其中为每个块决策步骤选择不同的提议者粘性提议者:只有当一个节点被怀疑有恶意行为时,一个新的提议者才会被选择。在这两种情况下,每个节点都知道谁将是下一个块提议者,因为它是通过基于节点ID的确定性计算来决定的●●M. Mazzoni等人区块链:研究与应用3(2022)1000264þ2n与PBFT一样,IBFT也确保每轮只有一个提议者;此外,提议者需要其他服务器的法定数量的响应才能取得任何进展。这意味着在涉及多于f个节点(在至少3个f 1节点上)的网络分区的情况下,协议不提交任何决策,直到分区被解决并且通信再次变得及时(因此,在分区期间不违反共识)。 因此,我们可以断言,从CAP的角度来看,IBFT是C-P的:它保证强一致性(C)和分区容差(P)。因此,与Raft一样,分叉不会发生,并确保即时终结。3.5. 预期每个共识协议的特征清楚地组织在表1中,以便对其性能进行初步评估。 由于Raft是一个崩溃容错(CFT)协议,我们希望它比其他两个(而不是BFT协议)表现得更好:原因是要在它们处理的故障模型中搜索,因此,在它们的通信复杂性中搜索。 值得提醒的是,尽管Clique和IBFT都能抵御拜占庭式的失败,但前者是一种概率协议,只提供最终的最终性(即,弱一致性),而后者保证即时终结性(即,强一致性)。因此,由于Clique具有线性通信复杂度,我们期望其性能测量更接近Raft。因此,乍一看,我们预计IBFT会被Clique超越,特别是在较大的网络中,考虑到它对一致性的悲观方法-在Clique中,分叉冲突被解决而不是被预防-以及它的二次复杂性。然而,IBFT确定性领导者选举和即时终结可能会导致比Clique更好的交易处理时间,特别是在小型网络中。此外,比较IBFT中的循环和粘性提议者选举策略将是有趣的,以了解两者之间是否存在相关差异。4. 性能分析为了让区块链应用程序设计师能够全面了解特定区块链框架的性能,有必要将基于共识算法的正式规范(第3节)开发的比较分析连接并转换为有形的测量和实验结果。如下所示,我们展示了我们开发的用于合并理论和实践结果的方法,然后我们描述了用于评估许可区块链的性能和可扩展性的指标(第4.2节),工具(第4.3节)和工作负载(第4.4节)表1Quorum共识协议概述。Raft Clique PoA IBFT容错CFTn≥ 2f 1 BFTn≥ 2f 1 BFTn≥ 3f 14.1. 方法我们的主要目标是展示我们定义的分析区块链技术的方法,以便任何感兴趣的人都可以了解它的细节,以便复制。 分步算法提供了对区块链框架的完整而清晰的见解,从共识层的理论基础开始,到它在特定工作负载和拓扑设置下的性能。此外,我们工作的基本目标是它易于适用于任何区块链平台。我们的方法包括两个阶段,宏观步骤和微观步骤。宏观层面描述了如何推动区块链框架的研究,以及如何将其与其主要特征的可扩展性微观层面更详细地描述了如何通过关注具体指标,在操作上设置和执行绩效基准分析宏观一级包括以下步骤:(1) 研究区块链框架的主要特征。 对于Quorum,我们专注于交易的隐私属性,这是主要的突破。(2) 基于官方文档的共识算法(或算法,如果更多)的分析。(3) 总结步骤(2)中的分析,重点关注第3节中列出的共识方案评价的基本标准。如果在一个特定的框架内有多个共识算法,表1所示的比较分析可能会有所帮助。(4) 选择基准工具来执行区块链性能的测量:请参阅第4.3节中列出的可用工具。如果所选工具不支持感兴趣的区块链框架,则会实现特定的扩展(5) 选择(或开发,如果不可用)部署工具来运行具有可配置节点数量的区块链网络(6) 以每秒事务数(TPS)和延迟指标为目标的性能度量(参见第4.2节)。(7) 结果的验证以及与步骤(1)和(2)的理论分析的比较。微观层次的方法是上述步骤的更细粒度的细节(6)它负责定义如何在区块链网络上有效地执行它由几个取决于用例的决策组成:为测试选择网络拓扑,通常从尽可能少的节点开始工作负载类型的选择:例如,我们选择小型银行(见第4.4节)工作负载,因为它对金融应用程序感兴趣。● 选择不同的交易发送速率(参见第4.5节):确定性强的领导者可能是弱势领导者确定性强/弱领导采用的发送速率越多,对性能的最终洞察就越精确。通信复杂度#消息轮数每步奥恩·奥恩·奥恩2号2 1 3在同一框架内有多个一致性算法的情况下,调整区块产生速率,以使协议具有相同的区块提议速率。法定人数f1没有法定人数,nf,1● 选择尺寸合适的硬件来运行实验。#每个步骤n-102101这些步骤代表了我们分析和测试共识最终瞬间最终瞬间叉否是否CAP分析注:正常运行期间PoA:权威证明; IBFT:伊斯坦布尔拜占庭容错。区块链框架,它们可以适用于许可和无权限区块链:事实上,所有无权限区块链通常都是开源的,并且大多数允许使用Docker等容器化方法建立本地网络●●●●●1M. Mazzoni等人区块链:研究与应用3(2022)10002654.2. 度量超级账本性能和规模工作组(PSWG)提出了区块链性能评估指标的标准化[16]。吞吐量和延迟被确定为评估区块链系统可扩展性的特征化指标具体来说,交易吞吐量被定义为区块链网络每秒处理的交易数量:在我们的例子中,我们只考虑成功的交易,因此我们也可以将吞吐量称为有效吞吐量。当一个交易被包含在一个区块中并作为区块链的一部分提交时,它就被成功处理了。 Transaction latency是从提交transaction到在网络中的每个正确节点上都可以获得transaction结果的时间间隔(在共识和传播时间之后)。可扩展性可以通过分析在向系统添加更多区块链节点时吞吐量和延迟的变化来衡量:我们预计在测试更大的网络时会有更高的交易延迟,因为共识过程必须达到更多的节点。因此,出于同样的原因,我们预计在向网络添加节点时吞吐量会下降。此外,特别是当评估PBFT类协议(诸如IBFT)时,由于正常操作期间的二次通信复杂度,并且当选择新的块提议者时查看系统的改变,延迟可能特别高。4.3. 工具由于许可区块链的巨大势头,最近专门针对这类区块链技术开发了几个基准框架:尽管共同努力定义性能分析标准,但区块链社区通常会提出不同的工具和框架架构。据我们所知,最值得注意的基准框架如下:● 超级账本卡尺[17].● Dinh等人的Blockbench[18 ]第10段。● [19]第十九● BCTMark [20].之所以选择Hyperledger Caliper来驱动这个测试平台,是因为除了文档的清晰性之外,它还很容易扩展,并且依赖于广泛的开发人员社区然而,为了测试Quorum区块链,我们为HyperledgerCaliper开发了一个适配器,因为Quorum在当前版本的Caliper(v0.4.1)中还不是受支持的SUT(被测系统)。我们的代码可以在GitHub上找到[21]:我们的项目基于Hyperledger Caliper v0.3.0(2020年3月)的一个分支此外,为了简化测试过程并使其他人可以访问我们的Caliper版本,我们将其包装在Docker Hub上的Docker镜像中[22]。使用提供的镜像,可以将Caliper Master和Workers(扩展为支持Quorum)部署为Docker服务。我们实现的另一个工具[23]允许使用Docker Compose轻松启动具有可定制节点数量的Quorum网络虽然它仅用于测试目的,但它支持Raft,IBFT 和 Clique PoA 共 识 机 制 , 并 且 它 使 用 Tessera trans-actionmanager(比Constellation transaction manager更先进,更我们的工具基于另一个GitHub项目[25],该项目仅支持Constellation。此外,我们允许确定性账户和密钥创建,这在设置Caliper测试时非常有用,因为Caliper测试需要在所有测试中使用相同的私钥和相同的以太坊账户地址。4.4. 工作负载对于我们的基准测试,我们使用了一个名为SmallBank的OLTP(在线事务处理)工作负载的简化变体[26]。鉴于Quorum是专门为金融部门构建的,我们使用了一个基准,它提供了一些反映银行系统的功能SmallBank逻辑的实现通过智能合约提供:它可以在Hyperledger GitHub存储库中找到[27]。智能合约是用Solidity语言编写的,它包含三个功能来模拟银行操作:open(只写):存储表示假银行账户的字符串,与表示金额的整数相关联(写操作)。query(read-only):给定一个账户字符串,返回与之关联的金额(读操作)。transfer(read-write):模拟两个账户之间的资金转移(读写操作)。然后,我们实现了Caliper工作负载文件,以便允许工作进程使用Quorum隐私功能调用智能合约函数。4.5. 测试结构和设置我们的测试设计遵循一个树形结构。每个共识协议都针对公共交易(Go-Ethereum的功能)和私人交易(Quorum增强的隐私功能)进行了测试。然后,对于每个协议,我们针对三种不同的区块链网络配置测试了公共和私有交易:4节点,8节点和16节点网络。 通过这种方式,我们可以分析吞吐量和延迟如何根据对等点的数量变化,从而评估可伸缩性。此外,每个网络拓扑都有五种不同的事务提交率:25、50、100、200和400 TPS,用于读取和写入操作。因此,考虑4种不同的共识协议(即:Raft、IBFT sticky、IBFT round-robin和Cli- que),我们获得的实验案例总数为120。此外,我们将每个测试用例执行三次,并将TPS和延迟计算为三次测量的平均值;我们还计算了这些结果的标准差。测试共识协议时要考虑的另一个重要变量是块时间,即块生成的频率Baliga等人[2]使用Raft评估块时间变化对吞吐量和延迟的影响:他们的结果表明,通过增加块时间并保持输入事务速率恒定,吞吐量或多或少保持恒定,而延迟明显增加。由于Raft默认块时间为50 ms,而IBFT和Clique块时间为1 s,因此我们也将Raft块时间增加到1秒,以便使协议具有可比性。当执行具有私有事务的工作负载时,我们决定将智能合约对所有Quorum节点都设置为私有,因此我们将每个节点设置为每个私有事务的一方这在现实世界的应用程序中不是一个有价值的选择,因为这样的私有事务相当于一个公共事务,系统中的每个节点都知道它的有效载荷。然而,我们想测试Tessera在私有交易提交过程多少开销,因此我们模拟了计算复杂性方面的最坏情况:每个节点Tessera服务必须为网络中的所有参与者加密(在写为了进行我们的实验,我们设置了一个Amazon EC2实例,该实例具有16个虚拟CPU(8个核心,每个核心2个线程),64 GB的RAM和安装在其上的Ubuntu18.04为了简单起见,我们使用Docker容器将区块链节点和Caliper进程部署在同一台机器上。我们通过pumba [ 29 ]在容器之间注入随机延迟来模拟真实的网络环境,pumba是一种在Docker中模拟容器和网络故障的工具:更准确地说,我们根据欧洲和美国之间服务器的ping统计数据造成了100ms的延迟和50 ms的抖动[30]。我们的实验具有非常实惠的成本,并且很容易重现;此外,●●●M. Mazzoni等人区块链:研究与应用3(2022)1000266¼¼¼þ¼由于Docker Compose,启动网络和管理网络所需的功能非常优化。为了通过Caliper收集数据,我们部署了4个Caliper工作者作为Docker容器:每个工作者都向区块链的一个节点因此,即使在16个节点的网络中,我们也将系统设置为仅向4个Quorum节点发送事务,然后请求在整个网络中传播。 我们的选择是合理的,通常,在许可的环境中,组织可以决定只公开节点的一个子集来接受交易(即,写)请求,而其他节点可以是“只读“节点或参与共识过程的此外,当在Caliper中选择一个输入速率时,例如100 TPS,它将在工作器之间进行分配,以便它们作为一个组达到发送因此,在事务发送率方面,4个或8个工作者没有区别。唯一显著的区别是,如果8个工作者向8个不同的区块链节点发送请求,那么八卦算法将需要更长的时间将交易传达给共识领导者,因此延迟可能会增加。我们测量了(见表2)系统性能是否受到大量工作者向不同区块链节点发送请求的影响(例如,4个工作者向4个节点发送请求,6个工作者向6个节点发送请求,8个工作者向8个节点发送请求):正如预期的那样,对于相同的输入速率(400 TPS),我们获得了延迟的增加和吞吐量的总体下降然而,在未来的实验中,工人的数量,作为区块链节点的最大数量可以增加,而不会忽略应该相应改变的硬件资源。5. 结果在本节中,我们讨论了公共和私人交易的实验总的来说,我们预计公共事务的吞吐量将高于私有事务的吞吐量,这是由于Tessera对私有有效载荷的加密操作的开销。然而,重要的是要注意,根据公共合约执行交易相当于测试基本的geth客户端,而Quorum特定的功能是通过执行私有交易来测试的。值得注意的是,无论测试公共或私有事务,4节点网络的性能通常都优于8节点网络,而8节点网络又优于16节点网络。其原因是区块链系统在生理上没有实现横向扩展特性;然而,我们想证明,即使SUT受到不断增长的输入事务速率的影响,由此产生的吞吐量趋势也应该是次线性的:这意味着网络能够吸收不断增加的工作量而不会降低性能。5.1. Raft的结果使用Raft测试的只写工作负载表明,在公共事务执行中,三种网络拓扑在高达200 TPS的输入速率下产生相似的然而,在400 TPS输入速率下,16节点网络的测量吞吐量与4节点和8节点网络负偏离,表明较大的网络通常具有较低的性能。相反,延迟表现出与吞吐量相反的趋势。对于公共事务,4-表2在运行Raft的8节点Quorum网络中添加工作进程对读写工作负载的影响工人输入速率(TPS)吞吐量(TPS)平均延迟440052.814.9640048.915.3840049.820.8节点和8节点配置导致相同的延迟,稳定在1 s左右(考虑Raft中的块时间设置为1 s)。总体而言,私有事务产生的延迟比公共事务更高,正如预期的那样。开放工作负载吞吐量图表(图2a)和传输工作负载吞吐量图表(图2b)的相似之处在于: 3a),表明写操作的复杂性超过读操作。针对公共事务测试的4节点和8节点网络的图重叠,因此它们导致近似相同的吞吐量。然而,在两种情况下,吞吐量略有变化而延迟保持不变的原因与Caliper计算吞吐量和延迟的方式有关(1) 吞吐量succ/(final_max-create_min),其中final_max是所有工作者中事务被视为已提交的最晚时间,create_min是事务创建的最早时间。(2) latency total_delay/succ,其中:单个事务延迟(即,latency)被度量为final-create,其中final是事务被设置为成功状态的时间,create是事务创建的时间;每个工作者计算它已经提交的事务的延迟的总和:delay_sum(final-create);total_delay是每个工作者返回的所有delay_sum的总和让我们假设同时在两台不同的机器上进行两个不同的实验,例如final_max_1 final_max_2和final_min_1final_min_2。假设总共有1600笔交易提交,4名工人,100 TPS输入率,有可能获得以下测量:● 电话:+86-21- 6666666传真:+86-21- 6666666621¼76.19TPS● 电话:+86-21 -6666666传真:+86-21 - 6666666620 ½ 80TPS关于延迟,我们可以实际获得以下结果:● 延迟_1/4(1990年至1975年至2025年至2010年)/1600/4 5秒● 延迟_2 ¼(1800 2200 1770 2230)/1600¼5s因 此 , 我 们 获 得 了 两 个 不 同 的 实 验 , 其 中 lasts 相 同 , 而throughput_1小于throughput_2,因为计算吞吐量的时间帧仅变化1s。这些结果可能是由于4个工作者在开始提交事务时没有完全同步。因此,解释了4节点和8节点网络的不同吞吐量结果和相同延迟值此外,在读写工作负载中注册的延迟与只写工作负载类似,在绝对值上有很小的差异。在测试查询工作负载时,我们在每个网络配置中获得了可以忽略不计的恒定延迟-大约10 ms;因此,我们只报告了读取操作的吞吐量(图11)。4)。在公共合同执行上,三个网络的读取吞吐量图原因在于,公共智能合约上的读取操作是对接收请求的节点的本地getHub(LevelDB[31])的简单查找,而在私有合约上执行的读取操作被转发到参与读取私有交易的节点的每个Tessera Manager。在前一种情况下,由于请求总是提交给4个区块链节点(参见第4.5节),因此无论网络大小如何,吞吐量都是相同的,因为读取操作仅通过4个节点的相同子集的本地查找来执行●●●M. Mazzoni等人区块链:研究与应用3(2022)1000267图二. 筏式打开(只写)工作负载性能结果。图三. 筏式传输(读写)工作负载性能结果。在后者中,每个节点都被设置为读取事务的私有方,因此每个节点Tessera Manager都由读取操作触发,导致吞吐量根据网络中的节点数量而变化(由于Tessera加密操作和通信开销)。此外,出乎意料的是,4节点网络使用私有交易而不是公共交易产生了更高的整体吞吐量这可能是由于LevelDB在小型网络中检索交易有效载荷信息时比Tessera H2内存数据库[32]稍慢如下所示,我们报告了传输工作负载获得的吞吐量(表3)和延迟(表4)一般来说,我们通过私有事务测试获得了更高的方差见图4。 筏式查询(只读)工作负载性能结果。以400 TPS的输入速率进行公共交易的网络 这种差异主要是由于pumba产生的随机延迟[29]。总的来说,吞吐量和延迟方差都显示出可接受的值。5.2. Clique PoAClique的概率方法旨在与以太坊Rinkeby测试网络集成,这意味着分叉可能发生,但最终会得到解决。 考虑到循环的leader模式和应对拜占庭故障的投票机制,它导致的吞吐量值略低于Raft(在5.4节中进行了明确的比较)。然而,数据产生了与Raft相同的模式:私人交易的整体表现比公共交易差,证实了Tessera在系统上的运营费用。该模式的唯一例外是16节点网络,其吞吐量(图1)。 5a)在200 TPS和400 TPS的输入速率之间明显下降:在400 TPS的输入速率下,具有公共事务的16节点网络几乎与具有私有事务的4节点网络内注册的吞吐量一致;此外,在相同的数据点,8节点网络和16节点网络的结果大致相同表3转移工作量(TPS)上的重复测量值的筏标准差。输入(TPS)4-n-PUB8-n-PUB16-n-PUB4-n-PRIV8-n-PRIV16-n-PRIV250.000.000.000.170.810.98500.000.001.150.360.500.811000.921.501.390.383.743.242000.250.160.574.050.582.474001.181.019.182.580.870.58M. Mazzoni等人区块链:研究与应用3(2022)1000268表4传输工作负载上延迟测量的筏标准差。输入(TPS)4-n-PUB8-n-PUB16-n-PUB4-n-PRIV8-n-PRIV16-n-PRIV250.010.270.270.300.560.60500.020.020.020.020.230.361000.050.020.020.240.770.742000.020.030.120.852.760.684000.180.070.800.840.641.05吞吐量使用公共事务测试的16节点网络的吞吐量下降可能是由于当阻塞时间非常短(在本例中为1 s)时,Clique中发生的竞争条件:这个问题在第5.4节中得到了更好的解释。使用开放工作负载获得的延迟图表(图 5 b)显示,在200 TPS输入速率下,4节点网络中私有交易的确认延迟大于16节点网络中公共交易的确认延迟;相反,在400 TPS下,具有公共交易的16节点区块链网络比针对私有交易测试的4节点网络慢。这些结果证明,每当运行BFT共识协议的大型许可网络(超过12个节点)受到高事务提交率的压力时,延迟和吞吐量都会受到负面影响(见图6)。除了不可避免的更高的共识时间,在大型网络中,当节点数量增加时,直接向领导者提交交易的可能性下降,导致一些交易块被提交给非提议者节点。关于只读工作负载(图 7),我们获得了几乎相同的值为筏(图。4):这确认了读操作独立于特定的共识机制,因为它们不更新节点状态。此外,值得注意的是,即使在这种情况下,使用私有读事务测试的4节点网络的性能也优于所有使用公共事务的网络,这表明结果与Raft中获得的结果一致。在表5和表6中,我们分别显示了传输工作负载的每个测试用例的吞吐量和延迟标准差(见图5)。 6):某些方差结果,特别是在400 TPS输入速率下的结果,甚至比Raft中的结果更明显。这让我们假设Caliper worker的精度受到每个worker是一个单线程进程的事实的影响:事实上,每个worker都负责提交transactions并监听它们的确认,同时收集时间数据(这个问题也在5.5节中概述)。因此,特别是在具有较大网络和高事务输入率的实验中,工作者可能会因任务而过载,并且某些测量可能会受到较低准确性的影响。5.3. IBFT结果如第3节所述,IBFT实现了即时的最终性(因此,强一致性):块被立即确认为包含在区块链中,并且不会发生瞬时分叉,因为每个块在提交之前都经历了一个三阶段的协议过程。这种悲观的共识方法可能表明IBFT的表现比Clique更差:事实上,它在某些网络配置下表现更好(第5.4节),可能是由于其确定性的领导者选举机制。在本节中,我们只展示使用读写工作负载获得的结果,因为传输操作是银行场景中最常用的我们专注于绩效之间的比较,测量与循环领导人选举政策和粘性的提议者,在公共和私人交易。在运行测试之前,我们对可能的结果有不同的期望。 一方面,粘性提议者策略听起来像是一个轻量级的解决方案,因为只有在领导者恶意行为或崩溃的情况下才会改变;然而,在更大的网络中,如果提议者从未失败,它可能成为系统瓶颈,因为它很容易
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 藏经阁-应用多活技术白皮书-40.pdf
- 藏经阁-阿里云计算巢加速器:让优秀的软件生于云、长于云-90.pdf
- 藏经阁-玩转AIGC与应用部署-92.pdf
- 藏经阁-程序员面试宝典-193.pdf
- 藏经阁-Hologres 一站式实时数仓客户案例集-223.pdf
- 藏经阁-一站式结构化数据存储Tablestore实战手册-206.pdf
- 藏经阁-阿里云产品九月刊-223.pdf
- 藏经阁-2023云原生实战案例集-179.pdf
- 藏经阁-Nacos架构&原理-326.pdf
- ZTE电联中频一张网配置指导书
- 企业级数据治理之数据安全追溯
- MISRA-C 2012-中文翻译版.pdf
- 藏经阁-《多媒体行业质量成本优化及容灾方案白皮书》-37.pdf
- 藏经阁-浅谈阿里云通用产品线Serverless的小小演化史-23.pdf
- 藏经阁-冬季实战营第一期:从零到一上手玩转云服务器-44.pdf
- 藏经阁-云上自动化运维宝典-248.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功