本申请涉及区块链技术领域,特别涉及一种区块链节点异常恢复方法、装置、电子设备及存储介质;该方法包括:在第一预设时长内未获取到普通模式下请求视图变更的响应时,向区块链系统中的其他节点广播恢复模式下的第一视图变更消息;第一视图变更消息包括恢复模式的恢复标识;获取2f+1个正常运行节点中的f+1个节点基于第一视图变更消息中的恢复标识反馈的响应消息;响应消息包括所述f+1个节点基于实用拜占庭容错算法生成的状态信息;在对状态信息校验通过后,恢复至与状态信息对应的目标状态,完成异常恢复;可以解决区块链系统中异常节点因偶发的网络断开等原因而无法恢复正常的问题,提高区块链系统中单节点的稳定性。提高区块链系统中单节点的稳定性。提高区块链系统中单节点的稳定性。
【技术实现步骤摘要】
区块链节点异常恢复方法、装置、电子设备及存储介质
[0001]本申请涉及区块链
,特别涉及一种区块链节点异常恢复方法、装置、电子设备及存储介质。
技术介绍
[0002]实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法支持区块链系统的集群视图变更(view change)子协议,在区块链系统的主节点发生故障时,集群主动切换主节点,避免集群进入混沌状态无法推进共识的问题。
[0003]然而,针对单节点(例如从节点)发生故障或进入异常状态(例如发生视图变更)时,异常的节点会自动退出当前视图,进入一个新视图;而PBFT算法并不支持单节点异常的自主恢复,异常节点因偶发的网络断开等原因而无法恢复正常,降低了区块链系统中单节点的稳定性。
技术实现思路
[0004]根据本申请的各种实施例,提供一种区块链节点异常恢复方法、装置、电子设备及存储介质,可以解决区块链系统中异常节点因偶发的网络断开等原因则无法恢复正常的问题,提高区块链系统中单节点的稳定性。
[0005]第一方面,本申请提供了一种区块链节点异常恢复方法,应用于区块链系统中的异常节点,区块链系统包括3f+1个节点,区块链系统允许存在最多f个拜占庭错误的节点,f为大于或等于1的整数;该方法包括:在第一预设时长内未获取到普通模式下请求视图变更的响应时,向区块链系统中的其他节点广播恢复模式下的第一视图变更消息;第一视图变更消息包括所述恢复模式的恢复标识;获取2f+1个正常运行节点中的f+1个节点基于第一视图变更消息中的恢复标识反馈的响应消息;响应消息包括f+1个节点基于实用拜占庭容错算法生成的状态信息;在对状态信息校验通过后,恢复至与状态信息对应的目标状态,完成异常恢复。
[0006]通过上述方式,区块链系统中的异常节点在普通模式下的视图变更请求未得到响应时,可以再次发起恢复模式下的视图变更请求,即发出第一视图变更消息,通过在该第一视图变更消息中增加恢复标识,获取到其他节点基于该恢复标识反馈的响应消息,从而基于响应消息中的状态信息完成异常恢复,不会影响到区块链系统的正常运行,也无需依赖区块链系统中的主节点触发区块链系统的集群视图变更进行被动恢复,可以通过复用其他节点基于实用拜占庭容错算法生成的状态信息自主完成异常恢复,提高区块链系统中单节点的稳定性;具有较强的易用性与实用性。
[0007]第二方面,本申请提供了区块链节点异常恢复方法,应用于区块链系统中正常运行的节点,区块链系统包括3f+1个节点,区块链系统允许存在最多f个拜占庭错误的节点,f为大于或等于1的整数,该方法包括:接收区块链系统中的异常节点广播的恢复模式下的第一视图变更消息;第一视图
变更消息为异常节点在第一预设时长内未获取到普通模式下请求视图变更的响应时发送的;在识别出第一视图变更消息中的恢复模式的恢复标识时,向异常节点发送响应消息;响应消息包括基于实用拜占庭容错算法生成的状态信息,响应消息用于指示异常节点在对所述状态信息校验通过后恢复至状态信息对应的目标状态。
[0008]第三方面,本申请提供了一种区块链节点异常恢复装置,包括:发送单元,用于在第一预设时长内未获取到普通模式下请求视图变更的响应时,向区块链系统中的其他节点广播恢复模式下的第一视图变更消息;所述第一视图变更消息包括所述恢复模式的恢复标识;获取单元,用于获取2f+1个正常运行节点中的f+1个节点基于所述第一视图变更消息中的所述恢复标识反馈的响应消息;所述响应消息包括所述f+1个节点基于实用拜占庭容错算法生成的状态信息;恢复单元,用于在对所述状态信息校验通过后,恢复至与所述状态信息对应的目标状态,完成异常恢复;其中,所述区块链系统包括3f+1个节点,所述区块链系统允许存在最多f个拜占庭错误的节点,f为大于或等于1的整数。
[0009]第四方面,本申请提供了一种区块链节点异常恢复装置,包括:接收单元,用于接收区块链系统中的异常节点广播的恢复模式下的第一视图变更消息;所述第一视图变更消息为所述异常节点在第一预设时长内未获取到普通模式下请求视图变更的响应时发送的;处理单元,用于在识别出所述第一视图变更消息中的所述恢复模式的恢复标识时,向所述异常节点发送响应消息;所述响应消息包括基于实用拜占庭容错算法生成的状态信息,所述响应消息用于指示所述异常节点在对所述状态信息校验通过后恢复至所述状态信息对应的目标状态;其中,所述区块链系统包括3f+1个节点,所述区块链系统允许存在最多f个拜占庭错误的节点,f为大于或等于1的整数。
[0010]第五方面,本申请提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面或第二方面中任一项所述的方法。
[0011]第六方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面中任一项所述的方法。
[0012]第七方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面或第二方面中任一项所述的方法。
[0013]可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
[0014]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其它的附图。
[0015]图1为本申请实施例提供的区块链系统的架构示意图;图2为本申请实施例提供的区块链节点异常恢复方法的实现流程示意图;图3为本申请实施例提供的多种节点异常恢复的流程架构示意图;图4为本申请实施例提供的区块链节点异常恢复方法的实现流程示意图;图5为本申请实施例提供的区块链系统节点间的交互示意图;图6为本申请实施例提供的区块链节点异常恢复装置的结构示意图;图7为本申请实施例提供的区块链节点异常恢复装置的结构示意图;图8为本申请实施例提供电子设备的结构示意图。
具体实施方式
[0016]下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
[0017]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
[0018]在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种区块链节点异常恢复方法,其特征在于,应用于区块链系统中的异常节点,所述区块链系统包括3f+1个节点,所述区块链系统允许存在最多f个拜占庭错误的节点,f为大于或等于1的整数;所述方法包括:在第一预设时长内未获取到普通模式下请求视图变更的响应时,向所述区块链系统中的其他节点广播恢复模式下的第一视图变更消息;所述第一视图变更消息包括所述恢复模式的恢复标识;获取2f+1个正常运行节点中的f+1个节点基于所述第一视图变更消息中的所述恢复标识反馈的响应消息;所述响应消息包括所述f+1个节点基于实用拜占庭容错算法生成的状态信息;在对所述状态信息校验通过后,恢复至与所述状态信息对应的目标状态,完成异常恢复。2.根据权利要求1所述的方法,其特征在于,在所述向所述区块链系统中的其他节点广播恢复模式下的第一视图变更消息之前,所述方法还包括:在未获取到所述区块链系统中的主节点广播的心跳消息时,向所述区块链系统中的其他节点广播所述普通模式下的第二视图变更消息;所述第二视图变更消息用于触发所述区块链系统的集群视图变更。3.根据权利要求1所述的方法,其特征在于,所述状态信息包括最新视图值凭证和最新稳定检查点凭证;在所述获取2f+1个正常运行节点中的f+1个节点基于所述第一视图变更消息中的所述恢复标识反馈的响应消息之后,所述方法还包括:检查所述最新视图值凭证的合法性,以及所述f+1个节点的所述最新视图值凭证的一致性和所述最新稳定检查点凭证的一致性;在所述最新视图值凭证合法且所述f+1个节点的所述最新视图值凭证一致、所述最新稳定检查点凭证一致时,所述状态信息校验通过。4.根据权利要求3所述的方法,其特征在于,所述在对所述状态信息校验通过后,恢复至与所述状态信息对应的目标状态,包括:将所述最新视图值凭证对应的新视图作为目标视图、将所述最新稳定检查点凭证对应的检查点作为目标检查点高度,进行异常恢复;所述目标状态包括所述目标视图和所述目标检查点高度。5.根据权利要求4所述的方法,其特征在于,所述将所述最新视图值凭证对应的新视图作为目标视图、将所述最新稳定检查点凭证对应的检查点作为目标检查点高度,进行异常恢复,包括:若区块高度小于所述目标检查点高度,则将所述区块高度同步至所述目标检查点的高度;基于所述实用拜占庭容错算法中的新视图恢复机制,恢复至所述目标视图的视图值。6.根据权利要求1至5中的任一项所述的方法,其特征在于,所述在对所述状态信息校验通过后,恢复至与所述状态信息对应的目标状态,完成异常恢复,包括:在所述状态信息校验通过后,恢复至所述目标状态对应的视图值;更新视图...
【专利技术属性】
技术研发人员:邱炜伟,黄方蕾,端豪,张珂杰,胡麦芳,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。