一种区块链共识算法的测试框架制造技术

技术编号:27813906 阅读:15 留言:0更新日期:2021-03-30 10:00
本申请适用于区块链技术领域,提供了一种区块链共识算法的测试框架,包括:节点配置模块,用于根据节点配置文件配置本地的区块链节点;节点模块,用于向其它区块链节点广播区块,或者用于接收其它区块链节点广播的区块;核心规则接口模块,用于根据用户输入的核心规则文件配置区块链共识算法的核心规则;区块森林模块,用于从节点模块中获取区块,以及调用核心规则对区块执行核心规则对应的预设操作;测试模块,用于根据区块森林模块对区块执行的预设操作,确定用于表征区块链共识算法的性能的测试结果。测试框架可以公平地对比不同共识算法之间由于核心规则的不同而引起的性能差异,进而方便针对影响区块链共识算法性能的本质因素给出测试结果。素给出测试结果。素给出测试结果。

【技术实现步骤摘要】
一种区块链共识算法的测试框架


[0001]本申请属于区块链
,尤其涉及一种区块链共识算法的测试框架。

技术介绍

[0002]区块链技术的快速发展使得很多新型的拜占庭容错(Byzantinefault

tolerant,BFT)共识算法被用于构建联盟链,这些BFT共识算法之间的不同点通常在于节点对区块的投票规则以及确认规则的不同,但这些共识算法通常都具有相同的数据结构、网络拓扑及节点交互模式等。
[0003]由于采用不同的BFT共识算法构建的联盟链的性能通常不同,因此对采用不同的BFT共识算法构建的联盟链的性能进行测试是非常必要的。现有的联盟链性能测试方法主要是从系统层面对联盟链的性能进行测试,然而,由于每个联盟链的实现方式千差万别,因此该性能测试方法很难找出影响联盟链性能差异的本质因素,进而难以针对影响联盟链性能的本质因素给出测试结果。

技术实现思路

[0004]有鉴于此,本申请实施例提供了一种区块链共识算法的测试框架,以解决现有的联盟链性能测试方法很难找出影响联盟链性能差异的本质因素,进而难以针对影响联盟链性能的本质因素给出测试结果的技术问题。
[0005]本申请实施例提供一种区块链共识算法的测试框架,包括:
[0006]节点配置模块,用于根据节点配置文件配置本地的区块链节点;
[0007]节点模块,与所述节点配置模块连接,用于向其它区块链节点广播区块,或者用于接收所述其它区块链节点广播的区块,所述区块包括若干条交易信息;
[0008]核心规则接口模块,用于根据用户输入的核心规则文件配置所述区块链共识算法的核心规则;
[0009]区块森林模块,与所述节点模块和所述核心规则接口模块连接,用于从所述节点模块中获取所述区块,以及调用所述核心规则对所述区块执行所述核心规则对应的预设操作;
[0010]测试模块,用于根据所述区块森林模块对所述区块执行的所述预设操作,确定用于表征所述区块链共识算法的性能的测试结果。
[0011]可选的,所述测试框架还包括:
[0012]客户端模块,与所述测试模块连接,用于生成交易信息,并向所述测试模块发送所述交易信息;
[0013]所述测试模块还用于向所述节点模块发送所述客户端模块生成的所述交易信息。
[0014]可选的,所述测试模块还与所述节点配置模块连接;所述测试模块还用于根据所述节点配置文件中与客户端相关的配置项配置所述客户端模块。
[0015]可选的,所述测试框架还包括:
[0016]第一通信模块,与所述节点模块和所述测试模块连接,用于向所述节点模块传输所述测试模块发送的所述交易信息;或者用于从所述节点模块中获取所述区块森林模块对所述区块执行的所述预设操作,并向所述测试模块传输所述区块森林模块对所述区块执行的所述预设操作。
[0017]可选的,所述核心规则包括区块链节点对区块的投票规则;相应的,所述测试框架还包括:
[0018]投票判定模块,与所述核心规则接口模块连接,用于从所述区块森林模块中获取所述本地的区块链节点对所述区块的投票信息,以及通过所述区块森林模块从所述节点模块中获取所述其它区块链节点对所述区块的投票信息,并记录各个所述区块链节点对所述区块的投票信息。
[0019]可选的,所述测试框架还包括:
[0020]主节点信息模块,与所述节点模块连接,用于记录主节点的更替信息。
[0021]可选的,所述测试框架还包括:
[0022]起搏器模块,与所述节点模块连接,用于控制所述本地的区块链节点所参考的主节点与所述其它区块链节点所参考的主节点保持一致。
[0023]可选的,所述测试框架还包括:
[0024]交易池模块,与所述节点模块连接,用于存储所述节点模块接收到的交易信息。
[0025]可选的,所述测试框架还包括:
[0026]节点接口模块,与所述节点模块连接,用于实现所述本地的区块链节点与所述其它区块链节点之间的通信。
[0027]可选的,所述节点接口模块包括:
[0028]编码接口,与所述节点模块连接,用于对所述本地的区块链节点的待发送数据进行编码,或者用于对来自所述其它区块链节点的数据进行解码;
[0029]网络接口,与所述节点模块连接,用于向其它区块链节点发送编码后的所述待发送数据,或者用于接收所述其它区块链节点发送的所述数据。
[0030]实施本申请实施例提供的区块链共识算法的测试框架具有以下有益效果:
[0031]本申请实施例提供的区块链共识算法的测试框架,由于将区块链共识算法中影响其性能的核心规则抽象为一个单独的核心规则接口模块,因此在对不同的区块链共识算法的性能进行测试时,用户只需通过核心规则接口模块提供区块链共识算法的核心规则的配置信息即可,由于对不同的区块链共识算法的性能进行测试时测试框架可以共享除了核心规则接口模块之外的其它模块,因此测试框架可以公平地对比不同共识算法之间由于核心规则的不同而引起的性能差异,进而方便针对影响区块链共识算法性能的本质因素给出测试结果。
附图说明
[0032]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0033]图1为本申请实施例提供的一种区块链共识算法的测试框架的结构示意图;
[0034]图2为本申请另一实施例提供的一种区块链共识算法的测试框架的结构示意图。
具体实施方式
[0035]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0036]应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0037]还应当理解,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其它一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其它方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其它方式另外特别强调。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链共识算法的测试框架,其特征在于,包括:节点配置模块,用于根据节点配置文件配置本地的区块链节点;节点模块,与所述节点配置模块连接,用于向其它区块链节点广播区块,或者用于接收所述其它区块链节点广播的区块,所述区块包括若干条交易信息;核心规则接口模块,用于根据用户输入的核心规则文件配置所述区块链共识算法的核心规则;区块森林模块,与所述节点模块和所述核心规则接口模块连接,用于从所述节点模块中获取所述区块,以及调用所述核心规则对所述区块执行所述核心规则对应的预设操作;测试模块,用于根据所述区块森林模块对所述区块执行的所述预设操作,确定用于表征所述区块链共识算法的性能的测试结果。2.根据权利要求1所述的测试框架,其特征在于,所述测试框架还包括:客户端模块,与所述测试模块连接,用于生成交易信息,并向所述测试模块发送所述交易信息;所述测试模块还用于向所述节点模块发送所述客户端模块生成的所述交易信息。3.根据权利要求2所述的测试框架,其特征在于,所述测试模块还与所述节点配置模块连接;所述测试模块还用于根据所述节点配置文件中与客户端相关的配置项配置所述客户端模块。4.根据权利要求2所述的测试框架,其特征在于,所述测试框架还包括:第一通信模块,与所述节点模块和所述测试模块连接,用于向所述节点模块传输所述测试模块发送的所述交易信息;或者用于从所述节点模块中获取所述区块森林模块对所述区块执行的所述预设操作,并向所述测试模块传输所述区块森林模块对所述区块执行的所述预设操作。5.根据权利要求1至4任一项所述的测试框架...

【专利技术属性】
技术研发人员:邱炜伟李伟黄方蕾张珂杰胡麦芳
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:

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

1