一种可视化区块链共识算法性能测试方法技术

技术编号:31828980 阅读:18 留言:0更新日期:2022-01-12 13:03
一种可视化区块链共识算法性能测试方法,在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端实现共识算法模块、网络仿真模块、数据采集模块;在测试及可视化界面设置共识算法参数、网络参数、客户端参数、共识节点参数,开始共识算法性能测试;后端根据相应的参数配置共识算法模块、网络仿真模块,并通过数据采集模块采集运行相关数据;在测试及可视化界面动态渲染共识、Debug过程,并分析吞吐量、延时、容错性;在测试管理界面管理测试数据,在测试比较界面比较测试数据。本方法具有简单直观、可视化的优点,降低学习难度,提高学习效率,改善用户体验;采用前后端分离开发方式,可以方便地添加新功能,具有很好的扩展性。扩展性。扩展性。

【技术实现步骤摘要】
一种可视化区块链共识算法性能测试方法


[0001]本专利技术涉及区块链领域,尤其涉及一种可视化区块链共识算法性能测试方法。

技术介绍

[0002]共识算法是区块链技术的核心要素,它解决了分布式网络节点之间相互信任的问题。同时,共识算法也是近年来分布式系统研究的热点。
[0003]目前,共识算法的研究受到很多因素的制约。对于共识算法的研究者,设计和实现共识算法的同时,还需要处理节点之间的通信、节点部署、密码学等问题。测试共识算法也需要大量的节点进行性能测试,同时也很难设置网络的可靠性、延迟等属性,节点的宕机、拜占庭行为,也缺少节点之间的通信数据对共识算法进行性能分析。对于共识算法的学习者,需要了解不同共识算法的具体实现,但是不同的共识算法往往采用不同的编程语言实现,这大大提高了共识算法的学习难度。因此,为了提高共识算法研究者的研究效率,为了降低共识算法学习者的学习难度,区块链共识算法的性能测试方法及系统被引入。
[0004]现有的区块链共识算法性能测试方案并不多,有采用真实节点进行测试,有采用中间节点进行测试,也有采用Docker进行测试,有使用命令行进行可视化,有使用共识算法运行过程中占用的计算机资源进行性能分析等。这些方案存在以下几个问题:第一,测试方式复杂,测试系统部署繁琐,同时测试系统参数难以配置;第二,共识算法性能分析不够严谨,缺少对网络不可靠、网络延迟、共识节点宕机、共识节点拜占庭行为等情况下的数据分析;第三,大多数测试系统仅仅针对以太坊和HyperLedger Fabric的共识算法进行性能测试,即只针对PoW和PBFT共识算法进行性能测试,不能测试研究者实现的共识算法,通用性不足;最后,共识过程的可视化不够简单和直观。

技术实现思路

[0005]针对上述问题,本专利技术的目的在于提供一种可视化区块链共识算法性能测试方法,旨在解决区块链共识算法测试方式复杂、测试系统部署繁琐、测试系统参数难以配置、共识算法性能分析不够严谨、测试对象单一、通用性不足、共识过程可视化不够简单直观等问题。
[0006]一种可视化区块链共识算法性能测试方法,包括以下步骤:
[0007]S1、在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端建立共识算法模块、网络仿真模块、数据采集模块;
[0008]S2、在测试及可视化界面设置共识算法参数、网络参数、客户端参数、共识节点参数,开始共识算法性能测试;
[0009]S3、后端根据相应的参数配置共识算法模块、网络仿真模块,并通过数据采集模块采集共识算法运行时的相关数据;
[0010]S4、在测试及可视化界面动态渲染共识过程、Debug过程,并分析共识算法的吞吐量、延时、容错性;
[0011]S5、在测试管理界面管理测试数据,在测试比较界面比较测试数据。
[0012]进一步地,所述测试及可视化界面设置的共识算法参数包括共识节点数量、主节点id、共识算法运行的轮数,网络参数包括网络的可靠性、网络是否延迟、网络是否延迟回应,客户端参数包括客户端id、客户端发送的指令,共识节点参数包括用户想要断连的节点id、是否成为拜占庭节点的id。
[0013]进一步地,所述测试及可视化界面通过不同的显示方式表示不同节点在共识过程中的不同状态,通过不同颜色分别标记客户端节点、主节点和普通共识节点,通过不同标识分别表示每个节点的计时器、节点处于宕机状态、节点是拜占庭节点、节点共识成功或节点共识失败。
[0014]进一步地,所述测试及可视化界面通过数据采集模块采集的数据分析共识算法的吞吐量、延时、容错性,并通过ECharts可视化吞吐量、延时、容错性,其中,柱状图表示节点之间调用的RPC数量和节点之间传输消息的字节大小,折线图表示吞吐量、延时和容错性。
[0015]进一步地,所述共识算法模块用于调用不同的共识算法,并根据设置的共识算法参数初始化共识节点,根据设置的共识算法运行轮数运行共识算法。
[0016]进一步地,所述网络仿真模块通过Go语言的反射技术模拟RPC远程过程调用,并模拟区块链网络、区块链节点,通过模拟的网络设置网络属性如网络可靠、延迟、延迟回应,通过模拟的区块链节点设置区块链节点是否可靠,是否发生宕机、拜占庭行为。
[0017]进一步地,所述数据采集模块通过网络和共识节点结构体中的相关变量获取共识节点之间调用的RPC数量、传输消息的字节大小、每轮共识的时间和每轮共识的结果,为共识算法的性能分析提供参考数据。
[0018]进一步地,所述测试管理界面用于管理历史测试数据,在此页面通过表格形式显示每轮共识算法运行的相关数据,并对此数据进行编辑和删除操作。
[0019]进一步地,所述测试比较界面用于比较历史测试数据,通过多选框选择要比较的历史测试数据,通过计数器选择要比较的轮数,通过下拉菜单选择要比较的性能指标。
[0020]本专利技术的有益效果为:
[0021]本专利技术提供的可视化区块链共识算法性能测试方法,为区块链共识算法性能测试提供一个易部署配置的、通用的、简单直观的可视化测试方案,在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端实现共识算法模块、网络仿真模块、数据采集模块。对于共识算法研究者,可以在前端调配共识算法、网络、客户端、共识节点相关的参数,通过可视化的Debug改进自己的共识算法,通过ECharts分析共识算法的吞吐量、延时、容错性,共识算法研究者只需要关注共识算法的实现和改进,而无需关心节点的部署及测试的流程。对于共识算法学习者,本专利技术提供的技术方案具有简单直观、可视化的优点,降低了学习共识算法的难度,提高了学习效率,改善了用户体验。此外,本专利技术采用前后端分离的开发方式,可以很方便的添加新的功能,具有很好的扩展性。
附图说明
[0022]图1是本专利技术实施例中提供的一种可视化区块链共识算法性能测试方法的架构图。
[0023]图2是本专利技术实施例中提供的一种RPC调用的架构图。
[0024]图3是本专利技术实施例中提供的共识算法测试及可视化界面的一种实现方式的结构示意图。
[0025]图4是本专利技术实施例中提供的一种共识节点状态的示意图。
[0026]图5是本专利技术实施例中提供的共识算法测试管理界面的一种实现方式的结构示意图。
[0027]图6是本专利技术实施例中提供的共识算法测试比较界面的一种实现方式的结构示意图。
具体实施方式
[0028]下面结合说明书附图对本专利技术的技术方案做进一步的详细说明。
[0029]参见图1,是本实施例提供的一种可视化区块链共识算法性能测试方法的架构图。
[0030]具体地,本实施例提供的可视化区块链共识算法性能测试方法的架构包括:用户层、共识层、可视化层、网络层、数据层。
[0031]优选地,所述用户层101,用于设置共识算法、网络相关的参数,对共识算法进行性能分析,并对测试数据进行管理和比较。所述用户层包括共识算法设置模块、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可视化区块链共识算法性能测试方法,其特征在于:包括以下步骤:S1、在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端建立共识算法模块、网络仿真模块、数据采集模块;S2、在测试及可视化界面设置共识算法参数、网络参数、客户端参数、共识节点参数,开始共识算法性能测试;S3、后端根据相应的参数配置共识算法模块、网络仿真模块,并通过数据采集模块采集共识算法运行时的相关数据;S4、在测试及可视化界面动态渲染共识过程、Debug过程,并分析共识算法的吞吐量、延时、容错性;S5、在测试管理界面管理测试数据,在测试比较界面比较测试数据。2.根据权利要求1所述的一种可视化区块链共识算法性能测试方法,其特征在于:所述测试及可视化界面设置的共识算法参数包括共识节点数量、主节点id、共识算法运行的轮数,网络参数包括网络的可靠性、网络是否延迟、网络是否延迟回应,客户端参数包括客户端id、客户端发送的指令,共识节点参数包括用户想要断连的节点id、是否成为拜占庭节点的id。3.根据权利要求1所述的一种可视化区块链共识算法性能测试方法,其特征在于:所述测试及可视化界面通过不同的显示方式表示不同节点在共识过程中的不同状态,通过不同颜色分别标记客户端节点、主节点和普通共识节点,通过不同标识分别表示每个节点的计时器、节点处于宕机状态、节点是拜占庭节点、节点共识成功或节点共识失败。4.根据权利要求1所述的一种可视化区块链共识算法性能测试方法,其特征在于:所述测试及可视化界面通过数据采集模块采集的数据分析共识算法的吞吐量...

【专利技术属性】
技术研发人员:李鹏鲁意王汝传徐鹤樊卫北张玉杰金善朝杨宏章
申请(专利权)人:江苏安防科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1