CN111382047B - 区块链的评测方法、装置及系统,和计算机可存储介质 - Google Patents
区块链的评测方法、装置及系统,和计算机可存储介质 Download PDFInfo
- Publication number
- CN111382047B CN111382047B CN201811622796.9A CN201811622796A CN111382047B CN 111382047 B CN111382047 B CN 111382047B CN 201811622796 A CN201811622796 A CN 201811622796A CN 111382047 B CN111382047 B CN 111382047B
- Authority
- CN
- China
- Prior art keywords
- evaluation
- sub
- subtask
- task
- result
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及区块链的评测方法、装置及系统,和计算机可存储介质,涉及区块链领域。区块链的评测方法包括:获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定。根据本公开,依据区块链差异化实现特点,对不同的区块链进行针对性地评测,具有普适性。本公开还以过程为导向进行评测,实现对评测过程全流程的监控,准确定位影响区块链性能的瓶颈,有助于在评测过程中及时发现问题。
Description
技术领域
本公开涉及区块链领域,特别涉及区块链的评测方法、装置及系统,和计算机可存储介质系统。
背景技术
当前区块链技术处于发展初期,技术架构各不相同,对这些技术架构各不相同的区块链进行评测是困难的。
相关区块链评测技术多以评测结果为导向,即仅在评测结束后提供评测结果。
发明内容
发明人认为:相关区块链评测技术没有考虑区块链差异化实现的特点,不具有普适性,且多数以评测结果为导向,无法准确定位影响区块链性能的瓶颈,无助于在评测过程中及时发现问题。
针对上述技术问题,本公开提出了一种解决方案,依据区块链差异化实现特点,对不同的区块链进行针对性地评测,具有普适性。本公开还以过程为导向进行评测,实现对评测过程全流程的监控,准确定位影响区块链性能的瓶颈,有助于在评测过程中及时发现问题。
根据本公开的第一方面,提供了一种区块链的评测方法,包括:获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定。
在一些实施例中,所述子任务包括:创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务、轮询查询子任务;执行所述评测任务的各个子任务包括:按顺序执行创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务和轮询查询子任务。
在一些实施例中,执行所述轮询查询子任务包括:轮询查询所述待测试区块链的共识反馈,得到相应的子结果。
在一些实施例中,区块链的评测方法还包括:将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的子结果分别与对应的阈值进行比较:在各个子结果都大于或等于对应的阈值的情况下,确定所述轮询查询子任务的子结果为所述评测结果。
在一些实施例中,区块链的评测方法还包括:根据执行多个所述评测任务得到的子结果,计算相应子任务的评测子结果,其中,所述待测试区块链的评测结果根据各个子任务的评测子结果确定。
在一些实施例中,根据每个子任务的多个子结果的平均值,计算每个子任务的评测子结果。
在一些实施例中,区块链的评测方法还包括:将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的评测子结果分别与对应的阈值进行比较:在各个评测子结果都大于或等于对应的阈值的情况下,确定所述轮询查询子任务的评测子结果为所述评测结果。
在一些实施例中,采用分布式方式执行所述评测任务。
在一些实施例中,区块链的评测方法还包括:根据每个所述工作步骤的核心函数生成创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务。
在一些实施例中,所述子结果为每秒事务处理量TPS。
根据本公开的第二方面,提供一种区块链的评测装置,包括至少一个评测模块,每个评测模块包括:获取单元,被配置为获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;执行单元,被配置为执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定。
根据本公开的第三方面,提供一种区块链的评测装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的区块链的评测方法。
根据本公开的第四方面,提供一种区块链的评测系统,包括至少一个处理机,被配置为:获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定。
在一些实施例中,区块链的评测系统还包括控制机,所述控制机被配置为:生成至少一个评测任务,并将所述评测任务分配给多个所述处理机;从各个处理机中获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果。
在一些实施例中,在一个所述处理机中执行每个评测任务的各个子任务。
在一些实施例中,所述控制机还被配置为:根据各个子任务的子结果,计算相应子任务的评测子结果;根据所述评测子结果确定所述评测结果。
在一些实施例中,所述处理机还被配置为:生成至少一个评测任务;从待测试区块链中获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果。
在一些实施例中,所述处理机还被配置为:根据各个子任务的子结果,计算相应子任务的评测子结果;根据所述评测子结果确定所述评测结果。
根据本公开的第五方面,提供一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的区块链的评测方法。
在上述实施例中,依据区块链差异化实现特点,对不同的区块链进行针对性地评测,具有普适性。本公开还以过程为导向进行评测,实现对评测过程全流程的监控,准确定位影响区块链性能的瓶颈,有助于在评测过程中及时发现问题。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出根据本公开一些实施例的区块链的评测方法的流程图;
图2示出根据本公开另一些实施例的区块链的方法的流程图;
图3示出根据本公开一些实施例的区块链的评测装置的框图;
图4示出根据本公开另一些实施例的区块链的评测装置的框图;
图5示出根据本公开一些实施例的区块链的评测系统的框图;
图6示出根据本公开一些实施例的区块链的评测系统的应用示图;
图7示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1示出根据本公开一些实施例的区块链的评测方法的流程图。
如图1所示,区块链的评测方法包括步骤S110-步骤S120。
在步骤S110中,获取至少一个评测任务。每个评测任务由多个子任务构成。根据待测试区块链的每个工作步骤得到相应的子任务中的一部分。在一些实施例中,多个子任务包括创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务和轮询查询子任务。
在步骤S120中,执行每个评测任务的各个子任务。例如,按顺序执行创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务和轮询查询子任务,得到相应的子结果。待测试区块链的评测结果根据各个子任务的子结果确定。应当理解,执行各个子任务包括在待测试区块链中创建系统账户、部署合约、创建链账户、发送交易和轮询查询共识反馈。
图2示出根据本公开另一些实施例的区块链的方法的流程图。
如图2所示,区块链的评测方法包括步骤S101-步骤S150。图2与图1的不同之处在于,图2示出了子任务的生成步骤S101以及得到子结果的后续处理步骤S130-步骤S150。下面将仅描述图2与图1的不同之处,相同之处将不再赘述。
在步骤S101中,生成多个子任务,得到至少一个评测任务。每个评测任务由多个子任务构成。子任务中的一部分根据待测区块链的每个工作步骤得到。例如根据每个工作步骤的核心函数得到创建系统账户子任务、部署合约子任务、创建链账户子任务和发送交易子任务。
在一些实施例中,可采用分布式方式执行至少一个评测任务。在这种情况下,可以采用负载均衡的方法分配至少一个评测任务到不同的处理机执行。应当理解,在执行至少一个评测任务的情况下,也可以采用非分布式方式实现。例如可以采用多线程在一个处理机上执行至少一个评测任务。
在步骤S130中,获取各个子任务的子结果。在一些实施例中,根据轮询查询待测试区块链的共识反馈,得到轮询查询子任务的子结果。子结果例如可以是TPS(TransactionPer Second,每秒事务处理量)。
在步骤S150中,确定待测试区块链的评测结果。
在执行一个评测任务的情况下,将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的子结果分别与对应的阈值进行比较。在各个子结果都大于或等于对应的阈值的情况下,确定轮询查询子任务的子结果为评测结果。在其中任何一个子结果小于对应的阈值的情况下,例如发送交易子任务的子结果小于对应的阈值,说明评测得到的轮询查询子任务的子结果(即评测结果)受到了评测过程中发送交易子任务的影响。因此,可以定位评测过程中影响评测结果的瓶颈,从而可以采取相应的措施来改善,例如可以改进评测方法得到更加准确的评测结果。
在执行多个评测任务的情况下,区块链的评测方法还包括步骤S140。
在步骤S140中,计算评测子结果。在一些实施例中,根据每个子任务的多个子结果的平均值,计算得到每个子任务的评测子结果。例如,在每个子任务有很多个子结果(例如至少四个)的情况下,去掉每个子任务的多个子结果中的最高值和最低值后,取剩余多个子结果的平均值,得到每个子任务相应的评测子结果。这种计算方式,能够去除由于网络等原因造成的异常子结果,进一步提高了评测的准确性。
在执行多个评测任务的情况下,将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的评测子结果分别与对应的阈值进行比较。在各个评测子结果都大于或等于对应的阈值的情况下,确定所述轮询查询子任务的评测子结果为所述评测结果。在其中任何一个评测子结果小于对应的阈值的情况下,例如发送交易子任务的评测子结果小于对应的阈值,说明评测得到的轮询查询子任务的评测子结果(即评测结果)受到了评测过程中发送交易子任务的影响。因此,可以定位评测过程中影响评测结果的瓶颈,从而可以采取相应的措施来改善,例如可以改进评测方法得到更加准确的评测结果。
应当理解,根据实际需要可以分别为创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的子结果和评测子结果设定一个阈值,这个阈值反映了每个子任务的正常性能指标。
图3示出根据本公开一些实施例的区块链的评测装置的框图。
如图3所示,区块链的评测装置3包括至少一个评测模块31,每个评测模块31包括获取单元311和执行单元312。获取单元311被配置为获取至少一个评测任务,例如执行图1所示的步骤S110。每个评测任务由多个子任务构成。子任务中的一部分根据待测试区块链的每个工作步骤得到。执行单元312被配置为执行每个评测任务的各个子任务,得到相应的子结果,例如执行图1所示的步骤S120。待测试区块链的评测结果根据各个子任务的子结果确定。
在采用分布式方式执行至少一个评测任务的情况下,区块链的评测装置3包括多个评测模块31。多个评测模块31分布在不同的处理机上。应当理解,每个评测模块31可以采用多线程执行至少一个评测任务。
图4示出根据本公开另一些实施例的区块链的评测装置的框图。
如图4所示,区块链的评测装置4包括存储器41以及耦接至该存储器41的处理器42。存储器41用于存储执行区块链的评测方法对应实施例的指令。处理器42被配置为基于存储在存储器41中的指令,执行本公开中任意一些实施例中的区块链的评测方法。
图5示出根据本公开一些实施例的区块链的评测系统的框图。
如图5所示,区块链的评测系统5包括至少一个处理机52。处理机52被配置为获取由多个子任务构成的至少一个评测任务和执行每个评测任务的各个子任务,得到相应的子结果。待测试区块链的评测结果根据各个子任务的子结果确定。
在一些实施例中,区块链的评测系统5采用非分布式方式进行评测。在这种情况下,区块链的评测系统5包括一个处理机52。处理机52还被配置为生成至少一个评测任务,获取各个子任务的子结果,并根据各个子任务的子结果确定待测试区块链的评测结果。
在采用一个处理机执行多个评测任务的情况下,处理机52还被配置为根据各个子任务的子结果,计算相应子任务的评测子结果,并根据评测子结果确定评测结果。
在另一些实施例中,区块链的评测系统5采用分布式方式进行评测。在这种情况下,区块链的评测系统5包括控制机51以及多个处理机52。控制机51被配置为生成至少一个评测任务,并将多个评测任务分配给多个处理机52,例如执行图1所示的步骤S101。控制机51还被配置为获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果,例如执行图1所示的步骤S130和步骤S150。
在采用多个处理机执行多个评测任务的情况下,控制机51还被配置为根据各个子任务的子结果,计算相应子任务的评测子结果,并根据评测子结果确定评测结果,例如执行图1所示的步骤S140和步骤S150。应当理解,在每个处理机中执行每个评测任务的各个子任务。
图6示出根据本公开一些实施例的区块链的评测系统的应用示图。
如图6所示,区块链的评测系统5对待测试区块链进行评测。待测试区块链中包括例如区块(Block)、共识和网络等功能模块,用于协助控制机51和处理机52完成评测。共识包括PoW(Proof of Work,工作量证明)、PoS(Proof of Stake,股权证明)、DPoS(DelegatedProof of Stake,授权股权证明)或者PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法),为待测试区块链的核心部分。
在执行多个评测任务,且一个处理机52无法负担的情况下,可采用分布式方式对待测试区块链进行评测,即采用控制机51和多个处理机52进行评测。这种方式能够最大限度地降低评测机器本身的性能对区块链性能的影响,提高评测的准确性。下面将详细描述区块链的评测系统采用分布式方式进行评测的工作步骤。
在评测之前,在控制机51和多个处理机52上配置评测环境。例如,在控制机51上将所有处理机52的IP添加到配置文件中,并在处理机52中将本机IP添加到配置文件中。这为控制机51和处理机52之间建立了直接通信环境,方便数据传输。
控制机51根据待测试区块链的每个工作步骤的核心函数生成创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务。创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务和轮询查询子任务构成每个评测任务。
控制机51将多个评测任务分配给多个处理机52。例如可以使用负载均衡和反向代理等技术,提供多种负载均衡算法,实现评测任务的分配。控制机51还可以控制处理机52执行评测任务或者不执行评测任务。在采用分布式方式进行评测的情况下,控制机51控制多个处理机52执行多个评测任务。
各个处理机52获取被分配的至少一个评测任务,并执行每个评测任务的各个子任务。即,各个处理机52在待测试区块链中创建系统账户、部署合约、创建链账户、发送交易和轮询查询待测试区块链的共识反馈。发送交易还包括签名和发送两个步骤。应当理解,每个评测任务中可以设置发送至少一笔交易。
在评测过程中,各个处理机52获得各个子任务的子结果。即,处理机52在待测试区块链中按顺序执行创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务,得到对应的子结果。待测试区块链采用共识机制处理发送交易子任务发送到待测试区块链的至少一笔交易,使待测试区块链达成分布式共识。处理机52执行轮询查询子任务,不断查询待测试区块链的共识反馈,在得到共识反馈后,获得轮询查询子任务的子结果。
应当理解,每个处理机52也可采用多线程执行多个评测任务,并按照创建系统账户、部署合约、创建链账户、发送交易和轮询查询的顺序执行每个评测任务。
在评测前,各个处理机52上部署有执行评测任务的创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的脚本,这种脚本是根据待测试区块链的各个工作步骤的核心函数编写。各个处理机52上还部署有共识的脚本,用于发送交易子任务将至少一笔交易以特定的格式发送到待测试区块链。
在编写脚本之前,需要完成一系列的前置操作,以确认各个工作步骤和共识的核心函数。前置操作可以包括:了解系统账户创建过程中的账户类型、格式规范等,确认部署合约过程中智能合约的位置,确认创建链账户时的账户权限,确认发送交易时的账户地址以及共识时的交易类型等。
在编写脚本的过程中,将分析各个工作步骤和待测试区块链的共识得到的这些核心函数放入定义的sampleResult.sampleStart()和sampleResult.sampleEnd()两个函数之间。设置各个工作步骤(对应创建系统账户子任务、部署合约子任务、创建链账户子任务和发送交易子任务)的时间起止条件,根据时间起止条件得到相应的子结果。例如,创建系统账户的起止时间可以设置为开始创建系统账户到返回创建结果的时间;部署合约的起止时间可以设置为开始部署合约到合约部署完成的时间;创建链账户的起止时间可以设置为开始创建链账户到返回创建结果的时间;发送交易的起止时间可以设置为从写好交易到待测试区块链中2/3的节点接收到交易的时间,轮询查询的起止时间可以设置为从发送交易结束到轮询查询到待测试区块链的共识反馈的时间。
控制机51从各个处理机52获得相应的子结果,并存储。例如可以采用数据库的方式存储相应的子结果,并按照以下步骤确定评测结果。
首先,根据每个子任务的多个子结果的平均值,计算每个子任务的评测子结果。例如,在每个子任务有很多个子结果(例如至少四个)的情况下,去掉每个子任务的子结果中的最高值和最低值后,取剩余多个子结果的平均值,得到每个子任务的评测子结果。然后,根据多个评测子结果,确定待测试区块链的评测结果。例如,通过以下方式确定评测结果。
将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的评测子结果分别与对应的阈值进行比较。在各个评测子结果都大于或等于对应的阈值的情况下,确定所述轮询查询子任务的评测子结果为所述评测结果。在其中任何一个评测子结果小于对应的阈值的情况下,例如发送交易子任务的评测子结果小于对应的阈值,说明评测得到的轮询查询子任务的评测子结果(即评测结果)受到了评测过程中发送交易子任务的影响。因此,可以定位评测过程中影响评测结果的瓶颈,从而可以采取相应的措施来改善,例如可以改进评测系统得到更加准确的评测结果。
应当理解,根据实际需要可以分别为创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的评测子结果设定一个阈值,这个阈值反映了每个子任务的正常性能指标。
图7示出用于实现本公开一些实施例的计算机系统的框图。
如图7所示,计算机系统70可以通用计算设备的形式表现。计算机系统70包括存储器710、处理器720和连接不同系统组件的总线700。
存储器710例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行信息发送方法和信息接收方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器720可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线700可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统70还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730、740、750以及存储器710和处理器720之间可以通过总线700连接。输入输出接口730可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口740为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的区块链的评测方案,能够依据区块链差异化实现特点,对不同的区块链进行针对性地评测,具有普适性。本公开还以过程为导向进行评测,实现对评测过程全流程的监控,准确定位影响区块链性能的瓶颈,有助于在评测过程中及时发现问题。
进一步地,本公开采用分布式方式进行测评,即采用控制机、代理机分布式评测模式,模拟区块链的真实运行场景,最大限度地降低机器因素对待测试区块链性能的影响,提高了评测的准确性。
至此,已经详细描述了根据本公开的区块链的评测方法、装置及系统,和计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
Claims (16)
1.一种区块链的评测方法,包括:
获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;
执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定,其中,在存在多个评测任务的情况下,采用分布式方式执行所述多个评测任务其中,控制机生成至少一个评测任务,将所述评测任务分配给多个处理机,从各个处理机中获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果,其中,根据各个子任务的子结果确定所述待测试区块链的评测结果包括:在各个子任务的子结果大于或等于对应阈值的情况下,确定子任务的子结果为评测结果,在任何一个子任务的子结果小于对应阈值的情况下,说明评测结果受到了评测过程中该子任务的影响,从而定位评测过程中影响评测结果的瓶颈,在每个处理机中执行每个评测任务的各个子任务。
2.根据权利要求1所述的区块链的评测方法,其中,
所述子任务包括:创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务、轮询查询子任务;
执行所述评测任务的各个子任务包括:按顺序执行创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务和轮询查询子任务。
3.根据权利要求2所述的区块链的评测方法,其中,
执行所述轮询查询子任务包括:轮询查询所述待测试区块链的共识反馈,得到相应的子结果。
4.根据权利要求2所述的区块链的评测方法,还包括:
将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的子结果分别与对应的阈值进行比较:
在各个子结果都大于或等于对应的阈值的情况下,确定所述轮询查询子任务的子结果为所述评测结果。
5.根据权利要求2所述的区块链的评测方法,还包括:
根据执行多个所述评测任务得到的子结果,计算相应子任务的评测子结果,其中,所述待测试区块链的评测结果根据各个子任务的评测子结果确定。
6.根据权利要求5所述的区块链的评测方法,其中,根据每个子任务的多个子结果的平均值,计算每个子任务的评测子结果。
7.根据权利要求5所述的区块链的评测方法,还包括:
将创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务的评测子结果分别与对应的阈值进行比较:
在各个评测子结果都大于或等于对应的阈值的情况下,确定所述轮询查询子任务的评测子结果为所述评测结果。
8.根据权利要求2所述的区块链的评测方法,还包括:根据每个所述工作步骤的核心函数生成创建系统账户子任务、部署合约子任务、创建链账户子任务、发送交易子任务。
9.根据权利要求1所述的区块链的评测方法,其中,所述子结果为每秒事务处理量TPS。
10.一种区块链的评测装置,包括至少一个评测模块,每个评测模块包括:
获取单元,被配置为获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;
执行单元,被配置为执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定,其中,在存在多个评测任务的情况下,采用分布式方式执行所述多个评测任务,其中,控制机生成至少一个评测任务,将所述评测任务分配给多个处理机,从各个处理机中获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果,其中,根据各个子任务的子结果确定所述待测试区块链的评测结果包括:在各个子任务的子结果大于或等于对应阈值的情况下,确定子任务的子结果为评测结果,在任何一个子任务的子结果小于对应阈值的情况下,说明评测结果受到了评测过程中该子任务的影响,从而定位评测过程中影响评测结果的瓶颈,在每个处理机中执行每个评测任务的各个子任务。
11.一种区块链的评测装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行如权利要求1至9任一项所述的区块链的评测方法。
12.一种区块链的评测系统,包括:
至少一个处理机,所述处理机被配置为:获取至少一个评测任务,每个评测任务由多个子任务构成,其中,所述子任务中的一部分根据待测试区块链的每个工作步骤得到;执行每个评测任务的各个子任务,得到相应的子结果,其中,所述待测试区块链的评测结果根据各个子任务的子结果确定;和
控制机,所述控制机被配置为:生成至少一个评测任务,并将所述评测任务分配给多个所述处理机;从各个处理机中获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果,其中,根据各个子任务的子结果确定所述待测试区块链的评测结果包括:在各个子任务的子结果大于或等于对应阈值的情况下,确定子任务的子结果为评测结果,在任何一个子任务的子结果小于对应阈值的情况下,说明评测结果受到了评测过程中该子任务的影响,从而定位评测过程中影响评测结果的瓶颈,在一个所述处理机中执行每个评测任务的各个子任务。
13.根据权利要求12所述的区块链的评测系统,其中,所述控制机还被配置为:
根据各个子任务的子结果,计算相应子任务的评测子结果;
根据所述评测子结果确定所述评测结果。
14.根据权利要求12所述的区块链的评测系统,其中,所述处理机还被配置为:
生成至少一个评测任务;
从待测试区块链中获取各个子任务的子结果,并根据各个子任务的子结果确定所述待测试区块链的评测结果。
15.根据权利要求14所述的区块链的评测系统,其中,所述处理机还被配置为:
根据各个子任务的子结果,计算相应子任务的评测子结果;
根据所述评测子结果确定所述评测结果。
16.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至9任一项所述的区块链的评测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622796.9A CN111382047B (zh) | 2018-12-28 | 2018-12-28 | 区块链的评测方法、装置及系统,和计算机可存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622796.9A CN111382047B (zh) | 2018-12-28 | 2018-12-28 | 区块链的评测方法、装置及系统,和计算机可存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382047A CN111382047A (zh) | 2020-07-07 |
CN111382047B true CN111382047B (zh) | 2023-07-14 |
Family
ID=71220471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811622796.9A Active CN111382047B (zh) | 2018-12-28 | 2018-12-28 | 区块链的评测方法、装置及系统,和计算机可存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382047B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113079067A (zh) * | 2021-03-30 | 2021-07-06 | 上海万向区块链股份公司 | 基于多维度数据整合分析的联盟链性能瓶颈测试系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170590A (zh) * | 2017-12-12 | 2018-06-15 | 北京大学深圳研究生院 | 一种区块链系统的测试系统和方法 |
CN108763058A (zh) * | 2018-04-24 | 2018-11-06 | 苏州同济区块链研究院有限公司 | 一种区块链测评系统 |
CN109034571A (zh) * | 2018-07-12 | 2018-12-18 | 天津中教优效教育科技有限公司 | 基于区块链的教育评价方法、平台、存储介质和系统 |
CN109039648A (zh) * | 2018-08-03 | 2018-12-18 | 克洛斯比尔有限公司 | 一种区块链的创建方法、设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106101242B (zh) * | 2016-06-24 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 区块链云服务平台的构建方法和装置 |
CN108647361B (zh) * | 2018-05-21 | 2021-12-03 | 中国工商银行股份有限公司 | 一种基于区块链的数据存储方法、装置及系统 |
-
2018
- 2018-12-28 CN CN201811622796.9A patent/CN111382047B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170590A (zh) * | 2017-12-12 | 2018-06-15 | 北京大学深圳研究生院 | 一种区块链系统的测试系统和方法 |
CN108763058A (zh) * | 2018-04-24 | 2018-11-06 | 苏州同济区块链研究院有限公司 | 一种区块链测评系统 |
CN109034571A (zh) * | 2018-07-12 | 2018-12-18 | 天津中教优效教育科技有限公司 | 基于区块链的教育评价方法、平台、存储介质和系统 |
CN109039648A (zh) * | 2018-08-03 | 2018-12-18 | 克洛斯比尔有限公司 | 一种区块链的创建方法、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111382047A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN109634843B (zh) | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 | |
CN106970880B (zh) | 一种分布式自动化软件测试方法及系统 | |
US7890808B2 (en) | Testing software applications based on multiple data sources | |
CN110233802B (zh) | 一种构建一主链多侧链的区块链架构的方法 | |
US9471383B2 (en) | Task allocation in a computing environment | |
CN110752969B (zh) | 一种性能检测方法、装置、设备及介质 | |
CN109542718B (zh) | 服务调用的监控方法、装置、存储介质及服务器 | |
CN108647137B (zh) | 一种作业性能预测方法、装置、介质、设备及系统 | |
CN110740054A (zh) | 一种基于强化学习的数据中心虚拟化网络故障诊断方法 | |
CN110855477A (zh) | 链路日志监控方法、装置、计算机设备和存储介质 | |
CN112799923A (zh) | 系统异常原因确定方法、装置、设备及存储介质 | |
CN111443999A (zh) | 数据并行处理方法、执行器、计算机设备和存储介质 | |
US11500679B2 (en) | Operating a controller in a motor vehicle according to different time slots | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
CN113872828A (zh) | 区块链预言机状态监控方法 | |
CN111382047B (zh) | 区块链的评测方法、装置及系统,和计算机可存储介质 | |
Barrameda et al. | A novel statistical cost model and an algorithm for efficient application offloading to clouds | |
JP6888737B2 (ja) | 学習装置、学習方法、及びプログラム | |
CN110084476B (zh) | 案件调整方法、装置、计算机设备和存储介质 | |
Zacheilas et al. | Dione: Profiling spark applications exploiting graph similarity | |
Nozomi et al. | Unavailability-aware backup allocation model for middleboxes with two-stage shared protection | |
Koch et al. | SMiPE: estimating the progress of recurring iterative distributed dataflows | |
CN115168509A (zh) | 风控数据的处理方法及装置、存储介质、计算机设备 | |
US10255128B2 (en) | Root cause candidate determination in multiple process systems |
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 |