首页 / 专利库 / 银行与财务事项 / 加密货币 / 比特币 / 一种区块链性能基准测试方法和装置

一种链性能基准测试方法和装置

阅读:1036发布:2020-05-26

专利汇可以提供一种链性能基准测试方法和装置专利检索,专利查询,专利分析的服务。并且本 申请 提供了一种 区 块 链 性能基准测试方法和装置,所述方法包括:从被测区块链中获取交易的格式,以及签名 算法 ;使用获取的格式构造用于测试的交易;使用获取的签名算法对构造的交易进行签名;将签名后的交易广播发送给被测区块链;从所述被测区块链中获取发送的交易对应的测试数据。通过非侵入式的区块链性能基准测试方案,能够在降低测试人员的测试 门 槛 ,提高测试效率的 基础 上,兼容多类型区块链的性能基准测试。,下面是一种链性能基准测试方法和装置专利的具体信息内容。

1.一种链性能基准测试方法,其特征在于,所述方法包括:
从被测区块链中获取交易的格式,以及签名算法
使用获取的格式构造用于测试的交易;
使用获取的签名算法对构造的交易进行签名;
将签名后的交易广播发送给被测区块链;
从所述被测区块链中获取发送的交易对应的测试数据。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
获取被测区块链的应用程序接口API信息,并根据获取的API信息虚拟构造交易接口、交易签名接口、交易广播接口、区块遍历接口和交易遍历接口
通过所述构造交易接口从被测区块链中获取交易的格式;
通过所述虚拟交易签名接口从被测区块链中获取签名算法;
通过所述交易广播接口向被测区块链广播发送签名后的交易;
通过所述区块遍历接口和所述交易遍历接口从所述被测区块链中获取发送的交易对应的测试数据;其中,通过所述区块遍历接口获取区块级别的测试数据,通过所述交易遍历接口获取交易级别的测试数据。
3.根据权利要求1或2所述的装置,其特征在于,
所述被测区块链为超级账本Hyperledger法波瑞克Fabric、比特币Bitcoin、或以太坊Ethereum区块链。
4.一种区块链性能基准测试装置,其特征在于,所述装置包括:交易构造签名模块、交易广播发送模块和交易结果收集模块;
所述交易构造签名模块,用于从被测区块链中获取交易的格式,以及签名算法;使用获取的格式构造用于测试的交易;使用获取的签名算法对构造的交易进行签名;
所述交易广播发送模块,用于将所述交易构造签名模块签名后的交易广播发送给被测区块链;
所述交易结果收集模块,用于从所述被测区块链中获取发送的交易对应的测试数据。
5.根据权利要求4所述的装置,其特征在于,所述交易构造签名模块包括交易构造单元和交易签名单元;
所述交易构造单元,用于从被测区块链中获取交易的格式,并根据获取的格式构造交易;
所述交易签名单元,用于从所述被测区块链中获取签名算法,对所述交易构造单元构造的交易签名。
6.根据权利要求4所述的装置,其特征在于,
所述交易构造签名模块,进一步用于获取被测区块链的应用程序接口API信息,并根据获取的API信息虚拟构造交易接口和虚拟交易签名接口,通过所述构造交易接口从被测区块链中获取交易的格式,通过所述虚拟交易签名接口从被测区块链中获取签名算法;
所述交易广播发送模块,进一步用于根据获取的API信息虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易;
所述交易结果收集模块,进一步用于根据获取的API信息虚拟区块遍历接口和交易遍历接口,通过所述区块遍历接口和所述交易遍历接口从所述被测区块链中获取发送的交易对应的测试数据。
7.根据权利要求4-6任一项所述的装置,其特征在于,
所述被测区块链为超级账本Hyperledger法波瑞克Fabric、比特币Bitcoin、或以太坊Ethereum区块链。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-3任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3任一项所述的方法。

说明书全文

一种链性能基准测试方法和装置

技术领域

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

背景技术

[0002] 开源的区块链性能基准测试工具比较出名的有Linux基金会下的Hpyerledger Caliper,该工具支持并兼容Hyperledger下的区块链平台,包括Fabric、Sawtooth、Iroha、Burrow的性能测试。
[0003] 有关现有的Caliper性能测试工具,架构上主要分为三个模块,即适配层(Adaptation Layer)、核心接口层(Interface&Core Layer)、基准测试层(Benchmark Layer)。
[0004] 现有的Caliper性能基准测试中,针对适配层的实现,包括提供各个测试链的适配器(Adaptor),目前Caliper提供了Fabric,Sawtooth、Iroha、Burrow。适配器需要针对链的组网方式,初始化步骤,依次编写相应的脚本。
[0005] 以主流的Fabric适配器举例,适配器部分需要编码生成组织关系和身份证书,启动排序节点与产生初始创世区块、创建交易通道、背书节点加入通道、安装并实例化链码等工作。
[0006] 现有技术针对不同链需要进行适配工作,存在如下问题:
[0007] 测试人员使用性能基准测试工具前,需要十分了解测试链的组网启动流程,即需要详细学习了解测试链的SDK文档、甚至需要了解测试链源码,才能很好的进行适配器层的开发,这对测试人员提出了很高要求;
[0008] 需要具有抽象能,划分并设计合理的测试链组网启动流程为多个模块,才能针对适配器层的研发进行多人协作;
[0009] 由于不同测试链的组网启动流程不同,测试前需要定制化对应的适配器、耦合化定制存在依赖测试链暴露的API,若编写语言层面存在差异,测试人员则需要学习新的编程语言,增加人工成本。

发明内容

[0010] 有鉴于此,本申请提供一种区块链性能基准测试方法和装置,能够在降低测试人员的测试槛,提高测试效率的基础上,兼容多类型区块链的性能基准测试。
[0011] 为解决上述技术问题,本申请的技术方案是这样实现的:
[0012] 在一个实施例中,提供了一种区块链性能基准测试方法,所述方法包括:
[0013] 从被测区块链中获取交易的格式,以及签名算法
[0014] 使用获取的格式构造用于测试的交易;
[0015] 使用获取的签名算法对构造的交易进行签名;
[0016] 将签名后的交易广播发送给被测区块链;
[0017] 从所述被测区块链中获取发送的交易对应的测试数据。
[0018] 其中,所述方法进一步包括:
[0019] 获取被测区块链的应用程序接口API信息,并根据获取的API信息虚拟构造交易接口、交易签名接口、交易广播接口、区块遍历接口和交易遍历接口
[0020] 通过所述构造交易接口从被测区块链中获取交易的格式;
[0021] 通过所述虚拟交易签名接口从被测区块链中获取签名算法;
[0022] 通过所述交易广播接口向被测区块链广播发送签名后的交易;
[0023] 通过所述区块遍历接口和所述交易遍历接口从所述被测区块链中获取发送的交易对应的测试数据;其中,通过所述区块遍历接口获取区块级别的测试数据,通过所述交易遍历接口获取交易级别的测试数据。
[0024] 其中,
[0025] 所述被测区块链为超级账本Hyperledger法波瑞克Fabric、比特币Bitcoin、或以太坊Ethereum区块链。
[0026] 在另一个实施例中,提供了一种区块链性能基准测试装置,所述装置包括:交易构造签名模块、交易广播发送模块和交易结果收集模块;
[0027] 所述交易构造签名模块,用于从被测区块链中获取交易的格式,以及签名算法;使用获取的格式构造用于测试的交易;使用获取的签名算法对构造的交易进行签名;
[0028] 所述交易广播发送模块,用于将所述交易构造签名模块签名后的交易广播发送给被测区块链;
[0029] 所述交易结果收集模块,用于从所述被测区块链中获取发送的交易对应的测试数据。
[0030] 其中,所述交易构造签名模块包括交易构造单元和交易签名单元;
[0031] 所述交易构造单元,用于从被测区块链中获取交易的格式,并根据获取的格式构造交易;
[0032] 所述交易签名单元,用于从所述被测区块链中获取签名算法,对所述交易构造单元构造的交易签名。
[0033] 其中,
[0034] 所述交易构造签名模块,进一步用于获取被测区块链的应用程序接口API信息,并根据获取的API信息虚拟构造交易接口和虚拟交易签名接口,通过所述构造交易接口从被测区块链中获取交易的格式,通过所述虚拟交易签名接口从被测区块链中获取签名算法;
[0035] 所述交易广播发送模块,进一步用于根据获取的API信息虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易;
[0036] 所述交易结果收集模块,进一步用于根据获取的API信息虚拟区块遍历接口和交易遍历接口,通过所述区块遍历接口和所述交易遍历接口从所述被测区块链中获取发送的交易对应的测试数据。
[0037] 其中,
[0038] 所述被测区块链为超级账本Hyperledger法波瑞克Fabric、比特币Bitcoin、或以太坊Ethereum区块链。
[0039] 在另一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述区块链性能基准测试方法的步骤。
[0040] 在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述区块链性能基准测试方法的步骤。
[0041] 由上面的技术方案可见,上述实施例中采用松耦合的方式将区块链性能基准测试与区块链的底层测试链拆分,通过构造、签名交易,并向被测试区块链发送签名后的交易,从被测试区块链中收集发送交易对应的测试数据实现区块链性能基准测试;而被测试的区块链的底层测试链自行起链(不依赖任何测试工具的配置),接收交易并处理交易即可。通过非侵入式的区块链性能基准测试方案,能够在降低测试人员的测试门槛,提高测试效率的基础上,兼容多类型区块链的性能基准测试。附图说明
[0042] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043] 图1为本申请实施例中区块链性能基准测试流程示意图;
[0044] 图2为本申请实施例中应用于上述技术的装置结构示意图;
[0045] 图3为本申请实施例中测试装置与被测试区块链的底层测试链交互的示意图;
[0046] 图4为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

[0047] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0048] 下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0049] 本申请实施例中提供一种区块链性能基准测试方法,采用松耦合的方式将区块链性能基准测试与区块链的底层测试链拆分,通过构造、签名交易,并向被测试区块链发送签名后的交易,从被测试区块链中收集发送交易对应的测试数据实现区块链性能基准测试;而被测试的区块链的底层测试链自行起链(不依赖任何测试工具的配置),接收交易并处理交易即可。通过非侵入式的区块链性能基准测试方案,能够在降低测试人员的测试门槛,提高测试效率的基础上,兼容多类型区块链的性能基准测试。
[0050] 本申请实施例中提供的区块链性能基准测试方法应用于一测试设备上,该测试设备可以为一台具有交易构造、数据收发的功能即可,具体实现时可以为一台PC等。
[0051] 下面结合附图,详细说明本申请实施例中区块链性能基准测试过程。
[0052] 参见图1,图1为本申请实施例中区块链性能基准测试流程示意图。具体步骤为:
[0053] 步骤101,测试设备从被测区块链中获取交易的格式,以及签名算法。
[0054] 本实施例中构造的用于测试的交易的格式需要符合被测试区块链能够处理的交易的格式,签名算法也需要与被测区块链的签名算法相匹配。
[0055] 被测试的区块链可以为超级账本法波瑞克(Hyperledger Fabric)、比特币(Bitcoin)、以太坊(Ethereum)区块链等类型的区块链,对于其它已存在的类型区块链,或新增类型区块链,本申请提供的区块链性能基准测试仍然适用。
[0056] 本申请实施例中在具体实现时,需要获取被测区块链中的应用程序接口(API)信息,根据获取的API信息虚拟构造交易接口,通过所述构造交易接口从被测区块链中获取交易的格式;
[0057] 根据获取的API信息虚拟交易签名接口,通过所述虚拟交易签名接口从被测区块链中获取签名算法,即查阅被测区块链的SDK文档中的相关签名部分即可获得。
[0058] API信息可以从被测试区块链的SDK文档中获取,也可以是其他方式获取到测试设备上并存储,还可以是根据被测区块链的类型直接在测试设备上配置,本申请实施例中对此不进行限制。
[0059] API信息中包含被测区块链可以与测试设备交互的接口,测试设备虚拟出对应的接口与被测区块链进行数据交互。
[0060] 步骤102,该测试设备使用获取的格式构造用于测试的交易。
[0061] 测试哪种类型的区块链按照对应区块链处理的交易的格式进行交易的构造。
[0062] 步骤103,该测试设备使用获取的签名算法对构造的交易进行签名。
[0063] 测试哪种类型的区块链按照对应区块链的签名算法对交易进行签名。
[0064] 步骤104,该测试设备将签名后的交易广播发送给被测区块链。
[0065] 该测试设备根据API信息还虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易。
[0066] 具体实现时,测试设备将签名后的交易广播到区块链节点上。
[0067] 被测区块链接收到测试设备广播的交易后,共节点进行校验以及网络共识同步上链。
[0068] 步骤105,该测试设备从所述被测区块链中获取发送的交易对应的测试数据。
[0069] 在具体实现时,根据API信息虚拟区块遍历接口和交易遍历接口;通过所述区块遍历接口和所述交易遍历接口从所述被测区块链中获取发送的交易对应的测试数据;其中,通过所述区块遍历接口获取区块级别的测试数据,通过所述交易遍历接口获取交易级别的测试数据。
[0070] 这里从所述被测区块链中获取发送的交易对应的测试数据的时机可以是实时获取,也可以是用于测试的交易发送完成后,即针对该被测区块链当前测试用的交易发送完毕后,再统一从被测试区块链中获取发送的交易对应的所有测试数据。
[0071] 如果是事后收集,则需要以交易的哈希值为映射值将发送交易时的发送信息与收集的交易的数据绑定为一条交易的信息。
[0072] 本申请实施例中采用松耦合的方式将区块链性能基准测试与区块链的底层测试链拆分,通过构造、签名交易,并向被测试区块链发送签名后的交易,从被测试区块链中收集发送交易对应的测试数据实现区块链性能基准测试;而被测试的区块链的底层测试链自行起链(不依赖任何测试工具的配置),接收交易并处理交易即可。该方法通过非侵入式的区块链性能基准测试方案(不需要了解测试链底层组网启动流程,针对已启动的测试链直接进行测试),能够在降低测试人员的测试门槛,减少适配的代码开发的工作量,提高测试效率的基础上,兼容多类型区块链的性能基准测试。
[0073] 基于同样的发明构思,本申请实施例还提供一种区块链性能基准测试装置。参见图2,图2为本申请实施例中应用于上述技术的装置结构示意图。所述装置包括:交易构造签名模块201、交易广播发送模块202和交易结果收集模块203;
[0074] 交易构造签名模块201,用于从被测区块链中获取交易的格式,以及签名算法;使用获取的格式构造用于测试的交易;使用获取的签名算法对构造的交易进行签名;
[0075] 交易广播发送模块202,用于将交易构造签名模块201签名后的交易广播发送给被测区块链;
[0076] 交易结果收集模块203,用于从所述被测区块链中获取发送的交易对应的测试数据。
[0077] 优选地,交易构造签名模块201包括:交易构造单元211和交易签名单元221;
[0078] 交易构造单元211,用于从被测区块链中获取交易的格式,并根据获取的格式构造交易;
[0079] 交易签名单元221,用于从所述被测区块链中获取签名算法,对所述交易构造单元构造的交易签名。
[0080] 优选地,本申请实施例中测试装置通过虚拟接口与被测试区块链的底层测试链交互。
[0081] 参见图3,图3为本申请实施例中测试装置与被测试区块链的底层测试链交互的示意图。
[0082] 交易构造签名模块201,进一步用于获取被测区块链的应用程序接口API信息,并根据获取的API信息虚拟构造交易接口和虚拟交易签名接口,通过所述构造交易接口从被测区块链中获取交易的格式,通过所述虚拟交易签名接口从被测区块链中获取签名算法;
[0083] 其中,构造交易接口可以由交易构造单元211虚拟;
[0084] 交易签名接口可以由交易签名单元221虚拟。
[0085] 交易广播发送模块202,进一步用于根据获取的API信息虚拟交易广播接口,通过所述交易广播接口向被测区块链广播发送签名后的交易;
[0086] 交易结果收集模块203,进一步用于根据获取的API信息虚拟区块遍历接口和交易遍历接口,通过所述区块遍历接口和所述交易遍历接口从所述被测区块链中获取发送的交易对应的测试数据。
[0087] 优选地,所述被测区块链为超级账本Hyperledger法波瑞克Fabric、比特币Bitcoin、或以太坊Ethereum区块链。
[0088] 上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0089] 综上所述,本申请通过将测试设备与被测链尽可能的松耦合,仅保留必要交互逻辑实现。由此为测试工具提取出来三大交互模块,即交易构造签名模块、交易广播发送模块、交易结果收集模块。明确三大模块中测试工具需要对接的接口,测试工具均暴露出来方便测试人员快速的兼容补充,同时提供标准化实现样例,为测试链在源码层面的适配提供可能。
[0090] 在另一个实施例中,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述区块链性能基准测试方法的步骤。
[0091] 在另一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现所述区块链性能基准测试方法中的步骤。
[0092] 图4为本发明实施例提供的电子设备的实体结构示意图。如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行如下方法:
[0093] 从被测区块链中获取交易的格式,以及签名算法;
[0094] 使用获取的格式构造用于测试的交易;
[0095] 使用获取的签名算法对构造的交易进行签名;
[0096] 将签名后的交易广播发送给被测区块链;
[0097] 从所述被测区块链中获取发送的交易对应的测试数据。
[0098] 此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0099] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0100] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0101] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈