一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种可视化区块链共识算法性能测试方法与流程

2022-02-20 07:07:59 来源:中国专利 TAG:


1.本发明涉及区块链领域,尤其涉及一种可视化区块链共识算法性能测试方法。


背景技术:

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


技术实现要素:

5.针对上述问题,本发明的目的在于提供一种可视化区块链共识算法性能测试方法,旨在解决区块链共识算法测试方式复杂、测试系统部署繁琐、测试系统参数难以配置、共识算法性能分析不够严谨、测试对象单一、通用性不足、共识过程可视化不够简单直观等问题。
6.一种可视化区块链共识算法性能测试方法,包括以下步骤:
7.s1、在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端建立共识算法模块、网络仿真模块、数据采集模块;
8.s2、在测试及可视化界面设置共识算法参数、网络参数、客户端参数、共识节点参数,开始共识算法性能测试;
9.s3、后端根据相应的参数配置共识算法模块、网络仿真模块,并通过数据采集模块采集共识算法运行时的相关数据;
10.s4、在测试及可视化界面动态渲染共识过程、debug过程,并分析共识算法的吞吐量、延时、容错性;
11.s5、在测试管理界面管理测试数据,在测试比较界面比较测试数据。
12.进一步地,所述测试及可视化界面设置的共识算法参数包括共识节点数量、主节点id、共识算法运行的轮数,网络参数包括网络的可靠性、网络是否延迟、网络是否延迟回应,客户端参数包括客户端id、客户端发送的指令,共识节点参数包括用户想要断连的节点id、是否成为拜占庭节点的id。
13.进一步地,所述测试及可视化界面通过不同的显示方式表示不同节点在共识过程中的不同状态,通过不同颜色分别标记客户端节点、主节点和普通共识节点,通过不同标识分别表示每个节点的计时器、节点处于宕机状态、节点是拜占庭节点、节点共识成功或节点共识失败。
14.进一步地,所述测试及可视化界面通过数据采集模块采集的数据分析共识算法的吞吐量、延时、容错性,并通过echarts可视化吞吐量、延时、容错性,其中,柱状图表示节点之间调用的rpc数量和节点之间传输消息的字节大小,折线图表示吞吐量、延时和容错性。
15.进一步地,所述共识算法模块用于调用不同的共识算法,并根据设置的共识算法参数初始化共识节点,根据设置的共识算法运行轮数运行共识算法。
16.进一步地,所述网络仿真模块通过go语言的反射技术模拟rpc远程过程调用,并模拟区块链网络、区块链节点,通过模拟的网络设置网络属性如网络可靠、延迟、延迟回应,通过模拟的区块链节点设置区块链节点是否可靠,是否发生宕机、拜占庭行为。
17.进一步地,所述数据采集模块通过网络和共识节点结构体中的相关变量获取共识节点之间调用的rpc数量、传输消息的字节大小、每轮共识的时间和每轮共识的结果,为共识算法的性能分析提供参考数据。
18.进一步地,所述测试管理界面用于管理历史测试数据,在此页面通过表格形式显示每轮共识算法运行的相关数据,并对此数据进行编辑和删除操作。
19.进一步地,所述测试比较界面用于比较历史测试数据,通过多选框选择要比较的历史测试数据,通过计数器选择要比较的轮数,通过下拉菜单选择要比较的性能指标。
20.本发明的有益效果为:
21.本发明提供的可视化区块链共识算法性能测试方法,为区块链共识算法性能测试提供一个易部署配置的、通用的、简单直观的可视化测试方案,在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端实现共识算法模块、网络仿真模块、数据采集模块。对于共识算法研究者,可以在前端调配共识算法、网络、客户端、共识节点相关的参数,通过可视化的debug改进自己的共识算法,通过echarts分析共识算法的吞吐量、延时、容错性,共识算法研究者只需要关注共识算法的实现和改进,而无需关心节点的部署及测试的流程。对于共识算法学习者,本发明提供的技术方案具有简单直观、可视化的优点,降低了学习共识算法的难度,提高了学习效率,改善了用户体验。此外,本发明采用前后端分离的开发方式,可以很方便的添加新的功能,具有很好的扩展性。
附图说明
22.图1是本发明实施例中提供的一种可视化区块链共识算法性能测试方法的架构图。
23.图2是本发明实施例中提供的一种rpc调用的架构图。
24.图3是本发明实施例中提供的共识算法测试及可视化界面的一种实现方式的结构示意图。
25.图4是本发明实施例中提供的一种共识节点状态的示意图。
26.图5是本发明实施例中提供的共识算法测试管理界面的一种实现方式的结构示意图。
27.图6是本发明实施例中提供的共识算法测试比较界面的一种实现方式的结构示意图。
具体实施方式
28.下面结合说明书附图对本发明的技术方案做进一步的详细说明。
29.参见图1,是本实施例提供的一种可视化区块链共识算法性能测试方法的架构图。
30.具体地,本实施例提供的可视化区块链共识算法性能测试方法的架构包括:用户层、共识层、可视化层、网络层、数据层。
31.优选地,所述用户层101,用于设置共识算法、网络相关的参数,对共识算法进行性能分析,并对测试数据进行管理和比较。所述用户层包括共识算法设置模块、网络设置模块、客户端设置模块、共识节点设置模块、共识算法性能分析模块、测试管理模块和测试比较模块。共识算法设置模块可以设置共识节点的数量、客户端id、主节点id;网络设置模块可以设置网络是否可靠、网络是否延迟、网络是否延迟回应;客户端设置模块可以输入发送的指令内容、共识算法运行的轮次、显示共识算法的运行结果;共识节点设置模块可以选择节点进行断连,模拟节点的宕机和拜占庭行为,可以查看某个节点是否可用。共识算法性能分析模块通过echarts对共识算法的吞吐量、延时、容错性进行折线图分析,并通过柱状图显示共识过程中节点之间调用的rpc数量和发送消息的字节大小。测试管理模块主要对历史测试数据进行编辑和删除操作。测试比较模块可以对历史测试进行比较,比较不同测试的吞吐量、延时、容错性。
32.优选地,所述共识层102,用于调用不同的共识算法,共识算法研究者实现make和start方法即可测试自己的共识算法,通过make方法初始化共识节点,通过start方法运行共识算法。
33.优选地,所述可视化层103,用于共识过程的可视化和debug的可视化,前端获取后端发送的共识算法相关的数据,通过vue动态渲染共识过程和debug过程。
34.优选地,所述网络层104,用于仿真区块链网络、rpc远程过程调用、客户端以及区块链节点。所述网络层包括网络管理模块、rpc管理模块、客户端管理模块和共识节点管理模块。网络管理模块可以设置网络是否可靠、网络是否延迟、网络是否延迟回应,网络管理模块通过map映射客户端的名称和客户端结构体、共识节点的名称和共识节点结构体,同时,通过map映射共识节点和共识节点是否可用的情况、客户端和共识节点的连接情况、共识节点和共识节点的连接情况,并且,通过通道接收客户端发送的请求并做相应的处理,通过通道接收关闭网络的指令。rpc管理模块通过go语言的reflect机制仿真rpc远程过程调用,实现call方法和dispatch方法,客户端和共识节点通过call方法调用目标节点的进程,目标节点通过dispatch方法处理相应的调用请求。客户端管理模块主要初始化客户端,并将客户端连接至区块链网络。共识节点管理模块可以添加共识节点、删除共识节点、判断共
识节点是否可用、添加共识节点的服务。
35.优选地,所述数据层105,用于获取共识算法运行时节点之间调用的rpc数量、传输消息的字节大小、每一轮共识运行的时间、每一轮共识运行的结果,并将这些数据发送给前端做可视化处理和共识算法性能分析。
36.本实施例提供的可视化区块链共识算法性能测试方法,主要包括以下步骤s1~s5:
37.步骤s1:在前端建立共识算法测试及可视化界面、测试管理界面、测试比较界面,在后端实现共识算法模块、网络仿真模块、数据采集模块。
38.在本步骤中,前端采用vue框架开发,共识算法测试及可视化界面、测试管理界面、测试比较界面采用element ui快速构建,采用echarts做数据的可视化;后端采用gin框架实现,采用gorm做orm框架。
39.后端实现的共识算法模块通过go语言的插件技术调用不同的共识算法,需要测试的共识算法需要实现make方法和start方法,make方法初始化共识节点,start方法开始运行共识算法,节点之间通过rpc远程过程调用进行消息传输,所以通过仿真的rpc可以很方便得获取节点之间调用的rpc数量、传输消息的字节大小、每轮共识运行的时间、每轮共识运行的结果,这为共识算法的性能分析提供了数据支撑。
40.后端实现的网络仿真模块通过go语言的反射技术模拟rpc远程过程调用,并模拟区块链网络、客户端、共识节点。通过模拟的网络可以设置网络可靠、延迟、延迟回应等属性,通过模拟的客户端可以设置客户端和共识节点的连接情况,通过模拟的共识节点可以设置共识节点是否可靠、宕机、拜占庭行为,也可以设置共识节点和客户端的连接情况、共识节点和共识节点的连接情况。
41.后端实现的数据采集模块通过网络和共识节点结构体中的count变量和byte变量获取共识节点之间调用的rpc数量和传输消息的字节大小,并通过consensus_time变量和consensus_result变量获取每轮共识的时间和结果。
42.步骤s2:在测试及可视化界面设置共识算法参数、网络参数、客户端参数、共识节点参数,开始共识算法性能测试。
43.具体实施时,前后端采用restfulapi进行通信,get请求表示查找操作、post请求表示添加操作,put请求表示编辑操作,delete请求表示删除操作。同时,采用nginx做端口转发和负载均衡。用户可以在共识算法测试及可视化界面通过输入框设置共识节点数量、客户端id、主节点id、客户端发送的指令、断连节点id,通过开关设置网络的可靠性、延迟、延迟回应,通过计数器设置共识算法运行的轮数,通过搜索按钮查看共识节点是否可用,点击提交按钮,开始测试共识算法,nginx将这些参数通过post请求发送给后端。
44.步骤s3:后端根据相应的参数配置共识算法模块、网络仿真模块,并通过数据采集模块采集共识算法运行时的相关数据。
45.具体实施时,网络仿真模块通过前端设置的网络参数设置网络的可靠、延迟、延迟回应属性,通过设置的客户端id初始化客户端,将客户端加入区块链网络;共识算法模块通过设置的共识节点数量初始化共识节点,将共识节点加入区块链网络,并将共识节点设置为可用;网络仿真模块连接客户端和共识节点,连接共识节点和共识节点,将共识节点提供的rpc服务添加至server;共识算法模块通过共识算法的start方法运行共识算法,执行客
户端发出的指令。
46.进一步地,参见图2,是本实施例提供的一种rpc调用的架构图。
47.客户端201通过call方法向区块链网络的消息通道发送request请求,并等待区块链网络的reply响应。区块链网络202通过select监听消息通道,当接收到客户端发送的request请求,通过processreq方法处理该请求。在processreq方法中,根据步骤s2设置的网络是否可靠、延迟、延迟回应属性对request请求做相应的处理,通过dispatch方法将request请求发送给该请求中指定的共识节点,调用共识节点203中的服务204。共识节点接收到区块链网络发送的request请求,通过dispatch方法将request请求发送给该请求中指定的服务。服务接收到request请求以后,执行该请求,并将执行结果reply返回给共识节点。共识节点接收到reply之后将该reply响应给区块链网络,区块链网络接收到reply之后将该reply响应给客户端。对于区块链网络中的共识节点,它既是客户端也是服务器。
48.数据采集模块通过网络和共识节点结构体中的count变量和byte变量获取共识节点之间调用的rpc数量和传输消息的字节大小,通过consensus_time变量和consensus_result变量获取每轮共识的时间和结果,并通过nginx将数据返回给前端。
49.步骤s4:在测试及可视化界面动态渲染共识过程、debug过程,并分析共识算法的吞吐量、延时、容错性。
50.参见图3,是本实施例提供的共识算法测试及可视化界面的一种实现方式的结构示意图。
51.具体实施时,前端从nginx接收后端返回的数据,通过vue的数据双向绑定动态渲染共识过程和debug过程,同时,通过echarts对共识算法的吞吐量、延时、容错性进行分析,其中,柱状图表示节点之间调用的rpc数量和节点之间传输消息的字节大小,折线图表示吞吐量、延时和容错性。
52.进一步地,参见图4,是本实施例提供的一种共识节点状态的示意图。
53.颜色为#5793f3的圆401表示客户端节点,颜色为#d14a61的圆402表示主节点,颜色为#39b3e3的圆403表示普通共识节点,圆404通过饼状图不同比例的显示方式表示每个节点的计时器,圆405表示节点处于宕机状态,或者该节点是拜占庭节点,圆406表示该节点共识成功,圆407表示该节点共识失败。
54.步骤s5:在测试管理界面管理测试数据,在测试比较界面比较测试数据。
55.参见图5,是本实施例提供的共识算法测试管理界面的一种实现方式的结构示意图。
56.具体实施时,用户可以选择每页展示的测试数据条数,可以点击下方的页码直接跳转对应的页面,也可以通过在输入框中输入对应的页码进行页面跳转。同时,用户可以通过编辑按钮编辑测试的名称、测试的吞吐量、延时、容错等数据,也可以通过删除按钮删除对应的测试数据。
57.参见图6,是本实施例提供的共识算法测试比较界面的一种实现方式的结构示意图。
58.具体实施时,用户可以通过多选框选择要比较的测试数据,可以通过计数器选择要比较的轮数,也可以通过下拉菜单对共识算法的吞吐量、延时、容错性进行比较,点击比较按钮进行不同测试数据的比较。
59.以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献