掌桥专利:专业的专利平台
掌桥专利
首页

一种面向Diem区块链的性能测试方法

文献发布时间:2023-06-19 12:24:27


一种面向Diem区块链的性能测试方法

技术领域

本发明属于软件测试领域,特别是面向Diem区块链的性能测试领域。本发明使用两种不同类型的Move模块作为工作负载,模拟大量交易请求,以此测试Diem区块链整体性能和共识层性能。

背景技术

Diem是一个由Facebook发起的区块链项目,是一套简单的、无国界的货币和为数十亿人服务的金融基础设施,也被Fackbook看作为实现普惠金融与货币互联网的基础。为实现上述目标,Diem应具备极高的交易吞吐量和极低的延迟,并具备Diem生态系统灵活可管理能力。

区块链的性能与其使用的共识协议密切相关。Diem区块链采用了基于DiemBFT共识协议的BFT机制来验证节点的身份,实现在无信任环境下面的一致性。DiemBFT是BFT的一种实现,可以容忍最多三分之一的验证节点被破坏或发生故障。并且还可以实现高交易处理量、低延迟和更高能效。

区块链依赖智能合约来管理自身的数字资产。Diem拥有系统级的生态系统管理策略,可以通过在Move中调用他们来实现对Diem系统的管理。在Move中,数字资产具有和真实资源相同的属性。每个资源只有唯一的所有者,资源只能花费一次,并限制创建新资源。

本发明从Diem区块链整体性能和Diem区块链共识性能两个角度入手,提出了一种面向Diem区块链的性能测试方法。首先,本发明分别从Diem区块链整体性能和共识性能角度提出两类Move模块作为工作负载,并将其部署在相应的Diem账户下,通过交易脚本调用Move模块的方法,模拟大量交易请求,以此达到性能测试的目的;其次,本发明使用吞吐量和交易延迟两个性能指标来评估Diem区块链整体性能和共识性能,在执行相应的性能测试过程中,收集并统计性能指标数据,最后生成包含吞吐量和交易延迟两个指标维度的Diem性能测试报告。

发明内容

本发明的技术方案为:一种面向Diem区块链的性能测试方法,其特征是能够测试Diem区块链整体以及共识层两方面的性能,并生成包含吞吐量和交易延迟两个维度指标的可靠的Diem性能测试报告。该性能测试方法包含以下三个关键步骤:

1)Diem测试链部署:首先根据用户提供的Diem区块链配置(DC,DiemConfiguration)在Diem CLI客户端完成Diem测试链搭建,并将其部署在服务器上。DC主要包含Diem测试链账户总数(numAcct),每个账户的初始化余额(balance)以及在每个账户下发表的负责交易逻辑的Move模块(m)。Move模块是定义结构类型以及对这些类型进行操作的函数的库。结构类型定义Move全局存储的架构,模块函数定义用于更新存储的规则。本发明主要涉及两类Move模块:

①执行转账操作的Move模块:本模块是由Diem区块链系统提供的一类具有转账逻辑的Move模块,其对外提供取钱操作(withdraw_from_sender),转账操作(deposit)等函数接口。

②Donothing Move模块:本模块是由本发明设计的一类测试Diem区块链共识层性能的Move模块。该模块内的函数只接受一个参数,函数体内不做任何具体操作并直接返回结果。该模块可以将Diem区块链数据模型层和执行层对性能的影响降到最低,使得性能主要与Diem区块链共识机制相关,以此来测试Diem区块链共识层的性能。

2)Diem整体性能测试:本步骤根据用户提供的Diem区块链整体性能测试配置(DWTC,Diem Whole Testing Configuration)执行Diem区块链整体性能测试。DWTC主要包含整体性能测试交易脚本TS

3)Diem共识性能测试:本步骤根据用户提供的Diem区块链共识性能测试配置(DCTC,Diem Consensus Testing Configuration)执行Diem区块链共识性能测试。DCTC主要包含共识性能测试交易脚本TS

附图说明

图1为本发明实施总流程图。

图2为关键步骤1流程图。

图3为关键步骤2流程图。

图4为关键步骤3流程图。

具体实施方法

为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。

图1为本发明提出的一种面向Diem区块链的性能测试方法的实施流程图。

Diem测试链部署。本步骤用于为后续步骤部署用于性能测试的Diem测试链。Diem测试链配置主要包括Diem测试链账户数目,账户初始化金额以及相应的Move模块。Move模块包含转账Move模块和Donothing Move模块两类。根据配置进行Diem测试链搭建并部署到服务器上。

Diem整体性能测试。本步骤执行Diem区块链整体性能测试,并收集吞吐量和时延数据。首先用户根据自身需求配置Diem整体性能测试,配置包括交易脚本TS

Diem共识性能测试。本步骤执行Diem区块链共识性能测试,并收集吞吐量和时延数据。首先用户根据自身需求配置Diem共识性能测试,配置包括交易脚本TS

Diem性能测试报告生成。本步骤按照Diem整体性能测试、Diem共识性能测试的顺序将上述步骤计算得到的吞吐量和时延性能数据进行整合,并添加到测试报告中,最终输出Diem性能测试报告。

图2为Diem测试链部署的流程图。具体操作步骤如下:

步骤1:初始状态;步骤2:输入Diem测试链配置DC=;步骤3:随机生成一个账户diemAcct;步骤4:初始化diemAcct的账户余额为balance;步骤5:在账户diemAcct下发布Move模块m;步骤6:判断已生成的账户数目是否大于等于numAcct,若是则执行下一步,若否则执行步骤3;步骤7:输出Diem测试链;步骤8:结束状态。

图3为Diem区块链整体性能测试的流程图。具体操作步骤如下:

步骤1:初始状态;步骤2:输入Diem区块链整体性能测试配置DWTC=

图4为Diem区块链共识性能测试的流程图。具体操作步骤如下:

步骤1:初始状态;步骤2:输入Diem区块链共识性能测试配置DWTC=;步骤3:随机选择一个账户作为交易发起方fromAcct;步骤4:查看fromAcct的余额balance,在(0,balance]区间下随机选择一个交易金额price;步骤5:以fromAcct为发起账户,price为交易金额调用TSdonothing发起交易;步骤6:记录交易返回延迟时间coLat;步骤7:记录单位时间内返回的交易数量coThg;步骤8:等待间隔时间interval;步骤9:判断当前测试时间是否大于等于testTime,若是则执行下一步,若否则执行步骤3;步骤10:计算生成时延结果consensusLat=

综上所述,本发明使用两类Move,模块作为工作负载对Diem区块链进行性能测试,最终以吞吐量和时延两类维度指标生成Diem区块链性能测试报告。

相关技术
  • 一种面向Diem区块链的性能测试方法
  • 一种面向以太坊区块链的性能测试方法
技术分类

06120113284193