CN109542781B - 区块链共识算法测试方法、装置、计算装置和存储介质 - Google Patents

区块链共识算法测试方法、装置、计算装置和存储介质 Download PDF

Info

Publication number
CN109542781B
CN109542781B CN201811354913.8A CN201811354913A CN109542781B CN 109542781 B CN109542781 B CN 109542781B CN 201811354913 A CN201811354913 A CN 201811354913A CN 109542781 B CN109542781 B CN 109542781B
Authority
CN
China
Prior art keywords
case
test
block chain
test case
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811354913.8A
Other languages
English (en)
Other versions
CN109542781A (zh
Inventor
余兴华
殷舒
刘胜
吴锋海
陈正
徐加明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Union Mobile Pay Co Ltd
Original Assignee
Union Mobile Pay Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Union Mobile Pay Co Ltd filed Critical Union Mobile Pay Co Ltd
Priority to CN201811354913.8A priority Critical patent/CN109542781B/zh
Publication of CN109542781A publication Critical patent/CN109542781A/zh
Application granted granted Critical
Publication of CN109542781B publication Critical patent/CN109542781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请公开了一种区块链共识算法测试方法、装置、计算装置和存储介质,涉及区块链领域,用以解决通过修改区块链主节点或参与共识节点的代码,判断该区块链的共识算法容错能力的问题。该方法中,通过为区块链节点配置中间节点,使得在中间节点内生成测试用例集,无需对区块链节点进行修改,让测试更简单,更容易操作,还可以保证服务上线后不用担心代码是否被改过。此外,该方式入侵性小,学习成本低,可以适用于不同区块链的不同类型的区块链共识算法测试。

Description

区块链共识算法测试方法、装置、计算装置和存储介质
技术领域
本发明涉及区块链领域,尤其涉及一种区块链共识算法测试方法、装置、计算装置和存储介质。
背景技术
区块链共识算法是允许关联节点连接起来进行工作,并在某些成员节点失效的情况下,工作仍能正常进行。这种容错能力是区块链的主要优势,并有内置冗余余量以作备用。为了测试区块链共识算法容错能力,通常做法是修改节点进行错误注入法测试,如图1所示,接收客户端发送共识请求消息的节点为主节点,即节点四为区块链主节点,节点一和节点二为参与共识的节点,修改区块链主节点或参与共识节点的代码,用以判断该区块链的共识算法容错能力。然而通过错误注入法进行测试,需要修改节点中的代码逻辑、并对各节点进行定制开发,由于定制开发,将导致代码复用率低,开发成本大,此外,修改代码逻辑的节点要是程序员忘记关闭节点代码开关,容易测试代码上线造成上线失败,或带来线上未知的风险,使得维护成本高。
发明内容
本申请实施例提供一种区块链共识算法测试的方法、装置、计算装置和存储介质,通过为区块链节点配置中间节点,使得在中间节点内生成测试用例集,无需对区块链节点进行修改,让测试更简单,更容易操作,还可以保证服务上线后不用担心代码是否被改过。此外,该方式入侵性小,学习成本低,可以适用于不同区块链的不同类型的区块链共识算法测试。
第一方面,本申请实施例提供一种区块链共识算法测试的方法,该方法包括:
中间节点通过预置的密钥接收区块链节点发送的共识请求;
对所述共识请求进行解析,得到请求用例;
根据测试用例集和请求用例之间的关系,确定得到的请求用例对应的测试用例集,具体包括:
通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一;将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例;将测试用例集一和测试用例集二的并集作为测试用例集;
通过路由管理确定各目的IP地址,并从路由表中查找各目的IP地址对应的路由信息;
根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点;
接收各目的IP地址对应的区块链节点返回的执行报告,并保存到本身的报告列表中。
第二方面,本申请实施例提供一种区块链共识算法测试的装置,该装置包括:
第一接收模块,用于通过预置的密钥接收区块链节点发送的共识请求;
解析模块,用于对所述共识请求进行解析,得到请求用例;
确定模块,用于根据测试用例集和请求用例之间的关系,确定得到的请求用例对应的测试用例集,具体包括:
通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一;将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例;将测试用例集一和测试用例集二的并集作为测试用例集;
查找模块,用于通过路由管理确定各目的IP地址,并从路由表中查找各目的IP地址对应的路由信息;
透传模块,用于根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点;
第二接收模块,用于接收各目的IP地址对应的区块链节点返回的执行报告,并保存到本身的报告列表中。
第三方面,本申请另一实施例还提供了一种计算装置,包括至少一个处理器;以及;
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的一种区块链共识算法测试的方法。
第四方面,本申请另一实施例还提供了一种计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的一种区块链共识算法测试的方法。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为背景技术中的区块链共识算法测试的错误注入法示意图;
图2为本申请实施例中区块链共识算法测试的中间节点示意图;
图3为本申请实施例中区块链共识算法测试方法的流程示意图;
图4为本申请实施例中区块链共识算法测试的结构示意图;
图5为根据本申请实施方式的计算装置的结构示意图。
具体实施方式
为了解决上述问题,本申请实施例中提供一种区块链共识算法测试方法。为了更好的理解本申请实施例提供的技术方案,这里对该方案的基本原理做一下简单说明:
如图2所示,在节点一、节点二、节点三和节点四之间配置一个中间节点,节点一接收客户端发送的共识请求,即节点一为主节点,中间节点接收到节点一发送的共识请求并对其进行解析,得到请求用例,以及目的IP(Internet Protocol Address,网际协议)地址,并对解析后的请求用例进行处理,得到测试用例集。通过中间节点确定节点二和节点三的目的IP(Internet Protocol Address,网际协议)地址,将测试用例集透传给目的IP地址对应的节点二和节点三,并收集节点二和节点三发送的节点二和节点三对于测试用例集的执行报告。
下面通过具体实施例从中间节点侧对区块链共识算法测试方法做进一步说明。图3为区块链共识算法测试方法的流程示意图,包括以下步骤:
步骤301:中间节点通过预置的密钥接收区块链节点发送的共识请求。
步骤302:对所述共识请求进行解析,得到请求用例。
其中,通过解析得到的请求数据中包括但不限于:请求的具体操作、请求时客户端追加的时间戳、请求包含消息内容、消息摘要、客户端对请求进行签名、主节点分配的编号、对请求进行排序的序号、主节点签名、参与共识节点编号、参与共识节点签名、记录共识消息、预准备状态、准备状态、确认状态等信息。其中,客户端将共识请求发送给区块链主节点,并由区块链主节点发送给中心节点。
步骤303:根据测试用例集和请求用例之间的关系,确定得到的请求用例对应的测试用例集。
步骤304:通过路由管理确定各目的IP地址,并从路由表中查找各目的IP地址对应的路由信息。
步骤305:根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点。
其中,中间节点与多个区块链节点连接,通过路由管理可以确定参与共识节点的各目的IP地址,根据路由表找到与确定的目的地址对应的区块链节点,可以有效的进行通讯。
步骤306:接收各目的IP地址对应的区块链节点返回的执行报告,并保存到本身的报告列表中。
这样,通过中间节点生成测试用例集对区块链共识算法的容错能力进行测试,无需对区块链节点进行修改,让测试更简单,更容易操作,还可以保证服务上线后不用担心代码是否被改过。此外,该方式入侵性小,学习成本低,可以适用于不同区块链的不同类型的区块链共识算法测试。同时,通过中间节点选择目的IP地址,并根据选择的目的IP地址确定参与共识的区块链节点,可以更好地根据各区块链节点的负载情况进行分配。
在本申请实施例中,将请求用例生成为测试用例集,具体可实施为步骤A1-A3:
步骤A1:通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一。
其中,通过遗传算法生成的测试用例集,仅改变的是请求用例中的数据参数。
步骤A2:将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括不限于:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例。
步骤A3:将测试用例集一和测试用例集二的并集作为测试用例集。
其中,环境错误规则用例包括不限于:CPU(中央处理器)错误(如:CPU利用率高、CPU load average(平均负载)繁忙)、内存错误(如:内存资源高)、IO(输入输出)错误(如:磁盘读写错误)、线程锁、网络错误等。
共识算法消息规则用例包括不限于:消息重放、消息篡改、任意节点错误响应、任意节点发送不同的消息请求、双花交易、消息乱序等。
共识算法角色规则用例包括不限于:主节点、参与共识的节点、不参与共识节点三种角色。
共识状态规则用例包括不限于:预准备(pre-prepare)、准备(prepare)和确认(commit)。
因此,组合匹配的测试用例集除了仅改变请求用例中数据参数的测试用例,还包括改变请求用例要求的测试用例。当根据用例规则库组合匹配测试用例集时,根据用例规则库中的用例类型将请求用例中的环境、消息、角色和状态任意一种进行改变,得到测试用例。例如,若请求用例中的状态信息为预准备状态,可以将该请求数据修改为确认状态,得到测试用例,并收集该测试用例的执行结果,以确认该区块链共识算法的容错能力。
需要说明的是,环境错误规则用例可以与其他用例类型一起进行测试。如:若请求数据中的状态信息为预准备状态,环境为正常环境,可以将该请求数据修改为确认状态,并在内存错误(如:内存资源高)的环境下执行,并收集测试用例的执行结果。
这样,将请求用例和用例类型进行组合匹配,自动得到测试用例集可以让测试更简单,更容易操作。
在一个实施例中,生成的测试用例可以是既通过遗传算法对请求用例的数据参数进行改变,又通过用例规则库组合匹配改变请求用例的要求。
在一个实施例中,用例规则库中的测试用例规则可以增加或删除,并实时生效。这样,实现了用例规则库可以动态实时的增加测试用例,且便于操作。
为了使生成的测试用例集可以更全面的覆盖所有情况,在本申请实施例中提出了一种方法用来生成测试用例集,具体可实施为:通过Pairwise算法对得到的请求用例和用例规则库中的用例类型进行组合,生成测试用例集二。
这样,通过此方法可以使生成的测试用例能够全面覆盖各种异常情况,可以更好地检验***的容错性。
除了上述生成测试用例集的方法,也可以通过其他方法来生成。在一个实施例中,通过遗传算法中的交叉算子将请求用例与规则用例库进行组合匹配生成测试用例集。需要说明的是,将请求用例与规则用例库进行组合匹配生成测试用例集包含但不限于上述两种方法。
上述对如何生成测试用例集以及如何将测试用例集发送给相应参与共识区块链节点进行了详细的介绍。下面对将测试用例集发送给各目的IP地址对应的区块链节点进行进一步的说明。
若中心节点接收到区块链节点发送的共识请求含有签名,则根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点之前,需要对生成的测试用例集进行重新签名,具体可实施为:若接收到的共识请求含有签名,则使用预置的密钥对测试用例集重新签名。
这样,通过验证签名是否正确,确保测试用例集的安全性。
在一个实施例中,若中间节点接收到区块链节点发送的共识请求没有签名,也可以在生成测试用例集时,通过用例规则库,生成含有签名的测试用例。这样,可以验证该区块链共识算法的容错能力。
在本申请实施例中,接收各目的IP地址对应的区块链节点返回的执行报告时需要逐一的接收测试用例集中的测试用例的测试报告。针对各目的IP地址对应的区块链节点,具体可实施为步骤B1-B2:
步骤B1:接收该区块链节点返回的测试用例的测试报告,所述测试报告为该区块链节点逐一执行测试用例集中的测试用例时每执行完一个测试用例后发送的。
步骤B2:将该区块链节点返回的测试用例集中的各测试用例的测试报告的并集作为该区块链节点的执行报告。
其中,执行报告为每条测试用例执行的结果以及该结果与预期结果相比是否相同。
这样,其他区块链节点每执行完一条测试用例,就返回一条测试结果,可以提高区块链节点的工作效率。
在本申请实施例中,将执行报告保存到中间节点中,这样,将各节点的执行报告保存到中间节点的报告列表中,可以便于查看报告内容。
基于相同的发明构思,本申请实施例还提供一种区块链共识算法测试的装置。如图4所示,该装置包括:
第一接收模块401,用于通过预置的密钥接收区块链节点发送的共识请求;
解析模块402,用于对所述共识请求进行解析,得到请求用例;
确定模块403,用于根据测试用例集和请求用例之间的关系,确定得到的请求用例对应的测试用例集;
查找模块404,用于通过路由管理确定各目的IP地址,并从路由表中查找各目的IP地址对应的路由信息;
透传模块405,用于根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点;
第二接收模块406,用于接收各目的IP地址对应的区块链节点返回的执行报告,并保存到本身的报告列表中。
进一步的,确定模块403包括:
第一生成单元,用于通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一;
第二生成单元,用于将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括不限于:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例;
进一步的,第二生成单元包括:
生成子单元,用于通过Pairwise算法对得到的请求用例和用例规则库中的用例类型进行组合,生成测试用例集二。
进一步的,透传模块405根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点之前,所述装置还包括:
签名单元,用于若接收到的共识请求含有签名,则使用预置的密钥对测试用例集重新签名。
进一步的,第二接收模块405包括:
接收单元,用于针对各目的IP地址对应的区块链节点,接收该区块链节点返回的测试用例的测试结果,所述测试结果为该区块链节点逐一执行测试用例集中的测试用例时每执行完一个测试用例后发送的;
第二合并单元,用于将该区块链节点返回的测试用例集中的各测试用例的测试结果的并集作为该区块链节点的执行结果。
在介绍了本申请示例性实施方式的链路聚合方法及装置之后,接下来,介绍根据本申请的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为***、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本申请的实施例,计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的区块链共识算法测试方法中的步骤301-305。
下面参照图5来描述根据本申请的这种实施方式的计算装置50。图5显示的计算装置50仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。该计算装置例如可以是手机、平板电脑等。
如图5所示,计算装置50以通用计算装置的形式表现。计算装置50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同***组件(包括存储器52和处理器51)的总线53。
总线53表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器52可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)521和/或高速缓存存储器522,还可以进一步包括只读存储器(ROM)523。
存储器52还可以包括具有一组(至少一个)程序模块524的程序/实用工具525,这样的程序模块524包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置50也可以与一个或多个外部设备54(例如指向设备等)通信,还可与一个或者多个使得用户能与计算装置50交互的设备通信,和/或与使得该计算装置50能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口55进行。并且,计算装置50还可以通过网络适配器56与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与用于计算装置50的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
在一些可能的实施方式中,本申请提供的区块链共识算法测试方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的区块链共识算法测试方法中的步骤,执行如图3中所示的步骤301-305。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施方式的区块链共识算法测试的可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (9)

1.一种区块链共识算法测试方法,其特征在于,所述方法包括:
中间节点通过预置的密钥接收区块链节点发送的共识请求;
对所述共识请求进行解析,得到请求用例;
根据测试用例集和请求用例之间的关系,确定得到的请求用例对应的测试用例集,具体包括:
通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一;将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例;将测试用例集一和测试用例集二的并集作为测试用例集;
通过路由管理确定各目的IP地址,并从路由表中查找各目的IP地址对应的路由信息;
根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点;
接收各目的IP地址对应的区块链节点返回的执行报告,并保存到本身的报告列表中。
2.如权利要求1所述的方法,其特征在于,所述将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二,具体包括:
通过Pairwise算法对得到的请求用例和用例规则库中的用例类型进行组合,生成测试用例集二。
3.如权利要求1所述的方法,其特征在于,所述根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点之前,所述方法还包括:
若接收到的共识请求含有签名,则使用预置的密钥对测试用例集重新签名。
4.如权利要求1所述的方法,其特征在于,所述接收各目的IP地址对应的区块链节点返回的执行报告,具体包括:
针对各目的IP地址对应的区块链节点,执行:
接收该区块链节点返回的测试用例的测试报告,所述测试报告为该区块链节点逐一执行测试用例集中的测试用例时每执行完一个测试用例后发送的;
将该区块链节点返回的测试用例集中的各测试用例的测试报告的并集作为该区块链节点的执行报告。
5.一种区块链共识算法测试装置,其特征在于,所述装置包括:
第一接收模块,用于通过预置的密钥接收区块链节点发送的共识请求;
解析模块,用于对所述共识请求进行解析,得到请求用例;
确定模块,用于根据测试用例集和请求用例之间的关系,确定得到的请求用例对应的测试用例集,具体包括:
通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一;将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例;将测试用例集一和测试用例集二的并集作为测试用例集;
查找模块,用于通过路由管理确定各目的IP地址,并从路由表中查找各目的IP地址对应的路由信息;
透传模块,用于根据各路由信息将测试用例集透传给各目的IP地址对应的区块链节点;
第二接收模块,用于接收各目的IP地址对应的区块链节点返回的执行报告,并保存到本身的报告列表中。
6.如权利要求5所述的装置,其特征在于,所述确定模块包括:
第一生成单元,用于通过遗传算法对得到的请求用例中的数据参数进行改变,生成测试用例集一;
第二生成单元,用于将得到的请求用例和用例规则库中的用例类型进行组合匹配,生成测试用例集二;其中,用例规则库中的用例类型包括:环境错误规则用例、共识算法消息规则用例、共识算法角色规则用例、共识状态规则用例;
第一合并单元,用于将测试用例集一和测试用例集二的并集作为测试用例集。
7.如权利要求5所述的装置,其特征在于,所述第二接收模块包括:
接收单元,用于针对各目的IP地址对应的区块链节点,接收该区块链节点返回的测试用例的测试结果,所述测试结果为该区块链节点逐一执行测试用例集合中的测试用例时每执行完一个测试用例后发送的;
第二合并单元,用于将该区块链节点返回的测试用例集合中的各测试用例的测试结果的并集作为该区块链节点的执行结果。
8.一种计算机终端可读介质,存储有计算机终端可执行指令,其特征在于,所述计算机终端可执行指令用于执行如权利要求1-4中任一权利要求所述的方法。
9.一种计算装置,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4中任一权利要求所述的方法。
CN201811354913.8A 2018-11-14 2018-11-14 区块链共识算法测试方法、装置、计算装置和存储介质 Active CN109542781B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811354913.8A CN109542781B (zh) 2018-11-14 2018-11-14 区块链共识算法测试方法、装置、计算装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811354913.8A CN109542781B (zh) 2018-11-14 2018-11-14 区块链共识算法测试方法、装置、计算装置和存储介质

Publications (2)

Publication Number Publication Date
CN109542781A CN109542781A (zh) 2019-03-29
CN109542781B true CN109542781B (zh) 2021-11-05

Family

ID=65847728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811354913.8A Active CN109542781B (zh) 2018-11-14 2018-11-14 区块链共识算法测试方法、装置、计算装置和存储介质

Country Status (1)

Country Link
CN (1) CN109542781B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069413B (zh) * 2019-04-22 2020-11-24 苏州亿歌网络科技有限公司 测试数据通信、测试方法、装置、设备及存储介质
CN110162470B (zh) * 2019-04-28 2023-08-18 创新先进技术有限公司 一种区块链的测试方法和装置
CN111464335B (zh) * 2020-03-10 2021-04-23 北京邮电大学 一种内生可信网络的服务智能定制方法及***
CN113411232A (zh) * 2021-06-16 2021-09-17 深圳大学 一种区块链仿真测试***及应用服务器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105790954A (zh) * 2016-03-02 2016-07-20 布比(北京)网络技术有限公司 一种构建电子证据的方法和***
CN106101242A (zh) * 2016-06-24 2016-11-09 深圳前海微众银行股份有限公司 区块链云服务平台的构建方法和装置
CN106100981A (zh) * 2016-08-22 2016-11-09 布比(北京)网络技术有限公司 社交网络数据交互方法及装置
DE102016206916A1 (de) * 2016-04-22 2017-10-26 Bundesdruckerei Gmbh Elektronisches Verfahren zur kryptographisch gesicherten Überweisung eines Betrags einer Kryptowährung
CN107943691A (zh) * 2017-11-17 2018-04-20 深圳圣马歌科技有限公司 一种自动产生智能合约的功能测试页面的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105790954A (zh) * 2016-03-02 2016-07-20 布比(北京)网络技术有限公司 一种构建电子证据的方法和***
DE102016206916A1 (de) * 2016-04-22 2017-10-26 Bundesdruckerei Gmbh Elektronisches Verfahren zur kryptographisch gesicherten Überweisung eines Betrags einer Kryptowährung
CN106101242A (zh) * 2016-06-24 2016-11-09 深圳前海微众银行股份有限公司 区块链云服务平台的构建方法和装置
CN106100981A (zh) * 2016-08-22 2016-11-09 布比(北京)网络技术有限公司 社交网络数据交互方法及装置
CN107943691A (zh) * 2017-11-17 2018-04-20 深圳圣马歌科技有限公司 一种自动产生智能合约的功能测试页面的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
区块链的共识机制;C站训练营学员C站训练营学员C站训练营营;《https://blog.csdn.net/cpongo3/article/details/89032069》;20180828;第1-3页 *

Also Published As

Publication number Publication date
CN109542781A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN109542781B (zh) 区块链共识算法测试方法、装置、计算装置和存储介质
CN109508295B (zh) 区块链共识算法测试方法、装置、计算装置和存储介质
CN109361740B (zh) 一种区块链的区块生成方法、装置、设备和介质
CN112073269B (zh) 区块链网络测试方法、装置、服务器及存储介质
CN108696589B (zh) 区块链数据传输方法、装置、设备和存储介质
CN106911648B (zh) 一种环境隔离方法及设备
CN112737800B (zh) 服务节点故障定位方法、调用链生成方法及服务器
CN110851471A (zh) 分布式日志数据处理方法、装置以及***
CN110995825B (zh) 一种智能合约的发布方法、智能节点设备及存储介质
US10296431B2 (en) Generation of debugging log list in a blade server environment
CN104598341A (zh) 用于确定在互连/控制器之间的故障的位置的方法和***
CN111899019A (zh) 一种黑名单多方交叉验证和共享的方法及***
CN104283780A (zh) 建立数据传输路径的方法和装置
CN111949531A (zh) 区块链网络的测试方法、装置、介质及电子设备
CN106126419A (zh) 一种应用程序的调试方法及装置
KR20170122874A (ko) 데이터 분산 서비스 기반의 응용 시스템의 통합 로그 관리 장치
CN113689296B (zh) 一种异步可信计算的合约调度方法、装置和电子设备
CN115099670A (zh) 换电站管理方法、装置、电子设备及存储介质
CN111917812B (zh) 数据的传输控制方法、装置、设备以及存储介质
CN113242292A (zh) 报文传输方法、装置、设备、介质及产品
CN111654547A (zh) 数据传输方法、装置、设备及存储介质
CN112953783A (zh) 卫星链路状态检测方法、装置、服务器及存储介质
CN114640572B (zh) 数据容灾的处理方法、装置、设备及计算机可读存储介质
CN114710400B (zh) 故障设备定位方法、装置、电子设备和介质
CN115567557B (zh) 工业数据的多目标报送方法、装置及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant