CN117240739A - 共识算法的测试方法、装置、电子设备及存储介质 - Google Patents
共识算法的测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117240739A CN117240739A CN202210638303.0A CN202210638303A CN117240739A CN 117240739 A CN117240739 A CN 117240739A CN 202210638303 A CN202210638303 A CN 202210638303A CN 117240739 A CN117240739 A CN 117240739A
- Authority
- CN
- China
- Prior art keywords
- consensus
- test
- block
- algorithm
- consensus algorithm
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 260
- 238000000034 method Methods 0.000 title claims abstract description 175
- 230000008569 process Effects 0.000 claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000004088 simulation Methods 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 22
- 238000011056 performance test Methods 0.000 claims description 9
- 238000007639 printing Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 abstract description 26
- 238000010586 diagram Methods 0.000 description 19
- 238000010998 test method Methods 0.000 description 18
- 238000010276 construction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种共识算法的测试方法、装置、电子设备及存储介质,模拟生成待共识的区块,所述区块中含有预设数量的虚拟交易;基于共识节点网络中配置的共识算法对所述区块进行共识处理,并在所述区块通过共识处理后模拟进行所述区块的上链存储;根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果。本申请实施例的技术方案通过模拟生成区块以及模拟区块的上链存储,以在共识算法测试过程中完整保留共识算法运行过程的性能消耗,且减少其他功能的性能消耗,最终得到准确的共识算法测试结果。
Description
技术领域
本申请涉及安全网络技术领域,具体而言,涉及一种共识算法的测试方法、装置、电子设备及存储介质。
背景技术
目前对区块链共识算法性能的测试一般需要一套完整的区块链运行流程,即通过区块链完成一个区块的处理周期,然后对区块处理过程中产生的数据进行共识算法的测试。但这种需要区块链完整参与区块处理的共识算法测试方法必须依赖于功能完整的区块链,区块链成本较大,且区块链中的功能实现过多,其他功能模块会对共识算法的实现功能模块进行干扰,当区块链无法正常运行时,无法判断是共识算法导致区块链无法运行还是其他功能模块导致区块链无法运行,因此无法准确获取测试结果;另一方面,该方法在对测试算法的测试过程中,区块链的其他功能模块也参与测试运行,同样会造成性能消耗,因此最终得到的测试过程数据实质是整个区块链的性能数据,无法准确反映共识算法的性能。
发明内容
为解决上述技术问题,本申请的实施例提供了一种共识算法的测试方法及装置、电子设备、计算机可读存储介质、计算机程序产品。
根据本申请实施例的一个方面,提供了一种共识算法的测试方法,模拟生成待共识的区块,所述区块中含有预设数量的虚拟交易;基于共识节点网络中配置的共识算法对所述区块进行共识处理,并在所述区块通过共识处理后模拟进行所述区块的上链存储;根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果。
根据本申请实施例的一个方面,提供了一种共识算法的测试装置,共识区块生成模块,配置为模拟生成待共识的区块,所述区块中含有预设数量的虚拟交易;共识模块,配置为基于共识节点网络中配置的共识算法对所述区块进行共识处理,并在所述区块通过共识处理后模拟进行所述区块的上链存储;测试结果生成模块,配置为根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果。
在一实施例中,共识算法的测试装置还包括:
共识节点配置模块,配置为根据预先加载的配置数据配置固定数量的共识节点;
共识节点网络配置模块,配置为建立各共识节点之间的通信连接,并基于所述配置数据为各共识节点配置所述共识算法,以得到由各共识节点组成的所述共识节点网络。
在一实施例中,所述配置数据包括运行模式信息,所述运行模式信息包括多进程模式信息;共识节点配置模块包括:
进程创建单元,配置为基于所述多进程模式信息中包含的进程数量信息在服务器中创建固定数量的进程;
第一共识节点获取单元,配置为将创建得到的进程作为共识节点;其中,所述共识节点之间的通信连接实现为进程间的通信连接。
在一实施例中,所述配置数据包括运行模式信息,所述运行模式信息包括单节点模式信息,所述单节点模式信息包括多个服务器的地址信息;共识节点配置模块包括:
配置数据发送单元,配置为基于所述多个服务器的地址信息向对应服务器发送所述配置数据,以使所述多个服务器根据所述配置数据进行所述共识节点网络的构建;
第二共识节点获取单元,配置为将多个服务器分别确定为共识节点;其中,所述共识节点之间通过对应服务器的地址信息进行通信。
在一实施例中,共识算法的测试装置还包括:
测试模型获取模块,配置为获取预先配置的测试模型,所述测试模型含有待共识的区块的数量信息;
第一测试模型处理模块,配置为启动所述测试模型,以基于所述测试模型执行模拟生成对应数量的区块,并基于所述共识节点网络中配置的共识算法分别对各区块进行共识处理,并在各区块通过共识处理后模拟进行相应区块的上链存储的步骤。
在一实施例中,所述预先配置的测试模型的数量为多个,且多个测试模型之间具有先后执行顺序;该共识算法的测试装置还包括:
第二测试模型处理模块,配置为按照所述多个测试模型之间的先后执行顺序,依次启动各测试模型,以通过所述共识节点网络分别完成各测试模型中所规定数量的区块的共识处理过程和上链存储的过程。
在一实施例中,测试结果生成模块包括:
日志数据获取单元,配置为根据预先编写的日志打印方式从所述记录数据中打印与所述共识算法的性能测试指标相关联的日志数据;
第一测试结果生成单元,配置为基于所述日志数据生成与所述共识算法的性能相关联的测试结果。
在一实施例中,测试结果生成模块包括:
指标数据获取单元,配置为基于所述共识节点网络中各共识节点预先设置的数据埋点,提取与所述共识算法的性能测试指标相关联的指标数据;
第二测试结果生成单元,配置为基于所述指标数据生成与所述共识算法的性能相关联的测试结果。
根据本申请实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的共识算法的测试方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的共识算法的测试方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的共识算法的测试方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的共识算法的测试方法中的步骤。
在本申请的实施例所提供的技术方案中,通过模拟生成区块以及模拟区块的上链存储,以在共识算法测试过程中完整保留共识算法运行过程的性能消耗,且减少其他功能的性能消耗,最终得到的记录数据能准确反映共识算法的测试性能,从而获得精确的共识算法测试结果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1A是本申请涉及的一种实施环境的示意图;
图1B是本申请涉及的另一种实施环境的示意图;
图2是本申请的一示例性实施例示出的共识算法的测试方法的流程图;
图3是本申请的一示例性实施例示出的共识节点中的功能模块结构示意图;
图4是本申请的另一示例性实施例示出的共识算法的测试方法的流程图;
图5是图4所示实施例中的步骤S410在一示例性实施例中的流程图;
图6是本申请的一示例性实施例示出的多进程模式下各进程之间的通信方式示意图;
图7是图4所示实施例中的步骤S410在另一示例性实施例中的流程图;
图8是本申请的一示例性实施例示出的单节点模式的共识节点网络的共识节点之间的通信方式示意图;
图9是本申请的另一示例性实施例示出的共识算法的测试方法的流程图;
图10是本申请的一示例性实施例示出的测试模型池结构示意图;
图11是本申请的一示例性实施例示出的测试流程结构示意图;
图12是本申请的另一示例性实施例示出的共识算法的测试方法的流程图;
图13是图2所示实施例中的步骤S250在一示例性实施例中的流程图;
图14是图2所示实施例中的步骤S250在另一示例性实施例中的流程图;
图15是本申请的另一示例性实施例示出的共识算法的测试方法的流程图;
图16是本申请的一示例性实施例示出的共识算法的测试装置的结构示意图;
图17示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
区块链是分布式数据存储、点对点传输、共识机制(共识算法)、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
共识机制又称共识算法,是区块链事务达成分布式共识的算法,其体现区块链技术中所有节点之间如何达成共识,去认定一个记录(区块)的有效性方式,共识机制既是认定的手段,也是防止篡改的手段。目前主要有四大类共识机制:PoW(Proof of Work,工作量证明:公链应用最为多的共识机制)、PoS(Proof of Stake,权益证明:要求节点获取竞争区块链记账权的一种分布式共识机制)、DPoS(DelegatedProof-Of-Stake,股份授权证明)和分布式一致性算法,其中分布式一致性算法分为解决拜占庭将军问题的拜占庭容错算法,如PBFT(拜占庭容错算法)以及解决非拜占庭问题的分布式一致性算法PBFT。
区块链底层平台可以包括基础服务、智能合约以及运营检测等处理模块。其中,基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营检测模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、检测网络情况、检测节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
首先请参阅图1A与1B,图1A与1B是本申请涉及的一种实施环境的示意图。该实施环境依赖于区块链技术。
具体地,对于图1A中的实施环境,其包括终端101A、多个服务器103A,每个服务器之间可进行通信连接,终端101A可与某一服务器103A进行通信连接,也可与多个服务器103进行通信连接;且每个服务器103A可相当于一个共识节点,该共识节点可实现区块链技术中共识算法的应用过程,多个服务器103A可组成共识节点网络。
应该理解,图1A中的服务器103A的数目仅仅是示意性的。根据实际需要,可以具有任意数目的服务器103A,且多个服务器103A的两个服务器103A之间可进行通信连接。
在本申请的一些实施例中,共识算法的测试方法由图1A中的多个服务器103A组成的共识节点网络执行,共识算法的测试装置配置于共识节点网络中,在需要对共识算法进行测试时,可通过终端101A下发测试通知,然后共识节点网络中会模拟生成待共识的区块,区块中含有预设数量的虚拟交易;然后基于共识节点网络中配置的共识算法对区块进行共识处理,并在区块通过共识处理后模拟进行区块的上链存储;根据共识节点网络在进行共识处理过程中获得的记录数据,生成与共识算法相关的测试结果,在此过程中,服务器103A作为的共识节点仅用于基于预先配置的共识算法对区块进行共识处理,而不做区块链系统中区块打包与数据存储的过程。
当然,在得到测试结果后,还可通过与任一服务器103A相连的可视化设备或者通过终端101A自带的可视化模块展示测试结果。
在另一些实施例中,共识算法的测试方法由图1B中的实施环境执行,图1B中的实施环境包括仅包括终端101B与一个服务器103B,终端101B与服务器103B之前进行通信连接,该服务器103B可用于构建共识节点网络,中可创建多个进程,每个进程相当于一个共识节点,该共识节点可实现区块链技术中共识算法的应用过程,多个共识节点组成共识节点网络。
在图1B的实施环境中,可通过终端101A下发测试通知,然后共识节点网络中会模拟生成待共识的区块,区块中含有预设数量的虚拟交易;然后基于共识节点网络中配置的共识算法对区块进行共识处理,并在区块通过共识处理后模拟进行区块的上链存储;根据共识节点网络在进行共识处理过程中获得的记录数据,生成与共识算法相关的测试结果,在此过程中,服务器103B中作为共识节点的进程仅用于基于预先配置的共识算法对区块进行共识处理,而不做区块链系统中区块打包与数据存储的过程。
其中,终端101A与101B包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等,如可以是智能手机、平板、笔记本电脑、计算机等任意能够实现图片可视化的电子设备,本处不进行限制。服务器103A与103B可以是独立的物理服务器,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处也不对此进行限制。
应当说明的是,本实施例只是为了便于理解本申请的思想而提出的一种示例性实施环境,不能认为是提供给了对本申请的使用范围的任何限制。
图2是根据一示例性实施例示出的一种共识算法的测试方法的流程图,该共识算法的测试方法可应用于图1A中多个服务器103A组成的共识节点网络或图1B中服务器103B构建的共识节点网络具体执行,应该理解的是,该方法也可以是用于其他的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
在一示例性实施例中,该方法可以包括步骤S210至步骤S250,详细介绍如下:
步骤S210:模拟生成待共识的区块。
在实际应用中的共识过程,会先启动区块链,等待区块链启动完成后用过客户端工具给区块链发送交易信息,交易信息到达交易池后,交易池或核心处理引擎会根据自身和共识的逻辑,将交易池中的交易信息打包成区块,发送给共识模块,共识模块基于共识算法,通过AC(Access Control)模块,验证区块的有效性后,进行两阶段或者三阶段的共识逻辑处理,最后提交区块到存储模块,完成一个区块的共识处理周期。
区别于实际应用中区块链的节点在收到客户端发送的交易后进行打包处理得到区块,本实施例中,通过在共识节点中模拟一个mock(虚拟对象)交易池,该mock交易池代替区块的真实实现,该mock交易池代替执行客户端提交交易、存储交易以及将交易打包成区块功能,而是直接Mock一个待共识的区块,随后,共识节点网络基于该区块进行共识处理。
具体地,共识节点网络中的每个共识节点中均设置有mock交易池,当需要进行共识算法的测试时,可向任一共识节点发送指示,收到指示的共识节点会向mock交易池持续发送mock交易(虚拟交易),以模拟实际应用中客户端向区块链的节点发送交易的过程。
本实施例中,为了保证共识算法的测试数据准确性,还可预先配置mock交易的大小,mock交易池模拟的区块中包含了多少笔虚拟交易,如此,即可固定mock交易池模拟得到的区块大小。
步骤S230:基于共识节点网络中配置的共识算法对区块进行共识处理,并在区块通过共识处理后模拟进行区块的上链存储。
本实施例中,共识节点网络是由多个共识节点组成的网络结构,各共识节点中的功能模块示意图可参考图3,每个共识节点中均包含有mock交易池、共识模块以及mock存储模块,该共识模块所实现的功能与区块链中节点的共识模块所实现的功能相同,即可基于共识算法完成共识处理过程;共识节点网络中各共识节点均需参与步骤S210中区块的共识处理过程,且仅真实执行共识算法的共识过程。
具体地,共识节点网络会存在一个主节点,该主节点为共识节点中的特殊节点,该主节点的确定可通过预先设定一个共识节点为主节点,或是通过共识节点网络中各个共识节点的自行进行选择得到的主节点,即当需要进行共识算法测试时,可向预先确定的主节点发出指示,以指示该主节点模拟生成待共识的区块,然后通过该主节点基于共识算法进行区块的共识处理等步骤;或是当需要进行共识算法测试时,向任一共识节点发出指示,该共识节点会将区块发送至其他共识节点,然后各个共识节点的自行进行选择得到的主节点,该主节点基于共识算法进行区块的共识处理等步骤。
在对共识算法进行测试时,可确定目标待测试共识算法,如需对TBFT共识算法进行测试时,则在进行共识处理时,该共识节点网络会以TBFT(拜占庭容错算法)共识算法进行共识处理,具体步骤可以为主节点将区块对应的提案(Proposal)通过共识节点之间的通信,广播到其他共识节点,其他共识节点进行投票Precommit(预确认)、Commit(确认)等操作,当共识节点网络中存在一定数量的共识节点确认后,共识处理即为完成,该通过共识算法进行共识的过程在共识模块中完成。
本实施例中,不同的共识算法在共识模块中的共识处理过程不同,同时,在实际区块链的共识处理过程中,还存在AC(access control,访问控制)模块会对区块数据签名和验签的步骤,本实施例中,为了减少签名与验签带来的性能消耗从而影响共识算法的测试,通过在各共识节点的共识模块中构建mock AC单元,该mock AC单元写入特定的签名字符串,并且设置在验证签名的时候百分百验证通过,以确保AC模块在共识过程中,没有明显的性能消耗。
在基于共识算法完成区块的共识处理后,在实际的区块链技术中会赖于某一种或者多种数据库管理工具,例如LevelDB(一种高效的数据库)对于提交的区块进行存储,而本实施例中的共识节点网络并不完全实现区块链的功能,其仅用于测试共识算法的性能且需尽量减少共识过程中的其他性能消耗干扰,因此,本实施例提出的共识算法的测试方案不需要真正的存储上链。即可通过共识节点中的mock存储模块后,不需要对共识提交的区块进行任何处理,直接返回去存储完成信息给共识模块,告诉共识模块区块已进行存储,即共识已完成。
步骤S250:根据共识节点网络在进行共识处理过程中获得的记录数据,生成与共识算法相关的测试结果。
本实施例中,在共识节点网络基于步骤S210至S230完成区块的共识后,共识模块在通过共识算法对区块进行共识处理时,会存在运行数据,共识模块会记录相关数据,在完成区块的共识后,可通过从共识模块中提取相关数据即可生成与共识算法相关的测试结果,以该测试结果可对共识算法的性能进行评估。
本实施例中测试共识算法无需完整运行整个区块链,而是通过mock相关模块,在测试共识算法时,仅真实完成共识算法的处理过程,而共识逻辑中在对其他模块依赖调用的时候通过mock的模块完成相关功能,几乎没有性能消耗,以此得到仅与共识算法相关的记录数据,以精准反映共识算法的性能;在此过程中,无需区块链完整完成共识逻辑,大大的简化了共识算法可用性检测,且此过程保证共识算法的性能消耗远远大于其他性能消耗,能有效提高共识算法测试的准确性。
图4是根据另一示例性实施例示出的一种共识算法的测试方法的流程图。如图4所示,在一示例性实施例中,该方法实施于图2中的步骤S230之前,具体地,在实施整套共识算法的测试方法时,图4所示的方法需实施于图2的步骤S210之前,即在通过图4所示的方法进行共识节点网络的构建后,再进行模拟生成待共识区块的步骤,该方法可以包括步骤S410至步骤S430,详细介绍如下:
步骤S410:根据预先加载的配置数据配置固定数量的共识节点。
本实施例中,配置数据为预先设置的,该配置数据包括运行模式信息、共识节点个数、mock交易的大小和mock交易池模拟的区块中包含了多少笔虚拟交易等数据,mock交易的大小和mock交易池模拟的区块中包含了多少笔虚拟交易等信息可用于步骤S210中模拟生成待共识的区块,而运行模式信息、共识节点个数则用于本实施例生成共识节点网络。
在加载配置数据时,为了保证配置数据的完整性与安全性,还可对配置数据进行安全检查,例如:模拟的区块大小不能超过当前服务器内存20%、通信所需的证书文件的路径是否正确等。
运行模式信息包括多进程模式信息以及单节点模式信息,其中,单节点模式信息实施于图1A中的实施环境,即共识节点网络为单节点模式,一个服务器作为一个共识节点,每个服务器均加载配置数据,以得到各共识节点,多进程模式信息实施于图1B中的实施环境,即共识节点网络为多进程模式,一个服务器加载配置数据,拉取多个进程,每个进程作为一个共识节点,该共识节点的个数通过配置数据中包含的共识节点个数得到。
当然,不论是单节点模式还是多进程模式,共识节点中均会配置如图3所示的结构。
步骤S430:建立各共识节点之间的通信连接,并基于配置数据为各共识节点配置共识算法,以得到由各共识节点组成的共识节点网络。
本实施例中,配置数据中还包括有共识算法,该共识算法可以是所有共识算法,后续共识算法可存储于各共识节点的共识模块,在后续使用时确定某次进行测试时的共识算法,从共识模块中进行调用即可;当然也可以仅是该次测试的共识算法,表明在此处测试时,均是测试该共识算法,后续如需更换共识算法,再通过更换配置数据中的参数重新进行共识节点网络构建以及共识算法的测试过程。
本实施例中通过配置数据进行共识节点网络的初始化,以构建可以用于快速准确测试共识算法的共识节点网络结构,并通过修改配置数据,即可完成不同情况、不同共识算法、不同测试方向的共识算法的测试。
图5是图4所示实施例中步骤S410在一示例性实施例中的流程图。如图5所示,在一示例性实施例中,配置数据包括运行模式信息,运行模式信息包括多进程模式信息;步骤S410根据预先加载的配置数据配置固定数量的共识节点的过程可以包括步骤S510至步骤S530,详细介绍如下:
步骤S510:基于多进程模式信息中包含的进程数量信息在服务器中创建固定数量的进程。
本实施例中,是用多进程模式构建共识节点网络,此时,配置数据中会规定此次通过多进程模式进行共识算法的测试,因此,可将配置数据发送至一服务器,该服务器加载并存储配置数据,然后对配置数据进行安全性检测,然后根据配置数据中规定的进程数量在该服务器中拉取固定数量的进程。
步骤S530:将创建得到的进程作为共识节点。
本实施例中,将创建的进程作为共识节点,即在每个进程中配置如图3的结构,使得每个进程能完成共识模块实际区块链中节点基于共识算法所需的功能,即可将进程视为一个共识节点。
当然,共识节点在进行区块共识时,需要多个共识节点之间的通信,而进程之间的通信有很多方式可以实现,参考图6即为多进程模式下各进程之间的通信方式示意图,该图6中为通过channel(通道)完成进程之间的通信,但在其他实施例中还可通过进程之间共享内存、消息队列、信号、socket(套接字)等方式进行进程之间的通信,在这里不做限制;这些方式均可实现进程之间的通信,即对应也可实现通过进程得到的共识节点之间的通信。
本实施例中,提出一种多进程模式构建共识节点网络的方式,在此方式下,当一个共识节点需要广播提案、投票等信息到其他共识节点的时候,只需要通过进程之间的通信就可以发送到对方,且共识节点网络仅依赖于一个服务器即可完成,减少了对服务器和网络的依赖,降低共识算法的测试成本,更方便对共识算法的可用性进行测试。
图7是图4所示实施例中步骤S410在一示例性实施例中的流程图。如图7所示,在一示例性实施例中,配置数据包括运行模式信息,运行模式信息包括单节点模式信息,单节点模式信息包括多个服务器的地址信息;步骤S410根据预先加载的配置数据配置固定数量的共识节点的过程可以包括步骤S710至步骤S730,详细介绍如下:
步骤S710:基于多个服务器的地址信息向对应服务器发送配置数据,以使多个服务器根据配置数据进行共识节点网络的构建。
本实施例中,当配置数据所对应的运行模式信息指向为单节点模式信息时,则证明此处构建的共识节点网络通过多个服务器完成。
具体地,可以根据配置数据中的多个服务器的地址信息将配置数据分别发送至对应服务器,然后通过多个服务器加载配置数据,构建如图3所示的结构,即可认为每个服务器可完成实际区块链中节点的共识模块功能;当然,也可只向一个服务器发送配置数据,当该服务器收到并加载配置数据时,若确认共识节点网络的运行模式为单节点模式,则该服务器基于配置数据中地址信息将配置数据发送至其他服务器,以此完成多个服务器对节点网络的接收。
步骤S730:将多个服务器分别确定为共识节点。
本实施例中,共识节点之间通过对应服务器的地址信息进行通信。
在多个服务器加载配置数据后,即可将每个服务器视为一个共识节点,为完成共识节点网络的功能,还需建立共识节点之间的通信链接,即建立服务器之间的通信链接。
本实施例中的单节点模式基于P2P(Peer to Peer,单对单)网络模型,每一个节点拥有自己独立的IP(地址信息)并接收一个特定的端口的通信数据,如需建立各服务器之间的通信,当消息广播的时候,基于P2P网络发送消息,参考图8,即为一示例下单节点模式的共识节点网络的共识节点之间的通信方式示意图;即在单节点模式下,共识节点网络需要实现一个P2P网络服务,具体可在配置数据中添加通信数据,该通信数据可以基于服务器的地址信息实现各服务器之间的P2P网络服务,以此实现服务器之间的通信,便于实现后续共识算法的测试时共识节点之间的广播、投票等功能。
本实施例中的单节点模式需要实现服务器中间的P2P网络链接,该P2P网络链接是除共识模块中共识算法进行共识以外,该测试过程中实际实现的功能,由于实际区块链运用中,共识算法会有很多活性有效性在实现上是依赖于网络模块的,单节点模式真实的包含了共识节点网络中的共识算法测试,因此单节点模式可以更有效、真实的测试出共识算法性能,且能保证对共识算法行测测试过程中的完整性和安全性。
图9是根据另一示例性实施例示出的一种共识算法的测试方法的流程图。如图9所示,在一示例性实施例中,该方法实施可于图2中的步骤S210之前,可以包括步骤S910至步骤S930,详细介绍如下:
步骤S910:获取预先配置的测试模型,测试模型含有待共识的区块的数量信息。
本实施例中,测试模型可以配置,该测试模型可写入配置数据中,在基于配置数据构建共识节点网络之后,各共识节点即可根据测试模型所配置的方案在共识节点网络中进行区块的共识过程。
该测试模型中含有待共识的区块的数量信息、共识节点的个数、待测试的共识算法以及待测试共识算法对应测试任务,如在一实施例中,一个测试模型为:七节点TBFT共识算法提交100个块的性能,由该测试模型可知,此次序对TBFT共识算法进行测试,在测试过程中需要完成100个区块的共识,该共识节点网络中存在7个共识节点,当然测试模型中的共识节点个数与通过配置数据完成共识节点网络的构建过程相对应,即在通过图5或图7的方式构建共识节点网络中,得到的共识节点个数应与测试模型中共识节点的个数相同。
步骤S930:启动测试模型。
本实施例中,当得到测试模型后,即可启动测试模型,执行以基于测试模型执行模拟生成对应数量的区块,并基于共识节点网络中配置的共识算法分别对各区块进行共识处理,并在各区块通过共识处理后模拟进行相应区块的上链存储的步骤。
具体地,先执行步骤S210值步骤S230,执行模拟生成待共识的区块,通过共识算法对区块进行共识处理,随后上链存储的步骤;当然,此时步骤S230中共识算法即为测试模型中的待测试共识算法。
在步骤S230完成后,即可判断区块已进行共识的数量,若区块已进行共识的数量小于待共识的区块的数量信息所指示的数量,则重复执行步骤S210值步骤S230,直到区块已进行共识的数量达到待共识的区块的数量信息所指示的数量。
本实施例中,判断共识节点网络是否完成测试模型所规定的测试任务可通过日志关键词过滤实现,如对于上述提出的测试模型为:七节点TBFT共识算法提交100个块的性能,则证明在共识节点网络中,区块的高度超过100即为实现了100个区块的共识,即可通过共识过程中的过滤的日志关键词“Commit Block Height:101(确认区块高度:101)”判断高度超过100,则测试模型任务完成,然后则可执行步骤S250,如可根据提取出的第101区块和第区1块的时间差,计算出TPS(Transaction Per Second,每秒事务处理量)性能。
本实施例中提出在配置数据中加载测试模型,即可根据测试需要修改测试模型,提高对不同共识算法测试的便捷性。
当然,上述提出的是针对只存在单一测试模型的情况下,如何针对测试模型进行共识算法的测试,在某些情况下,还存在配置数据中的测试模型的数量为多个的情况,如图10,为一示例性实施例中输出的测试模型池,该测试模型测中包括多个测试模型,每个测试模型对应的测试任务不同,比如:测试任务不同可以是待共识的区块的数量信息不同、也可以是共识节点的个数不同、也可以是待测试的共识算法不同或是待测试共识算法对应测试任务不同等,例如模型1:测试四节点TBFT共识算法的增删节点,测试模型2:四节点TBFT共识算法提交100个块的性能,测试模型3:七节点TBFT共识算法提交100个块的性能等,该测试模型池中的测试模型数量不唯一,可进行增删。
在一具体实施例中,若一配置数据中包含多个测试模型,即从测试模型池中选择多个测试模型,则在将多个测试模型写入配置数据时,还需配置多个测试模型之间的测试流程,参考图11,为一测试流程结构示意图,该测试流程即为多个测试模型之间的先后顺序。
针对图11的测试模型,在具体实施例中,首先加载配置数据,然后通过上述方式完成共识节点网络的配置,该共识节点网络的配置需参考测试模型2的数据,即该共识节点网络中包括4个共识节点,然后通过图9的方法完成测试模型2的测试任务,在测试模型2测试任务完成后,即通过步骤S250获取测试模型2的任务所对应的测试结果,此时,即为完成测试模型2的任务,由于在测试流程中,测试模型2后续为测试模型3的任务,则依照测试流程中的顺序,先删除测试模型2任务在处理中产生的记录数据,并删除共识节点网络的配置数据,基于测试模型3以及配置数据再配置新的共识节点网络,此时的共识节点网络的共识节点即为7个,在根据新的共识节点网络完成测试模型3所规定的任务,如此,按照多个测试模型之间的先后执行顺序,依次启动各测试模型,以通过共识节点网络分别完成各测试模型中所规定数量的区块的共识处理过程和上链存储的过程,最终可得到每个测试模型对应的测试结果,在最终展示测试结果时,可合并每一个测试模型的测试结果,生成测试报表。
本实施例中,参考图12,在进行共识算法配置时,先加载配置数据,随即可判断配置数据中的测试模型是否为多个,如果是单个,即基于该测试模型进行共识算法的测试,如果是多个,则根据多个模型中的测试流程进行自动化测试,即基于测试流程中的顺序,自动化完成每个测试模型的任务。
通过测试模型的可配置化,以及可对多个测试模型建立测试流程,即自动化完成多个测试任务,对不同运行情况、不同共识算法一次即可完成测试,大大减少了测试的难度和操作的复杂度,提高测试效率。
图13是图2所示实施例中步骤S250在一示例性实施例中的流程图。如图13所示,在一示例性实施例中,步骤S250根据共识节点网络在进行共识处理过程中获得的记录数据,生成与共识算法相关的测试结果的过程可以包括步骤S1310至步骤S1330,详细介绍如下:
步骤S1310:根据预先编写的日志打印方式从记录数据中打印与共识算法的性能测试指标相关联的日志数据。
本实施例中,在共识节点网络的构建时,各共识节点的共识模块能实现实际运用中区块链节点共识模块的功能,即本案中的共识模块均配置有日志规则,在测试模型所规定的测试任务完成后,即可根据共识模块的日志规则编写日志分析工具,以此通过日志打印方式从记录数据中打印与共识算法的性能测试指标相关联的日志数据,一般情况下,共识模块的日志格式都是固定的,很容易通过日志的关键词过滤出需要的状态变更,再提取出这一条日志数据的有效信息,就可以完成数据的收集。
步骤S1330:基于日志数据生成与共识算法的性能相关联的测试结果。
当收集到一次测试任务相关的日志数据后,即可根据日志数据分析测试结果,如可根据日志数据中任务完成的时间计算共识算法的TPS性能等,当然,TPS性能仅是示例性的,在其他实施例中还可通过其他性能参数作为共识算法的测试结果,此处不进行具体限制。
本实施例中,通过日志打印方式提取共识算法测试过程中的日志数据,以此可完成共识算法的测试数据收集,从而可在不修改共识模块的代码的基础上即可完成数据的采集,保证共识模块的通用性,提高测试结果的安全性。
图14是图2所示实施例中步骤S250在一示例性实施例中的流程图。如图14所示,在一示例性实施例中,步骤S250根据共识节点网络在进行共识处理过程中获得的记录数据,生成与共识算法相关的测试结果的过程可以包括步骤S1410至步骤S1430,详细介绍如下:
步骤S1410:基于共识节点网络中各共识节点预先设置的数据埋点,提取与共识算法的性能测试指标相关联的指标数据。
本实施例中,可在共识节点网络构建时,为各共识节点的共识模块设置数据埋点,如此,在共识节点网络进行共识算法的测试时,将关键数据进行收集,以此得到指标数据。
步骤S1430:基于指标数据生成与共识算法的性能相关联的测试结果。
同样地,可参考步骤S1330,在得到指标数据后,可基于指标数据获取测试结果。
本实施例中,只需在配置数据中设置相关程序实现在共识模块的关键位置设置数据埋点,方式简单,且得到的指标数据准确,如此通过指标数据能得到精准的测试结果。
参考图2至图14所示出的共识算法测试方法,图15是根据另一示例性实施例示出的一种共识算法的测试方法的流程图。如图15所示,本实施例中的共识算法测试过程,在启动测试后,会服务器加载配置数据,然后对配置数据进行有效性检查,即检查配置数据的安全性,如果检查通过,则会根据配置数据中设定的运行模式信息构建多进程模式的共识节点网络或是单节点模式的共识节点网络,随后,根据配置数据中的测试模型进行区块的共识,在一次区块共识完成后,记录状态信息,如Commit Block Height,然后检测该状态信息是否满足测试模型的要求,即是否完成测试模型所规定的待共识的区块的数量信息,如果没有完成,则再进行区块模拟、区块共识、模拟上链等区块共识任务提交步骤,直到状态信息达到测试模型要求,以此,则停止测试任务,并基于测试过程的产生的数据生成测试结果。
本实施例中提出的共识算法的测试方法,仅真实实现共识模块中共识算法的功能,mock其他模块完整共识过程中的其他功能,减少了其他功能实现带来的性能消耗,大大提高了共识算法测试的准确性,且无需完整实现区块链的所用功能以此减少了测试的难度;同时共识节点网络的构建支持单节点模式以及多进程模式,其中单节点模式包含网络模块,对共识算法的安全性和活性可以更好的测试和验证;而多进程模式,减少测试对于服务器的依赖,减少测试成本,同时,还提出测试模型的可配置化,可配置测试模型中的测试任务以及基于测试流程进行多测试模型的自动化测试,提高共识算法的测试效率,大大减少了测试的难度和操作的复杂度。
本实施例中提出的共识算法的测试方法,可根据需求灵活设置配置数据,针对共识算法在区块链运行中的状态和性能进行测试,且该测试方法,既可以在区块链尚未运行的情况下,检测共识算法模块本身是否可以正常运行;也可以在其他依赖模块都不运行的情况下,单独测试共识算法的处理性能。
图16是根据一示例性实施例示出的一种共识算法的测试装置的结构示意图。如图16所示,在一示例性实施例中,该共识算法的测试装置包括:
共识区块生成模块1610,配置为模拟生成待共识的区块,区块中含有预设数量的虚拟交易;
共识模块1630,配置为基于共识节点网络中配置的共识算法对区块进行共识处理,并在区块通过共识处理后模拟进行区块的上链存储;
测试结果生成模块1650,配置为根据共识节点网络在进行共识处理过程中获得的记录数据,生成与共识算法相关的测试结果。
本实施例提出的共识算法的测试装置可减少共识算法测试时其他模块造成的性能消耗,以得到准确的共识算法测试结果。
在一实施例中,共识算法的测试装置还包括:
共识节点配置模块,配置为根据预先加载的配置数据配置固定数量的共识节点;
共识节点网络配置模块,配置为建立各共识节点之间的通信连接,并基于配置数据为各共识节点配置共识算法,以得到由各共识节点组成的共识节点网络。
在一实施例中,配置数据包括运行模式信息,运行模式信息包括多进程模式信息;共识节点配置模块包括:
进程创建单元,配置为基于多进程模式信息中包含的进程数量信息在服务器中创建固定数量的进程;
第一共识节点获取单元,配置为将创建得到的进程作为共识节点;其中,共识节点之间的通信连接实现为进程间的通信连接。
在一实施例中,配置数据包括运行模式信息,运行模式信息包括单节点模式信息,单节点模式信息包括多个服务器的地址信息;共识节点配置模块包括:
配置数据发送单元,配置为基于多个服务器的地址信息向对应服务器发送配置数据,以使多个服务器根据配置数据进行共识节点网络的构建;
第二共识节点获取单元,配置为将多个服务器分别确定为共识节点;其中,共识节点之间通过对应服务器的地址信息进行通信。
在一实施例中,共识算法的测试装置还包括:
测试模型获取模块,配置为获取预先配置的测试模型,测试模型含有待共识的区块的数量信息;
第一测试模型处理模块,配置为启动测试模型,以基于测试模型执行模拟生成对应数量的区块,并基于共识节点网络中配置的共识算法分别对各区块进行共识处理,并在各区块通过共识处理后模拟进行相应区块的上链存储的步骤。
在一实施例中,预先配置的测试模型的数量为多个,且多个测试模型之间具有先后执行顺序;该共识算法的测试装置还包括:
第二测试模型处理模块,配置为按照多个测试模型之间的先后执行顺序,依次启动各测试模型,以通过共识节点网络分别完成各测试模型中所规定数量的区块的共识处理过程和上链存储的过程。
在一实施例中,测试结果生成模块包括:
日志数据获取单元,配置为根据预先编写的日志打印方式从记录数据中打印与共识算法的性能测试指标相关联的日志数据;
第一测试结果生成单元,配置为基于日志数据生成与共识算法的性能相关联的测试结果。
在一实施例中,测试结果生成模块包括:
指标数据获取单元,配置为基于共识节点网络中各共识节点预先设置的数据埋点,提取与共识算法的性能测试指标相关联的指标数据;
第二测试结果生成单元,配置为基于指标数据生成与共识算法的性能相关联的测试结果。
需要说明的是,上述实施例所提供的共识算法的测试装置与上述实施例所提供的共识算法的测试方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的共识算法的测试方法。
图17示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图17示出的电子设备的计算机系统1700仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图17所示,计算机系统1700包括中央处理单元(Central Processing Unit,CPU)1701,其可以根据存储在只读存储器(Read-Only Memory,ROM)1702中的程序或者从存储部分1708加载到随机访问存储器(Random Access Memory,RAM)1703中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 1703中,还存储有系统操作所需的各种程序和数据。CPU 1701、ROM 1702以及RAM 1703通过总线1704彼此相连。输入/输出(Input/Output,I/O)接口1705也连接至总线1704。
以下部件连接至I/O接口1705:包括键盘、鼠标等的输入部分1706;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1707;包括硬盘等的存储部分1708;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1709。通信部分1709经由诸如因特网的网络执行通信处理。驱动器1710也根据需要连接至I/O接口1705。可拆卸介质1711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1710上,以便于从其上读出的计算机程序根据需要被安装入存储部分1708。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1709从网络上被下载和安装,和/或从可拆卸介质1711被安装。在该计算机程序被中央处理单元(CPU)1701执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的共识算法的测试方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的共识算法的测试方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (12)
1.一种共识算法的测试方法,其特征在于,包括:
模拟生成待共识的区块,所述区块中含有预设数量的虚拟交易;
基于共识节点网络中配置的共识算法对所述区块进行共识处理,并在所述区块通过共识处理后模拟进行所述区块的上链存储;
根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果。
2.根据权利要求1所述的方法,其特征在于,在所述基于共识节点网络中配置的共识算法对所述区块进行共识处理,并在所述区块通过共识处理后模拟进行所述区块的上链存储之前,所述方法还包括:
根据预先加载的配置数据配置固定数量的共识节点;
建立各共识节点之间的通信连接,并基于所述配置数据为各共识节点配置所述共识算法,以得到由各共识节点组成的所述共识节点网络。
3.根据权利要求2所述的方法,其特征在于,所述配置数据包括运行模式信息,所述运行模式信息包括多进程模式信息;所述根据预先加载的配置数据配置固定数量的共识节点,包括:
基于所述多进程模式信息中包含的进程数量信息在服务器中创建固定数量的进程;
将创建得到的进程作为共识节点;其中,所述共识节点之间的通信连接实现为进程间的通信连接。
4.根据权利要求2所述的方法,其特征在于,所述配置数据包括运行模式信息,所述运行模式信息包括单节点模式信息,所述单节点模式信息包括多个服务器的地址信息;所述根据预先加载的配置数据配置固定数量的共识节点,包括:
基于所述多个服务器的地址信息向对应服务器发送所述配置数据,以使所述多个服务器根据所述配置数据进行所述共识节点网络的构建;
将多个服务器分别确定为共识节点;其中,所述共识节点之间通过对应服务器的地址信息进行通信。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取预先配置的测试模型,所述测试模型含有待共识的区块的数量信息;
启动所述测试模型,以基于所述测试模型执行模拟生成对应数量的区块,并基于所述共识节点网络中配置的共识算法分别对各区块进行共识处理,并在各区块通过共识处理后模拟进行相应区块的上链存储的步骤。
6.根据权利要求5所述的方法,其特征在于,所述预先配置的测试模型的数量为多个,且多个测试模型之间具有先后执行顺序;所述方法还包括:
按照所述多个测试模型之间的先后执行顺序,依次启动各测试模型,以通过所述共识节点网络分别完成各测试模型中所规定数量的区块的共识处理过程和上链存储的过程。
7.根据权利要求1所述的方法,其特征在于,所述根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果,包括:
根据预先编写的日志打印方式从所述记录数据中打印与所述共识算法的性能测试指标相关联的日志数据;
基于所述日志数据生成与所述共识算法的性能相关联的测试结果。
8.根据权利要求1所述的方法,其特征在于,所述根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果,包括:
基于所述共识节点网络中各共识节点预先设置的数据埋点,提取与所述共识算法的性能测试指标相关联的指标数据;
基于所述指标数据生成与所述共识算法的性能相关联的测试结果。
9.一种共识算法的测试装置,其特征在于,包括:
共识区块生成模块,配置为模拟生成待共识的区块,所述区块中含有预设数量的虚拟交易;
共识模块,配置为基于共识节点网络中配置的共识算法对所述区块进行共识处理,并在所述区块通过共识处理后模拟进行所述区块的上链存储;
测试结果生成模块,配置为根据所述共识节点网络在进行所述共识处理过程中获得的记录数据,生成与所述共识算法相关的测试结果。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至8中的任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至8中的任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638303.0A CN117240739A (zh) | 2022-06-07 | 2022-06-07 | 共识算法的测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638303.0A CN117240739A (zh) | 2022-06-07 | 2022-06-07 | 共识算法的测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117240739A true CN117240739A (zh) | 2023-12-15 |
Family
ID=89083132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210638303.0A Pending CN117240739A (zh) | 2022-06-07 | 2022-06-07 | 共识算法的测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117240739A (zh) |
-
2022
- 2022-06-07 CN CN202210638303.0A patent/CN117240739A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11722302B2 (en) | Computer-implemented systems and methods for combining blockchain technology with digital twins | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
EP3762882B1 (en) | System and method for establishing common request processing | |
CN110838065A (zh) | 一种交易数据处理方法及装置 | |
CN112632629B (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
CN111444992B (zh) | 基于信息码的用户信息查验方法及系统 | |
CN111949531B (zh) | 区块链网络的测试方法、装置、介质及电子设备 | |
CN112652089A (zh) | 诊断方法、车辆、系统及存储介质 | |
CN116155771A (zh) | 网络异常测试方法、装置、设备、存储介质和程序 | |
CN112905437B (zh) | 一种测试用例的方法、装置及存储介质 | |
CN117240739A (zh) | 共识算法的测试方法、装置、电子设备及存储介质 | |
CN116521509A (zh) | 智能合约测试方法、装置、设备、存储介质及产品 | |
CN112667501A (zh) | 基于自动化挡板的链路测试方法、装置及相关设备 | |
CN112102079A (zh) | 业务数据的处理方法、装置、计算机设备及存储介质 | |
CN111666132A (zh) | 分布式事务实现方法、装置、计算机系统及可读存储介质 | |
US12010233B2 (en) | Computer-implemented systems and methods for combining blockchain technology with digital twins | |
CN115242658B (zh) | 开放系统访问方法、装置、计算机设备及存储介质 | |
WO2024041050A1 (en) | Tracing data in complex replication system | |
CN116932374A (zh) | 分布式系统的时序用例收敛方法、装置、设备及存储介质 | |
CN118116567A (zh) | 基于安全一致性的医疗主数据处理系统及方法 | |
CN117406930A (zh) | 基于区块链的业务处理方法、装置、设备、介质及产品 | |
CN116775769A (zh) | 一种分布式数据校验方法、装置、计算机设备及存储介质 | |
CN115168489A (zh) | 基于区块链的数据存证方法和装置 | |
CN115599658A (zh) | 区块链系统的测试方法、装置、介质及电子设备 | |
CN115981816A (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 |