一种区块链性能基准测试方法和装置与流程

文档序号:19124077发布日期:2019-11-13 01:57阅读:166来源:国知局
一种区块链性能基准测试方法和装置与流程

本发明涉及测试技术领域,特别涉及一种区块链性能基准测试方法和装置。



背景技术:

当前众多开源的区块链性能基准测试工具,普遍存在上手难、门槛高,要求测试人员学习并掌握底层测试链的原理以及相应的接口设置,并且测试工具与底层测试链大多侵入式,高耦合化,在测试流程上以及配置上存在设计的缺陷。以主流且开源的由linux基金会托管的hyperledger项目下的caliper为例,其被大多测试人员采用,针对多个hyperledger项目下的底层链进行基准测试工作。

caliper首先通过配置针对底层链的组网、启网、性能基准测试进行配置,通过测试工具组织完成测试链整个网络的启动,通过分配子任务的方式,向测试链发送交易并由当前子任务实时的进行测试结果收集,当全部任务执行完毕后,caliper针对各个子任务实时采集的数据结果,进行汇总并生成测试报告。即采用一种侵入式的方式,完成整个性能基准测试。

通过上述选取的典型代表caliper侵入式的测试工具工作流程举例,可以总结该设计的缺点如下:一种性能基准测试工具与测试链高度耦合的设计方式,通过测试工具的配置与编码,实现测试链自身的组网、启动等初始化工作,将原本应该独立实现的工作交由测试工具、从而增加了测试工具的研发门槛,对测试人员提出了需要了解测试链原理与接口,并需要研发的额外工作量;

侵入式的测试工具一般采用实时收集测试结果的方式,虽然在一定程度可以加快测试报告的生成,即因交易子任务全部发送完成后,测试结果数据可拿来直接计算出报告。但侵入式实时的设计方法将交易发送与交易收集间接耦合化,将原先无联系的工作合并在同一个子任务中处理,会占用机器资源,对并发的压力发送会产生一定程度的影响。



技术实现要素:

有鉴于此,本申请提供一种区块链性能基准测试方法,能够降低测试人员的测试门槛,减少测试的准备工作,并提高测试效率。

为解决上述技术问题,本申请的技术方案是这样实现的:

在一个实施例中,提供了一种区块链性能基准测试方法,所述方法包括:

构造用于测试的交易;

从被测区块链中获取签名算法,对构造的交易进行签名;

将签名后的交易广播发送给被测区块链;

当用于测试的交易全部发送完成后,从所述被测区块链中获取发送的交易对应的测试数据。

其中,所述将签名后的交易广播发送给被测区块链时,所述方法进一步包括:

记录发送的交易的哈希值,以及发送信息;

所述从所述被测区块链中获取发送的交易对应的测试数据时,所述方法进一步包括:

根据获取的测试数据中的哈希值确定所述测试数据中的测试结果对应的交易,并以哈希值为映射值,关联交易的发送信息和测试结果。

其中,所述测试结果包括:

是否落块、所在块高、执行结果和最终链上的时间戳信息;

所述发送信息包括:发送时间戳信息和是否为探针交易。

其中,所述方法进一步包括:虚拟交易签名接口、交易广播接口和遍历区块交易接口;

通过所述虚拟交易签名接口从被测区块链中获取签名算法;

通过所述交易广播接口向被测区块链广播发送签名后的交易;

通过所述遍历区块交易接口从所述被测区块链中获取发送的交易对应的测试数据。

在另一个实施例中,提供了一种区块链性能基准测试装置,所述装置包括:交易构造签名模块、交易广播发送模块和交易结果收集模块;

所述交易构造签名模块,用于构造用于测试的交易;从被测区块链中获取签名算法,对构造的交易进行签名;

所述交易广播发送模块,用于将所述交易构造签名模块签名后的交易广播发送给被测区块链;

所述交易结果收集模块,用于当用于测试的所有签名后的交易全部发送完成后,从所述被测区块链中获取发送的交易对应的测试数据。

其中,所述装置进一步包括:存储单元;

所述存储单元,用于所述交易广播发送模块将签名后的交易广播发送给被测区块链时,记录发送的交易的哈希值和发送信息;所述交易结果收集模块从所述被测区块链中获取发送的交易对应的测试数据时,根据获取的测试数据中的哈希值确定所述测试数据中的测试结果对应的交易,并以哈希值为映射值,关联交易的发送信息和测试结果。

其中,所述测试结果包括:

是否落块、所在块高、执行结果和最终链上的时间戳信息;

所述发送信息包括:发送时间戳信息和是否为探针交易。

其中,

所述交易构造签名模块,进一步用于虚拟交易签名接口,通过所述虚拟交易签名接口从被测区块链中获取签名算法;

所述交易广播发送模块,进一步用于虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易;

所述交易结果收集模块,进一步用于虚拟遍历区块交易接口,通过所述遍历区块交易接口从所述被测区块链中获取发送的交易对应的测试数据。

在另一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述区块链性能基准测试方法的步骤。

在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述区块链性能基准测试方法的步骤。

由上面的技术方案可见,上述实施例中采用松耦合的方式将区块链性能基准测试与区块链的底层测试链拆分,通过构造、签名交易,并向被测试区块链发送签名后的交易,再事后从被测试区块链中收集发送交易对应的测试数据;而被测试的区块链的底层测试链自行起链(不依赖任何测试工具的配置),接收交易并处理交易即可。该方法能够实现非侵入式的区块链性能基准测试,能够降低测试人员的测试门槛,减少测试的准备工作,并提高测试效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例一中区块链性能基准测试流程示意图;

图2为本申请实施例二中区块链性能基准测试流程示意图;

图3为本申请实施例中测试设备在数据库中记录发送信息和测试结果的示意图;

图4为本申请实施例中应用于上述技术的装置结构示意图;

图5为本申请实施例中测试装置与被测试区块链的底层测试链交互的示意图;

图6为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

本申请实施例中提供一种区块链性能基准测试方法,采用松耦合的方式将区块链性能基准测试与区块链的底层测试链拆分,通过构造、签名交易,并向被测试区块链发送签名后的交易,再事后从被测试区块链中收集发送交易对应的测试数据;而被测试的区块链的底层测试链自行起链(不依赖任何测试工具的配置),接收交易并处理交易即可。该方法能够实现非侵入式的区块链性能基准测试,能够降低测试人员的测试门槛,减少测试的准备工作,并提高测试效率。

本申请实施例中提供的区块链性能基准测试方法应用于一测试设备上,该测试设备可以为一台具有交易构造、数据收发的功能即可,具体实现时可以为一台pc等。

实施例一

参见图1,图1为本申请实施例一中区块链性能基准测试流程示意图。具体步骤为:

步骤101,测试设备构造用于测试的交易。

本实施例中构造的用于测试的交易的格式需要符合被测试区块链能够处理的交易的格式,具体实现时,交易的格式可以在测试设备上配置,也可以在构造交易之前到被测区块链中去获取。

步骤102,该测试设备从被测区块链中获取签名算法,对构造的交易进行签名。

本申请实施例中在具体实现时可以虚拟交易签名接口,通过所述虚拟交易签名接口从被测区块链中获取签名算法,即查阅被测区块链的sdk文档中的相关签名部分即可获得。

步骤103,该测试设备将签名后的交易广播发送给被测区块链。

该测试设备还虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易。

具体实现时,查阅被测区块链的sdk文档中交易广播api,将签名后的交易广播到区块链节点上。

被测区块链接收到测试设备广播的交易后,共节点进行校验以及网络共识同步上链。

步骤104,当用于测试的交易全部发送完成后,该测试设备从所述被测区块链中获取发送的交易对应的测试数据。

这里用于测试的交易全部发送完成后,即针对该被测区块链当前测试用的交易全都发送完毕后,再统一从被测试区块链中获取发送的交易对应的所有测试数据。

在具体实现时,虚拟遍历区块交易接口,通过所述遍历区块交易接口从所述被测区块链中获取发送的交易对应的测试数据。

该实施例采用松耦合的方式将区块链性能基准测试设备的功能与区块链的底层测试链的功能拆分,测试设备用于构造交易、签名,并发送给被测区块链的底层测试链再事后收集测试数据;而被测试区块链的底层测试链自行起链(不依赖任何测试工具的配置),进行程序化的共识出块等处理。这种非侵入式的区块链性能基准测试,能够降低测试人员的测试门槛,减少测试的准备工作,并提高测试效率。

该实施例中还通过虚拟一些接口来实现数据的交互,这种非侵入式的实现方式是通过暴露交互接口,实现测试测试设备与底层测试链的非侵入式交互。

实施例二

参见图2,图2为本申请实施例二中区块链性能基准测试流程示意图。具体步骤为:

步骤201,测试设备构造用于测试的交易。

本实施例中构造的用于测试的交易的格式需要符合被测试区块链能够处理的交易的格式,具体实现时,交易的格式可以在测试设备上配置,也可以在构造交易之前到被测区块链中去获取。

步骤202,该测试设备从被测区块链中获取签名算法,对构造的交易进行签名。

本申请实施例中在具体实现时可以虚拟交易签名接口,通过所述虚拟交易签名接口从被测区块链中获取签名算法,即查阅被测区块链的sdk文档中的相关签名部分即可获得。

步骤203,该测试设备将签名后的交易广播发送给被测区块链,并记录发送的交易的哈希值,以及发送信息。

本步骤中发送信息包括:发送时间戳信息和是否为探针交易。

该测试设备还虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易。

具体实现时,查阅被测区块链的sdk文档中交易广播api,将签名后的交易广播到区块链节点上。

被测区块链接收到测试设备广播的交易后,共节点进行校验以及网络共识同步上链。

步骤204,当用于测试的交易全部发送完成后,该测试设备从所述被测区块链中获取发送的交易对应的测试数据。

这里用于测试的交易全部发送完成后,即针对该被测区块链当前测试用的交易发送完毕后,再统一从被测试区块链中获取发送的交易对应的所有测试数据。

在具体实现时,虚拟遍历区块交易接口,通过所述遍历区块交易接口从所述被测区块链中获取发送的交易对应的测试数据。

步骤205,该测试设备根据获取的测试数据中的哈希值确定所述测试数据中的测试结果对应的交易,并以哈希值为映射值,关联交易的发送信息和测试结果。

本步骤中的测试结果包括:

是否落块、所在块高、执行结果和最终链上的时间戳信息。

参见图3,图3为本申请实施例中测试设备在数据库中记录发送信息和测试结果的示意图。

图3中以将发送信息和测试结果记录到测试记录数据库中为例,在具体实现时,只要以哈希值为映射值记录发送信息和测试结果即可,至于记录到数据库中,还是文档中,还是其他记录方式本申请不限制具体记录方式。

在交易发送时,将原数据写入测试记录数据库,即将交易的哈希值(交易哈希)、发送时间戳(信息)和是否探针(交易)记录到测试记录数据库中;

待事后从被测区块链的底层测试链中收集测试数据(交易的哈希值和测试结果)时,比对写入测试记录数据库中,具体的比对方式,即使用测试数据中的哈希值到测试记录数据库中查找对应的哈希值,即将同一条交易的发送信息和测试结果绑定存储到测试记录数据库中。

针对一条交易,在测试记录数据库中记录的完整信息如下:

交易的哈希值(交易哈希);

发送时间戳(信息);

是否探针(交易);

是否落块(事后获取的测试结果);

所在块高(事后获取的测试结果);

执行结果(事后获取的测试结果);

最终链上的时间戳信息(确认时间戳,事后获取的测试结果)。

由图3可以看出两个任务,即交易发送与事后收集测试数据,通过引入测试记录数据库的方式,设置合理的字段位,来进行两个任务间的事后关联。具体来说,当测试工作批量发送交易,结束任务前,会记录当前发送交易的哈希值,当前时间戳,以及是否为探针交易,交易全部发送完毕后,测试记录数据库会存储着全部已发送交易的元数据;当开启事后收集测试数据任务时,通过遍历区块以及区块内交易的方式,以交易哈希为映射值,将对应交易的结果,包括是否落块、所在块高、执行结果以及最终链上的时间戳信息写入对应的记录数据库中,实现两个任务事后的关联,为后续测试报告的生成提供了准确的测试结果。

该实施例采用松耦合的方式将区块链性能基准测试设备的功能与区块链的底层测试链的功能拆分,测试设备用于构造交易、签名,并发送给被测区块链的底层测试链再事后收集测试数据;而被测试区块链的底层测试链自行起链(不依赖任何测试工具的配置),进行程序化的共识出块等处理。这种非侵入式的区块链性能基准测试,能够降低测试人员的测试门槛,减少测试的准备工作,并提高测试效率。

本申请实施例中采用化实时为事后,即发送交易后,测试设备在当前子任务中完成,全部发送完成后,事后进行测试结果的收集,使得测试流程更加独立,减少了流程间的干扰。

该实施例中还通过虚拟一些接口来实现数据的交互,根据被测区块链中的sdk文档中的api信息来虚拟对应接口,api信息可以通过交互的方式获取,也可以通过配置的方式实现。

这种非侵入式的实现方式是通过暴露交互接口,实现测试测试设备与底层测试链的非侵入式交互。

基于同样的发明,本申请实施例中还提供一种区块链性能基准测试装置。参见图4,图4为本申请实施例中应用于上述技术的装置结构示意图。该装置包括:交易构造签名模块401、交易广播发送模块402和交易结果收集模块403;

交易构造签名模块401,用于构造用于测试的交易;从被测区块链中获取签名算法,对构造的交易进行签名;

交易广播发送模块402,用于将交易构造签名模块401签名后的交易广播发送给被测区块链;

交易结果收集模块403,用于当用于测试的所有签名后的交易全部发送完成后,从所述被测区块链中获取发送的交易对应的测试数据。

优选地,所述装置进一步包括:存储单元405;

存储单元405,用于交易广播发送模块402将签名后的交易广播发送给被测区块链时,记录发送的交易的哈希值和发送信息;交易结果收集模块403从所述被测区块链中获取发送的交易对应的测试数据时,根据获取的测试数据中的哈希值确定所述测试数据中的测试结果对应的交易,并以哈希值为映射值,关联交易的发送信息和测试结果。

优选地,所述测试结果包括:

是否落块、所在块高、执行结果和最终链上的时间戳信息;

所述发送信息包括:发送时间戳信息和是否为探针交易。

优选地,本申请实施例中测试装置通过虚拟接口与被测试区块链的底层测试链交互。

参见图5,图5为本申请实施例中测试装置与被测试区块链的底层测试链交互的示意图。

交易构造签名模块401,进一步用于虚拟交易签名接口,通过所述虚拟交易签名接口从被测区块链中获取签名算法;

交易广播发送模块402,进一步用于虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易;

交易结果收集模块403,进一步用于虚拟遍历区块交易接口,通过所述遍历区块交易接口从所述被测区块链中获取发送的交易对应的测试数据。

上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。

综上所述,本申请通过测试设备与底层测试链的松耦合设计,涉及到测试设备与底层测试链的职能重拆分,即组网与启动等交由底层测试链完成、测试工具仅包括发送交易以及收集测试结果,生成测试报告;采用事后收集测试数据的方法,通过引入测试记录数据库,将两个独立的任务(发送交易、收集数据)有机的关联在一起;最后通过针对非侵入式的交互进行模块划分,确定接口类型。该方案能够降低测试人员的测试门槛,减少测试准备工作,将测试人员与开发人员的职能拆分,提高测试效率;并通过事后收集测试数据的方式,使得测试流程更加独立,减少流程间的干扰。

在另一个实施例中,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述区块链性能基准测试方法的步骤。

在另一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现所述区块链性能基准测试方法中的步骤。

图6为本发明实施例提供的电子设备的实体结构示意图。如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communicationsinterface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:

构造用于测试的交易;

从被测区块链中获取签名算法,对构造的交易进行签名;

将签名后的交易广播发送给被测区块链;

当用于测试的交易全部发送完成后,从所述被测区块链中获取发送的交易对应的测试数据。

此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1