【技术实现步骤摘要】
基于区块链的容错验证方法、装置、设备、介质及产品
[0001]本申请涉及区块链
,具体而言,涉及一种基于区块链的容错验证方法
、
基于区块链的容错验证装置
、
电子设备
、
计算机可读存储介质及计算机程序产品
。
技术介绍
[0002]目前,在区块链
中,针对拜占庭容错(
BFT
)的测试对于验证区块链的可用性至关重要,目前
BFT
测试方法涉及在一个由
N
个节点组成的区块链网络,然后故意破坏其中
N/3
个节点,例如关闭区块链进程或使节点宕机等,以形成拜占庭容错范围内的区块链网络,从而验证该区块链网络可用性
。
然而,这种传统方式构造成本高,需要停机
、
杀进程
、
断开网络等操作,且无法进行持续验证
。
技术实现思路
[0003]本申请的实施例提供了一种基于区块链的容错验证方法
、
基于区块链的容错验证
【技术保护点】
【技术特征摘要】
1.
一种基于区块链的容错验证方法,其特征在于,包括:获取区块链网络的拓扑图结构信息;根据所述拓扑图结构信息,生成滚动升级脚本,所述滚动升级脚本用于逐轮升级共识节点的区块链程序版本;基于所述滚动升级脚本识别所述共识节点升级中的断点,并基于所述断点触发执行用于验证区块链网络的拜占庭容错的测试用例,所述断点用于描述所述共识节点从历史程序版本向目标程序版本的过渡时间;若检测到所述区块链网络滚动升级完成,则基于所述测试用例生成拜占庭容错的测试报告
。2.
根据权利要求1所述的方法,其特征在于,所述基于所述滚动升级脚本识别所述共识节点升级中的断点,并基于所述断点触发执行用于验证区块链网络的拜占庭容错的测试用例,包括:在所述滚动升级脚本的运行过程中,根据所述共识节点的服务状态的变化识别所述滚动升级脚本中的当前断点,并在所述当前断点处执行所述测试用例;在所述当前断点对应的共识节点升级完成后,识别所述滚动升级脚本中的下一个断点,以执行所述测试用例;继续识别所述滚动升级脚本中的下一个断点,直至所述区块链网络滚动升级完成
。3.
根据权利要求1所述的方法,其特征在于,所述拓扑图结构信息包括各共识节点的节点属性信息和各共识节点之间的连接关系;所述根据所述拓扑图结构信息,生成滚动升级脚本,包括:根据所述各共识节点的节点属性信息和所述连接关系确定所述各共识节点的升级轮次;获取目标程序版本,并根据所述共识节点的节点属性信息和所述目标程序版本生成升级策略;基于所述各共识节点的升级轮次和所述升级策略生成所述滚动升级脚本
。4.
根据权利要求3所述的方法,其特征在于,所述共识节点的节点属性信息包括所述共识节点的程序路径;所述根据所述共识节点的节点属性信息和所述目标程序版本生成升级策略,包括:根据共识节点的程序路径对所述共识节点的历史程序版本进行备份,并将所述目标程序版本存储至所述程序路径;停止所述共识节点当前运行的历史程序版本,并启动所述目标程序版本;将更新目标程序版本后的共识节点与其他共识节点重新建立连接,以得到所述升级策略
。5.
根据权利要求3所述的方法,其特征在于,所述共识节点的节点属性信息包括所述共识节点的配置信息;所述根据所述各共识节点的节点属性信息和所述连接关系确定所述各共识节点的升级轮次,包括:根据所述区块链网络中共识节点的总数量,确定每轮待升级共识节点的数量;根据各共识节点的配置信息,确定各共识节点的升级优先级;根据每轮待升级共识节点的数量和各共识节点的升级优先级确定所述各共识节点的
升级轮次
。6.
根据权利要求5所述的方法,其特征在于,所述根据各共识节点的配置信息,确定各个共识节点的升级优先级,包括:根据所述各共识节点的节点编号,对所述各共识节点进行排序得到初始排序结果;根据所述各共识节点的性能信息和各共识节点之间的距离信息对所述初始排序结果进行调整,以确定所述各共识节点的升级优先级
。7.
根据权利要求1所述的方法,其特征在于,所述基于所述断点触发执行用于验证区块链网络的拜占庭容错的测试用例,包括:获取多个测试场景分别对应的测试用例,得到多个测试用例;在当前轮次共识节点的升级过程中,根据目标测试场景为当前区块链网络从所述多个测试用例中选择至少一个目标测试用例;所述当前区块链网络为除当前轮次共识节点外的其他共识节点所组成的网络;基于所述断点自动执行所述目标测试用例
。8.
根据权利要求7所述的方法,其特征在于,所述获取多个测试场景分别对应的测试用例...
【专利技术属性】
技术研发人员:陈金龙,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。