一种抗容灾的多层次区块链网络区块同步方法和装置与流程

文档序号:31039048发布日期:2022-08-06 03:51阅读:121来源:国知局
一种抗容灾的多层次区块链网络区块同步方法和装置与流程

1.本发明涉及区块链技术领域,具体而言,涉及一种抗容灾的多层次区块链网络区块同步方法和装置。


背景技术:

2.区块链技术构建在传输网络(也可称为区块链网络)之上,传输网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,实现以预设共识策略生成区块数据,并利用链式数据结构验证与存储区块数据,最终实现了数据防篡改机制,为业务开展提供了安全可信的技术新思路。
3.在现有的区块链网络中,存在因自然灾害等原因导致局部多个节点掉线,进而导致整个区块链网络无法正常执行业务通讯,此时如何保证整个区块链网络依旧正常运行成为一个亟待解决的问题。


技术实现要素:

4.本发明的目的在于提供一种抗容灾的多层次区块链网络区块同步方法、装置、设备及可读存储介质,以改善上述因为各种原因导致局部多个节点掉线,无法正常执行业务通讯,导致整个区块链网络瘫痪的问题。
5.为了实现上述目的,本技术实施例提供了如下技术方案:
6.一方面,本技术实施例提供了一种抗容灾的多层次区块链网络区块同步方法,所述多层次区块链网络包括共识网络层、同步网络层和轻节点网络层,所述轻节点网络层包括多个轻节点,所述同步网络层包括多个同步节点,所述共识网络层包括多个共识节点,所述同步节点为多个所述轻节点的父节点,所述共识节点为多个所述同步节点的父节点,所述方法适用于区块链网络中任意一个所述轻节点,包括:向对应的同步节点发送区块同步请求,将所述对应的同步点记为第一父节点;若所述第一父节点未在预设时间段内回应所述区块同步请求,则随机不重复地向所述同步网络层中的第二父节点发送接入请求,以使所述第二父节点计算当前可接入量与已接入量的差值,若所述差值小于1,则反馈拒绝接入指令,所述第二父节点为同步网络层中排除所述第一父节点外的其他同步节点;若所述第二父节点均反馈拒绝接入指令,则向第一父节点对应的共识节点发送所述接入请求,以使第一父节点对应的共识节点反馈同意接入指令,将所述第一父节点对应的共识节点记为第三父节点;接入所述第三父节点,并接收所述第三父节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中。
7.可选地,所述向第一父节点对应的共识节点发送所述接入请求之后,还包括:
8.新建后台区块同步线程,所述后台区块同步线程用于实时向同步网络层中的所述同步节点发送接入请求;
9.若所述同步网络层中任意一个所述同步节点反馈同意接入,则中断与所述第三父节点的区块同步连接,并接入对应的所述同步节点。
10.可选地,若所述第二父节点均反馈拒绝接入指令,则向第一父节点对应的共识节点发送所述接入请求之后,还包括:
11.若所述第一父节点对应的共识节点未响应所述接入请求,则向共识网络层中的其他共识节点随机不重复地发送接入请求,直至共识网络层中的任意一个共识节点反馈同意接入指令;
12.接入对应的所述共识节点,并接收对应的所述共识节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中,同时新建后台区块同步线程。
13.可选地,所述第二父节点计算当前可接入量,包括:
14.获取预设容灾率、轻节点数量和同步节点数量;
15.根据所述预设容灾率、轻节点数量和同步节点数量计算出当前可接入量。
16.第二方面,本技术实施例提供了一种抗容灾的多层次区块链网络区块同步装置,所述多层次区块链网络包括共识网络层、同步网络层和轻节点网络层,所述轻节点网络层包括多个轻节点,所述同步网络层包括多个同步节点,所述共识网络层包括多个共识节点,所述同步节点为多个所述轻节点的父节点,所述共识节点为多个所述同步节点的父节点,所述装置适用于区块链网络中任意一个所述轻节点,所述轻节点包括:
17.第一发送模块,用于向对应的同步节点发送区块同步请求,将所述对应的同步点记为第一父节点;
18.第一计算模块,用于判定若所述第一父节点未在预设时间段内回应所述区块同步请求,则随机不重复地向所述同步网络层中的第二父节点发送接入请求,以使所述第二父节点计算当前可接入量与已接入量的差值,若所述差值小于1,则反馈拒绝接入指令,所述第二父节点为同步网络层中排除所述第一父节点外的其他同步节点;
19.第二计算模块,用于判定若所述第二父节点均反馈拒绝接入指令,则向第一父节点对应的共识节点发送所述接入请求,以使第一父节点对应的共识节点反馈同意接入指令,将所述第一父节点对应的共识节点记为第三父节点;
20.第一接入模块,用于接入所述第三父节点,并接收所述第三父节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中。
21.可选地,所述第二计算模块包括:
22.第一计算单元,用于新建后台区块同步线程,所述后台区块同步线程用于实时向同步网络层中的所述同步节点发送接入请求;
23.第二计算单元,用于判断若所述同步网络层中任意一个所述同步节点反馈同意接入,则中断与所述第三父节点的区块同步连接,并接入对应的所述同步节点。
24.可选地,所述第二计算模块,还包括:
25.第三计算单元,用于判定若所述第一父节点对应的共识节点未响应所述接入请求,则向共识网络层中的其他共识节点随机不重复地发送接入请求,直至共识网络层中的任意一个共识节点反馈同意接入指令;
26.第四计算单元,用于接入对应的所述共识节点,并接收对应的所述共识节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中,同时新建后台区块同步线程。
27.可选地,所述第一计算模块包括:
28.第一获取单元,用于获取预设容灾率、轻节点数量和同步节点数量;
29.第五计算单元,用于根据所述预设容灾率、轻节点数量和同步节点数量计算出当前可接入量。
30.第三方面,本技术实施例提供了一种抗容灾的多层次区块链网络区块同步设备,所述设备包括存储器和处理器。
31.存储器用于存储计算机程序;处理器用于执行所述计算机程序时实现上述抗容灾的多层次区块链网络区块同步方法的步骤。
32.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述抗容灾的多层次区块链网络区块同步方法的步骤。
33.本发明的有益效果为:
34.本发明通过将整个区块链网络分为共识网络层、同步网络层和轻节点网络层,其中共识网络层主要负责业务的共识并共识数据(区块数据)、同步网络层用于拉取共识网络层产生的区块数据,并将区块数据分发给管辖的轻节点,轻节点网络层中的轻节点不参与共识业务,只负责定期同步共识节点上产生的共识数据,当区块链网络中部分节点因为各种原因批量掉线后,尤其是同步节点或共识节点掉线后,轻节点首先会向同步网络层中的其他节点随机不重复地发送接入请求,当同步网络层无响应时,轻节点才会向共识网络层中的共识节点随机不重复地发送接入请求,进而避免了因共识节点或同步节点掉线而导致多个轻节点不工作,进而导致整个区块链网络瘫痪的问题。
35.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
36.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
37.图1是本发明实施例中所述的一种抗容灾的多层次区块链网络区块同步方法流程示意图;
38.图2是本发明实施例中所述的一种抗容灾的多层次区块链网络区块同步装置结构示意图;
39.图3是本发明实施例中所述的一种抗容灾的多层次区块链网络区块同步设备结构示意图;
40.图4是本发明实施例中所述的举例说明用抗容灾的多层次区块链网络结构示意图。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.应注意到:相似的标号或字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
43.实施例1
44.如图1和图4所示,本实施例提供了一种抗容灾的多层次区块链网络区块同步方法,如图4所示,多层次区块链网络包括共识网络层、同步网络层和轻节点网络层,所述轻节点网络层包括多个轻节点,所述同步网络层包括多个同步节点,所述共识网络层包括多个共识节点,所述同步节点为多个所述轻节点的父节点,所述共识节点为多个所述同步节点的父节点,所述方法适用于区块链网络中任意一个所述轻节点,所述方法包括步骤s1、步骤s2、步骤s3和步骤s4。
45.步骤s1.轻节点定期向对应的同步节点发送区块同步请求,将所述对应的同步点记为第一父节点,所述区块同步请求用于使轻节点实时拉取同步节点上的最新的区块数据,进而使整个区块链网络中的各个节点所维护的区块链公共账本一致;
46.步骤s2.如果轻节点检测到第一父节点未在预设时间段内回应所述区块同步请求,则会随机不重复地向所述同步网络层中的第二父节点发送接入请求,接收到接入请求的第二父节点会计算当前可接入量与已接入量的差值,若所述差值小于1,则向轻节点反馈拒绝接入指令,所述第二父节点为同步网络层中排除所述第一父节点外的其他同步节点,应当说明的是上述的随机不重复地向所述同步网络层中的第二父节点发送接入请求的具体操作为:轻节点收到前一同步节点反馈的拒绝接入指令后再随机不重复地选择下一个同时节点进行接入;
47.其中在步骤s2中第二父节点会计算当前可接入量与已接入量的差值的具体操作可以为:
48.步骤s21.第二父节点获取系统的预设容灾率、轻节点数量和同步节点数量;
49.步骤s22.根据所述预设容灾率、轻节点数量和同步节点数量计算出当前可接入量,具体计算方式为:(轻节点数量/同步节点数量)+预设容灾率*同步节点数量=当前可接入量。
50.步骤s3.若所述第二父节点均反馈拒绝接入指令,则向第一父节点对应的共识节点发送所述接入请求,以使第一父节点对应的共识节点反馈同意接入指令,将所述第一父节点对应的共识节点记为第三父节点;
51.应当说明的是第一父节点也会计算当前可接入量与已接入量的差值,并在差值大于1时才会接入轻节点,轻节点在共识层的接入策略上,会优先向第一父节点发送接入请求,被拒绝接入后才向其他共识节点随机不重复的发送接入请求,直至共识网络层中的任意一个共识节点反馈同意接入指令,然后,接入对应的所述共识节点,并接收其发送的区块数据,并将区块数据写入本地区块链公共账本中,其中共识节点的当前可接入量可参考同
步节点的计算方式,在此不做赘述。
52.其次,在轻节点跨层向更上一级的共识网络层拉取区块数据时,其会同时新建一个后台区块同步线程,所述后台区块同步线程用于实时向同步网络层中的所述同步节点发送接入请求;
53.若所述同步网络层中任意一个所述同步节点反馈同意接入,则中断与共识网络层中的共识节点的区块同步连接,并接入对应的所述同步节点,进而减轻共识网络层的压力,保证区块链网络的高速运行。
54.步骤s4.接入所述第三父节点,并接收所述第三父节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中。
55.实施例2
56.如图2所示,本实施例提供了一种抗容灾的多层次区块链网络区块同步装置,所述多层次区块链网络包括共识网络层、同步网络层和轻节点网络层,所述轻节点网络层包括多个轻节点,所述同步网络层包括多个同步节点,所述共识网络层包括多个共识节点,所述同步节点为多个所述轻节点的父节点,所述共识节点为多个所述同步节点的父节点,所述装置适用于区块链网络中任意一个所述轻节点,所述轻节点包括:
57.第一发送模块71,用于向对应的同步节点发送区块同步请求,将所述对应的同步点记为第一父节点;
58.第一计算模块72,用于判定若所述第一父节点未在预设时间段内回应所述区块同步请求,则随机不重复地向所述同步网络层中的第二父节点发送接入请求,以使所述第二父节点计算当前可接入量与已接入量的差值,若所述差值小于1,则反馈拒绝接入指令,所述第二父节点为同步网络层中排除所述第一父节点外的其他同步节点;
59.第二计算模块73,用于判定若所述第二父节点均反馈拒绝接入指令,则向第一父节点对应的共识节点发送所述接入请求,以使第一父节点对应的共识节点反馈同意接入指令,将所述第一父节点对应的共识节点记为第三父节点;
60.第一接入模块74,用于接入所述第三父节点,并接收所述第三父节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中。
61.在本实施例中,所述第二计算模块73还可以包括:
62.第一计算单元732,用于新建后台区块同步线程,所述后台区块同步线程用于实时向同步网络层中的所述同步节点发送接入请求;
63.第二计算单元733,用于判断若所述同步网络层中任意一个所述同步节点反馈同意接入,则中断与所述第三父节点的区块同步连接,并接入对应的所述同步节点。
64.在本实施例中,所述第二计算模块73,还包括:
65.第三计算单元734,用于判定若所述第一父节点对应的共识节点未响应所述接入请求,则向共识网络层中的其他共识节点随机不重复地发送接入请求,直至共识网络层中的任意一个共识节点反馈同意接入指令;
66.第四计算单元735,用于接入对应的所述共识节点,并接收对应的所述共识节点发送的区块数据,并将所述区块数据写入本地区块链公共账本中,同时新建后台区块同步线程。
67.需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已
经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
68.实施例3
69.相应于上面的方法实施例,本公开实施例还提供了一种抗容灾的多层次区块链网络区块同步设备,下文描述的一种抗容灾的多层次区块链网络区块同步设备与上文描述的一种抗容灾的多层次区块链网络区块同步方法可相互对应参照。
70.图3是根据一示例性实施例示出的一种抗容灾的多层次区块链网络区块同步设备800的框图。如图3所示,该电子设备800可以包括:处理器801,存储器802。该电子设备800还可以包括多媒体组件803,输入/输出(i/o)接口804,以及通信组件805中的一者或多者。
71.其中,处理器801用于控制该电子设备800的整体操作,以完成上述的抗容灾的多层次区块链网络区块同步方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near fieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
72.在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digitalsignal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的抗容灾的多层次区块链网络区块同步方法。
73.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的抗容灾的多层次区块链网络区块同步方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的抗容灾的多层次区块链网络区块同步方法。
74.实施例4
75.相应于上面的方法实施例,本公开实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种抗容灾的多层次区块链网络区块同步方法可相互
对应参照。
76.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的抗容灾的多层次区块链网络区块同步方法的步骤。
77.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
78.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1