一种面向以太坊区块链的性能测试方法技术

技术编号:26693741 阅读:27 留言:0更新日期:2020-12-12 02:49
本发明专利技术是一种面向以太坊区块链的性能测试方法,该方法以以太坊区块链作为研究对象,建立了一套系统的性能测试策略与性能指标体系。首先,我们提出一套性能测试策略。我们以智能合约作为性能测试基准,提出了三类智能合约,用于从存储、共识、EVM的角度测试以太坊性能。通过将智能合约部署到区块链上,模拟大量用户向智能合约发起交易,达到性能测试的目的。第二,我们提出了一套性能指标体系。我们将性能指标分为四个维度:以太坊性能指标、区块链性能指标、分布式系统性能指标、系统资源消耗指标。在进行性能测试的的同时,监控并收集性能指标信息。最终,通过性能测试最终生成一个包含四个维度的性能指标的测试报告,对以太坊性能进行评估。

【技术实现步骤摘要】
一种面向以太坊区块链的性能测试方法
本专利技术属于计算机技术中的区块链领域,尤其是面向以太坊区块链系统的性能测试领域,用于测试与评估特定配置下以太坊区块链的性能。本专利技术使用不同类型的智能合约作为测试基准,模拟大量用户发送智能合约交易请求,达到测试以太坊区块链性能的目的。
技术介绍
在科技飞速发展的当前,区块链技术因其去中心化的特性而受到人们的广泛关注。2008年,中本聪提出了去中心化的比特币,意味着在无需一个中心化的机构监管下,比特币便可实现自主发行和流通。由于比特币已在无人监管的情况下连续多年实现正常发行和流通,研究人员开始关注其底层技术,并最终从中抽离出核心的区块链技术。区块链是由一个个区块按生成时间逐个链接在一起,最终形成一条由区块首尾相接的链式数据结构。在区块链系统中,所有节点拥有同样的权限,每个节点都可以通过一定方式生成下一个区块,也可以验证其他节点生成的区块。虚拟货币是区块链的一个重要应用场景。然而,区块链的应用场景远不限于此。1995年,NickSzabo提出了智能合约(SmartContract)的概念,它是一种信息化的计算机协议,类似人们生活中普遍存在的纸质合约。不同的是,智能合约的条件约束以代码的形式规定,而代码只会按照写明的条件执行,这意味着智能合约无需人来监督执行,从而有效降低了违约的风险。区块链的去中心化、一致性、不可变性等特性使部署在区块链上的智能合约具有无需监管、无法变更、自动运行等特点。因此,将智能合约与区块链结合,可以使区块链技术应用场景更加广泛。区块链技术的核心是共识协议:在某一节点生成区块后,每一个人根据事先约定的共识协议验证区块有效性,只有验证通过后区块才会被加入到区块链的末尾。区块链的中心化特性显著降低了交易成本,链上数据不可变更的特性有效提升了恶意篡改数据的成本,因此受到了企业界的广泛关注和研究人员的深入探索。然而,正是由于区块链要求每个节点都要验证区块的合法性,导致各个节点之间达成共识的系统资源与时间耗费变得异常巨大,整个区块链系统的性能相比于传统的中心化的分布式系统差距明显。目前最常用的支付方式VISA,可以达到每秒钟40000笔交易与秒级的交易确认,而比特币每秒钟的交易数量仅为7笔,且每一笔交易的确认时间为一小时。同时,比特币使用的工作量证明共识协议还会消耗大量的CPU资源,导致比特币还远远不能满足生活中的需求。因此,区块链的性能是区块链研究者的主要关注点。以太坊(Ethereum)是第一个有效结合智能合约技术的区块链平台。它为开发者提供了图灵完备的智能合约开发语言Solidity,可以很好的支持智能合约开发。同时,以太坊还提供了以太坊虚拟机EVM(EthereumVirtualMachine),用于执行智能合约。为了防止恶意攻击,以太坊虚拟机执行合约的过程直接与金钱挂钩。执行过程中,以太坊会根据执行的操作码的类型收取一部分费用,称为Gas。Gas可以反映智能合约对系统资源的消耗,因此可用于评估以太坊的性能。尽管以太坊的性能要优于比特币,但仍然难以满足实际使用需求。对此,以太坊开发人员也在对以太坊的共识协议进行优化以求提升交易吞吐量,降低交易确认延迟。不同版本的以太坊客户端可能体现出不同的性能。同时,节点数量、硬件配置与运行环境的差异都有可能对以太坊的性能产生影响。因此,为了系统性地评估给定配置下以太坊区块链系统的性能,我们需要依据确定的配置搭建一个以太坊测试链,并模拟真实场景下的交易情况,在此基础上,对该以太坊区块链做实时性能指标监控。因此,我们提出了一种面向以太坊区块链的性能测试方法。本专利技术以以太坊区块链作为研究对象,在建立一套系统的性能测试策略与性能指标体系的基础上,提出一种面向以太坊区块链的性能测试方法。首先,提出一套性能测试策略。分别从存储、共识、EVM的角度提出三类智能合约作为以太坊性能测试基准,通过将三类智能合约部署到区块链上,模拟大量用户向智能合约发起交易,达到性能测试的目的;其次,提出一套性能指标体系。该指标体系包含以太坊性能指标、区块链性能指标、分布式系统性能指标和系统资源消耗指标,分别对应于以太坊所属的以太坊、区块链、分布式系统、一般软件等四个层次。在进行性能测试的同时,监控并收集性能指标信息。最终,通过性能测试生成一个包含四个维度的性能指标的测试报告,对以太坊性能进行评估。
技术实现思路
本专利技术提供一种面向以太坊区块链的性能测试方法,用于模拟用户对以太坊区块链的交易场景,根据以太坊区块链性能指标对其实施监控,起到评估以太坊区块链性能的效果。为达成上述目标,本专利技术提出一种面向以太坊区块链的性能测试方法。该方法首先按照用户提供的以太坊配置将一条以太坊测试链部署到服务器上,并将三类智能合约部署到该测试链上。然后,根据用户提供的性能测试配置,按照一定频率向已经部署的智能合约发起交易请求,并记录交易返回的时间与单位时间返回的交易数量。同时,在节点上启动资源监控器与微观指标监控器收集性能指标信息。最后,根据四个维度指标,包括以太坊性能指标、区块链性能指标、分布式系统性能指标和系统资源消耗指标对以太坊区块链性能进行分析,最终生成一份以太坊区块链性能测试报告。具体而言,该方法包括以下步骤:1)以太坊测试链部署。本步骤根据需求部署以太坊测试链:首先根据用户提供的以太坊网络配置(ENC,EthereumNetworkConfiguration)在以太坊客户端完成以太坊测试链(ETC,EthereumTestChain)搭建。ENC主要包含节点数量与节点版本等信息。在测试链部署成功之后,将三类智能合约测试基准部署到ETC上,这三类智能合约包括:(1)面向共识的智能合约(SCConsensus):该类智能合约在执行过程中不做任何具体操作,只是单纯返回结果,所以在这类智能合约在执行和存储时不会有额外操作,对区块链的性能影响主要体现在共识协议上;(2)面向存储的智能合约(SCStorage):该类智能合约在收到交易请求并执行时,会进行大量的数据存取操作,用于对以太坊的数据存储模型进行性能测试;(3)面向EVM的智能合约(SCEVM):该类智能合约在收到交易请求并执行时,会执行大量的符号运算、循环、条件判断等语句,用于对以太坊执行智能合约的EVM进行性能测试。2)吞吐量与延迟监控。本步骤对以太坊测试链进行性能测试并记录测试链的吞吐量(THR,Throughout)与交易延迟(LAT,Latency)信息。首先,根据用户提供的性能测试配置(PTC,PerformanceTestingConfiguration),向以太坊测试链的各个节点发送合约请求。合约请求的方法、参数等由用户在回调脚本(CB,Callback)中定义。在发送请求的同时,记录每个交易请求返回的延迟时间以及单位时间内返回的请求数量,用于计算吞吐量与交易延迟指标数据。在测试结束后对收集到的指标数据进行计算,得到吞吐量与交易延迟的最大值、最小值、中位数、平均值。3)系统资源消耗监控。本步骤对已启动测试的以太坊测试链中各个节点服务器的资源消耗(R本文档来自技高网
...

【技术保护点】
1.一种面向以太坊区块链的性能测试方法,其特征是模拟真实场景下用户对以太坊区块链发起交易的速率,监控以太坊区块链的性能指标,达到评估以太坊区块链性能的效果;该方法包括以下步骤:/n1)以太坊测试链部署;本步骤用于为后续步骤部署用于性能测试的以太坊测试链;首先用户需要根据自身测试需求配置以太坊网络,配置包括以太坊网络配置与智能合约配置;以太坊配置中包含节点数量配置与节点版本配置;智能合约配置中包含三类智能合约;根据用户指定的配置进行以太坊测试链部署,部署完成后将智能合约部署到该测试链上;/n2)吞吐量与延迟监控;本步骤在以太坊测试链上模拟大量用户的交易请求,并监控其吞吐量与延迟信息;首先用户需要根据自身测试需求配置性能测试信息;根据配置信息启动测试;在发送交易请求的同时记录每个交易返回的时间与单位时间返回的交易数,进而计算吞吐量与延迟;/n3)系统资源消耗监控;本步骤对正在测试中的以太坊测试链的所有节点进行系统资源消耗监控;监控内容包括各个节点的CPU,内存,磁盘,网络等系统资源消耗的数据;测试结束后整合输出各个节点的不同类型资源消耗数据;/n4)微观性能指标监控;本步骤对正在测试中的以太坊测试链的所有节点的区块链微观性能指标进行监控;监控收集到的微观性能指标信息,包括输出微观性能指标数据与GAS数据;测试结束后整合上述信息;/n5)测试报告自动生成;本步骤对上述步骤收集到的数据进行整合分类,通过四类性能指标系统分析以太坊的性能;根据四类指标的层级关系,按照以太坊性能指标、区块链性能指标、分布式系统性能指标、系统资源消耗指标的顺序,依次添加性能指标到测试报告中,最终输出总测试报告。/n...

【技术特征摘要】
1.一种面向以太坊区块链的性能测试方法,其特征是模拟真实场景下用户对以太坊区块链发起交易的速率,监控以太坊区块链的性能指标,达到评估以太坊区块链性能的效果;该方法包括以下步骤:
1)以太坊测试链部署;本步骤用于为后续步骤部署用于性能测试的以太坊测试链;首先用户需要根据自身测试需求配置以太坊网络,配置包括以太坊网络配置与智能合约配置;以太坊配置中包含节点数量配置与节点版本配置;智能合约配置中包含三类智能合约;根据用户指定的配置进行以太坊测试链部署,部署完成后将智能合约部署到该测试链上;
2)吞吐量与延迟监控;本步骤在以太坊测试链上模拟大量用户的交易请求,并监控其吞吐量与延迟信息;首先用户需要根据自身测试需求配置性能测试信息;根据配置信息启动测试;在发送交易请求的同时记录每个交易返回的时间与单位时间返回的交易数,进而计算吞吐量与延迟;
3)系统资源消耗监控;本步骤对正在测试中的以太坊测试链的所有节点进行系统资源消耗监控;监控内容包括各个节点的CPU,内存,磁盘,网络等系统资源消耗的数据;测试结束后整合输出各个节点的不同类型资源消耗数据;
4)微观性能指标监控;本步骤对正在测试中的以太坊测试链的所有节点的区块链微观性能指标进行监控;监控收集到的微观性能指标信息,包括输出微观性能指标数据与GAS数据;测试结束后整合上述信息;
5)测试报告自动生成;本步骤对上述步骤收集到的数据进行整合分类,通过四类性能指标系统分析以太坊的性能;根据四类指标的层级关系,按照以太坊性能指标、区块链性能指标、分布式系统性能指标、系统资源消耗指标的顺序,依次添加性能指标到测试报告中,最终输出总测试报告。


2.根据权利要求1中所述的一种面向以太坊区块链的性能测试方法,其特征是,在步骤1)中,进行以太坊测试链部署;本步骤首先根据用户提供的以太坊网络配置,在对应服务器上部署对应版本的以太坊客户端完成以太坊测试链的搭建;在测试链部署成功之后,将三类智能合约测试基准部署到以太坊测试链上,这三类智能合约包括:
1)面向共识的智能合约:这类智能合约在执行过程中不做任何具体操作,所以在这类智能合约在执行和存储时不会有额外操作,对区块链的性能影响主要在共识协议上;
2)面向存储的智能合约:这类智能合约在收到交易请求并执行时,会进行大量的数据存取操作,用于对以太坊的数据存储模型进行性能测试;
3)面向EVM的智能合约:这类智能合约在收到交易请求并执行时,会执行大量的符号运算,循环,条件判断等语句,用于对以太坊执行智能合约的EVM进行性能测试。


3.根据权利要求1中所述的一种面向以太坊区块链的性能测试方法,其特征是,在步骤2)中,进行吞吐量与延迟监控首先需要用户根据自身测试需求配置性能测试信;配置包括生成的账户数量AN、初始化账户金额I...

【专利技术属性】
技术研发人员:王兴亚王新宇张瑾玉赵鸿辉何铁科陈振宇
申请(专利权)人:南京慕测信息科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1