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

区块链的共识节点更新方法、装置、电子设备及介质与流程

2022-04-25 03:36:12 来源:中国专利 TAG:


1.本技术涉及通信技术,尤其涉及一种区块链的共识节点更新方法、装置、电子设备及介质。


背景技术:

2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(finteh)转变,区块链(block chain)技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
3.现有技术中在部署区块链网络时,机构间为保证可用性,一般会为本机构部署两个或以上的共识节点,共识节点中性能较好的节点作为主节点,其他性能相对较低的节点,作为备用节点,即容错节点。在这种情况下,区块链网络中共识节点中有接近一半的共识节点是备用节点,在由(3*f 1)个节点构成的系统中,例如,满足2f 1个共识节点共识正常时,另外f个共识节点是用于冗余来保证共识容错的。因此,该2f 1个共识节点采用性能较好的节点,作为主节点,该f个冗余的共识节点作为所有机构的容错节点,来保证共识网络的共识。
4.然而现有技术中,为了保证容错节点数为f,在切换群首(leader)节点时只能在3f 1个节点中选择leader节点,无法保证leader节点为主节点的概率,会导致区块链的共识效率下降。


技术实现要素:

5.本技术提供一种区块链的共识节点更新方法、装置、电子设备及介质,用以解决现有技术中区块链的共识效率较低的技术问题。
6.第一方面,本技术提供一种区块链的共识节点更新方法,包括:
7.区块链在主节点列表内的节点之间进行共识时,缓存区块链的主节点列表中每个节点在共识的每个阶段回复消息包的超时情况,主节点列表中的节点为区块链的共识节点;确定主节点列表中的异常节点,异常节点为在共识的连续两个阶段回复消息包均超时的节点;根据异常节点与区块链中容错节点的关系,更新主节点列表。
8.本技术实施例中,通过设置主节点列表,利用主节点列表中的共识节点实现共识,提高了共识效率,并且在主节点列表中的节点发生异常时,更新主节点列表,不仅保证了区块链的共识的顺利进行,而且,相比于现有技术中在区块链所有的节点中选择leader节点,本技术实施例在主节点列表中选择leader节点进行共识,降低了leader节点为低性能节点的概率,不仅可以提升区块链的共识效率,而且还可以节省区块链的节点运维成本。
9.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,在缓存主节点列表中每个节点在共识的每个阶段回复消息包的超时情况之前,还包括:
10.配置区块链的主节点及主节点的容错节点,并将主节点添加至主节点列表中,主节点列表中的节点用于接收并回复消息包,容错节点用于同步消息包。
11.本技术实施例中,通过配置区块链的主节点,并将主节点添加至主节点列表中,降低了leader节点为低性能的容错节点的概率,不仅可以提升区块链的共识效率,而且还可以节省区块链的节点运维成本。
12.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,根据异常节点与区块链中容错节点的关系,更新主节点列表,包括:
13.确定异常节点的容错节点;将异常节点的容错节点添加至主节点列表。
14.本技术实施例中,通过将异常节点的容错节点添加至主节点列表加入主节点,保障了区块链在主节点发生异常时,下一轮共识的正常运行。
15.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,主节点列表中包括2f 1个主节点和1个容错节点,其中,f为正整数。
16.本技术实施例中,通过将主节点列表中设置2f 1个主节点和1个容错节点,通过降低leader节点为容错节点的概率,提升共识的效率,而且还可以节省区块链的节点运维成本,并且还可以在主节点列表中存在一个节点异常时的正常共识。
17.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,根据异常节点与区块链中容错节点的关系,更新主节点列表,包括:
18.若异常节点的当前数量n小于或等于m,则将区块链中的p个容错节点添加至主节点列表中,以使主节点列表中的节点数量为3n 1,其中,m为区块链在共识中所允许的最高容错节点数量。
19.本技术实施例中,通过在异常节点数量不超过最高错节点数量时,通过将区块链的容错节点添加至主节点列表中的方式,保证区块链的共识节点更新的顺利进行。
20.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,还包括:
21.若存在异常节点恢复正常,则根据当前的异常节点,在主节点列表中剔除部分容错节点。
22.本技术实施例在异常节点恢复正常时,在主节点列表中剔除部分容错节点,在保证区块链的共识正常运行的同时,提高了共识的效率。
23.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,根据当前的异常节点,在主节点列表中剔除部分容错节点,包括:
24.若异常节点全部恢复正常,则在主节点列表中剔除添加的p个容错节点。
25.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,根据当前的异常节点,在主节点列表中剔除部分容错节点,包括:
26.若异常节点部分恢复正常,则在主节点列表中剔除添加的部分容错节点,使主节点列表中的节点数量为3n 1,其中,n为异常节点的当前数量。
27.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,在根据异常节点与区块链中容错节点的关系,更新主节点列表之前,还包括:
28.主节点列表中的leader节点向区块链的容错节点发送消息包请求;容错节点接收到消息包请求之后,向leader节点发送消息包。
29.本技术实施例通过在主节点列表中的存在异常节点时,向容错节点发送消息包请求,保证了本轮共识的顺利进行。
30.下面介绍本技术实施例提供的区块链的共识节点更新装置、电子设备、计算机可读存储介质以及计算机程序产品,其内容和效果可参考本技术实施例提供的区块链的共识节点更新方法,不再赘述。
31.第二方面,本技术提供一种区块链的共识节点更新装置,包括:
32.缓存模块,用于区块链在主节点列表内的节点之间进行共识时,缓存主节点列表中每个节点在共识的每个阶段回复消息包的超时情况,主节点列表中的节点为区块链的共识节点。
33.确定模块,用于确定主节点列表中的异常节点,异常节点为在共识的连续两个阶段回复消息包均超时的节点。
34.处理模块,用于根据异常节点与区块链中容错节点的关系,更新主节点列表。
35.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,还包括:
36.配置模块,用于配置区块链的主节点及主节点的容错节点,并将主节点添加至主节点列表中,主节点列表中的节点用于接收并回复消息包,容错节点用于同步消息包。
37.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块,具体用于:
38.确定异常节点的容错节点;将异常节点的容错节点添加至主节点列表。
39.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,主节点列表中包括2f 1个主节点和1个容错节点,其中,f为正整数。
40.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块,具体用于:
41.若异常节点的当前数量n小于或等于m,则将区块链中的p个容错节点添加至主节点列表中,以使主节点列表中的节点数量为3n 1,其中,m为区块链在共识中所允许的最高容错节点数量。
42.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块,还用于:
43.若存在异常节点恢复正常,则根据当前的异常节点,在主节点列表中剔除部分容错节点。
44.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块,具体用于:
45.若异常节点全部恢复正常,则在主节点列表中剔除添加的p个容错节点。
46.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块,具体用于:
47.若异常节点部分恢复正常,则在主节点列表中剔除添加的部分容错节点,使主节点列表中的节点数量为3n 1,其中,n为异常节点的当前数量。
48.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块,还用于:
49.主节点列表中的leader节点向区块链的容错节点发送消息包请求;容错节点接收到消息包请求之后,向leader节点发送消息包。
50.第三方面,本技术实施例提供一种电子设备,包括:
51.处理器,以及与处理器通信连接的存储器;
52.存储器存储计算机执行指令;
53.处理器执行存储器存储的计算机执行指令,以实现第一方面或第一方面可实现方式提供区块链的共识节点更新方法。
54.第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面或第一方面可实现方式提供的区块链的共识节点更新方法。
55.第五方面,本技术实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时用于实现如第一方面或第一方面可实现方式提供的区块链的共识节点更新方法。
56.本技术提供的区块链的共识节点更新方法、装置、电子设备及介质,通过区块链在主节点列表内的节点之间进行共识时,缓存区块链的主节点列表中每个节点在共识的每个阶段回复消息包的超时情况,主节点列表中的节点为区块链的共识节点;并确定主节点列表中的异常节点,异常节点为在共识的连续两个阶段回复消息包均超时的节点;最后根据异常节点与区块链中容错节点的关系,更新主节点列表。由于通过设置主节点列表,利用主节点列表中的节点实现共识,提高了共识效率,并且在主节点列表中的节点发生异常时,更新主节点列表,不仅保证了区块链的共识节点更新的顺利进行,而且,相比于现有技术中在区块链所有的节点中选择leader节点,本技术实施例在主节点列表中选择leader节点进行共识,降低了leader节点为低性能节点的概率,不仅可以提升共识的效率,而且还可以节省区块链的节点运维成本。
附图说明
57.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
58.图1是本技术实施例提供的一示例性应用场景架构图;
59.图2是本技术实施例提供的一示例性消息包的流转示意图;
60.图3是本技术一实施例提供的区块链的共识节点更新方法的流程示意图;
61.图4是本技术实施例提供的区块链共识节点网络的示意图;
62.图5是本技术另一实施例提供的区块链的共识节点更新方法的流程示意图;
63.图6是本技术又一实施例提供的区块链的共识节点更新方法的流程示意图;
64.图7是本技术一实施例提供的区块链的共识节点更新装置的结构示意图;
65.图8是本技术实施例提供的电子设备的结构示意图。
66.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
67.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及
附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
68.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
69.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(finteh)转变,区块链(block chain)技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。现有技术中共识为了保证容错节点数为f,在切换leader节点时只能在3f 1个节点中选择leader节点,无法保证leader节点为主节点的概率,当容错节点当上共识中的leader节点时,会导致区块链共识的共识效率下降。
70.为了解决上述技术问题,本技术实施例提供的区块链的共识节点更新方法、装置、电子设备及介质发明构思在于,通过设置主节点列表,在共识过程中,在主节点列表中选择leader节点,可以降低leader节点为低性能的容错节点的概率,不仅提高了共识的效率,而且还可以节省区块链的节点运维成本;由于在主节点列表中出现异常节点时,通过异常节点与容错节点的关系,更新主节点列表,保证了共识的顺利进行。
71.以下,对本技术实施例的示例性应用场景进行介绍。
72.本技术实施例提供的区块链的共识节点更新方法可以通过本技术实施例提供的区块链的共识节点更新装置执行,本技术实施例提供的区块链的共识节点更新装置可以集成在服务器上,或者该区块链的共识节点更新装置可以为服务器本身。本技术实施例对服务器的具体类型不做限制。
73.图1是本技术实施例提供的一示例性应用场景架构图,如图1所示,该架构主要包括:终端设备11(个人电脑)和服务器12。终端设备11可以通过客户端向服务器12区块链中的任意一个节点发送消息请求,服务器12根据该请求在区块链的各节点中进行共识,使区块链各个共识节点达成区块共识,其中,共识节点包括共识算法的区块链中的leader节点和replica节点,负责将交易打包成区块和区块共识。图2是本技术实施例提供的一示例性消息包的流转示意图,如图2所示,图2中以leader节点为node0,replica节点包括node1、node2和node3为例进行说明,其中node3为恶意节点。leader节点node0接收客户端发送的消息请求之后,进入共识的预准备(pre-prepare)阶段,在pre-prepare阶段进行广播,将消息请求扩散至node1、node2和node3,进入共识的准备(prepare)阶段,由于node1、node2和node3在收到消息请求后进行记录并再次广播,其中node3为恶意节点,无法进行广播。node0、node1、node2和node3节点在prepare阶段若收到超过一定数量的相同请求,则进入共识的确认(commit)阶段,并广播commti请求,实现区块共识。
74.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念
或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
75.图3是本技术一实施例提供的区块链的共识节点更新方法的流程示意图,该方法可以由区块链的共识节点更新装置执行,该装置可以通过软件和/或硬件的方式实现,下面以服务器为执行主体对区块链的共识节点更新方法进行说明。如图2所示,本技术实施例提供的区块链的共识节点更新方法可以包括:
76.步骤s101:区块链在主节点列表内的节点之间进行共识时,缓存区块链的主节点列表中每个节点在共识的每个阶段回复消息包的超时情况。
77.区块链的共识节点网络中,例如存在(3*f 1)个节点构成,在不少于(2*f 1)个非恶意节点正常工作时,区块链可以正常共识。本技术实施例中以区块链的共识节点网络中包括(3*f 1)个共识节点,其中,包括(2*f 1)个性能较好的主节点,f个性能较差的容错节点为例进行说明,本技术实施例仅以此为例进行说明,并不限于此,例如还可以是其他的共识节点网络,比如区块链的共识节点网络中还可以包括(2*f 1)个节点,在不少于(f 1)个非恶意节点正常工作时,区块链可以正常共识等等。
78.在一种可能的实施方式中,本技术实施例的区块链的主节点列表中可以包括2f 1个主节点,将主节点作为共识节点进行共识,通过采用性能较高的主节点进行共识,可以提高区块链的共识效率。通过leader节点在主节点列表中的节点之间进行切换,保证了leader节点的性能,进而可以保证区块链的共识效率。
79.主节点列表中的节点用于接收leader节点的消息并回复消息包,消息包可以是节点的签名包和commit包。区块链的共识节点网络中,主节点列表之外的容错节点用于同步leader节点的签名包和commit包,不需要回复消息包,本技术实施例中,通过采用性能较高的主节点进行共识,性能较低的容错节点不参与共识,节省了共识节点的运维成本。
80.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,在缓存主节点列表中每个节点在共识的每个阶段回复消息包的超时情况之前,还包括:配置区块链的主节点及主节点的容错节点,并将主节点添加至主节点列表中,主节点列表中的节点用于接收并回复消息包,容错节点用于同步消息包。
81.区块链的节点读取共识节点网络中总的共识节点数,并配置共识的主节点包含哪些节点,主节点的容错节点是哪些节点,以区块链的共识节点网络中包括(3*f 1)个共识节点为例,将(2*f 1)个性能较好节点配置为主节点,f个性能较差的节点配置为容错节点,并指定每个主节点的容错节点,例如,主节点a001的容错节点为a002,主节点b001的容错节点为b002和b003等。在一种可能的实施方式中,可以通过在节点中增加共识优化模块的方式,利用共识优化模块实现对共识节点网络的配置。
82.本技术实施例中,可以通过将区块链的2f 1个主节点添加至主节点列表中作为共识节点,利用2f 1个主节点进行节点共识。通过配置区块链的主节点,并将主节点添加至主节点列表中,降低了leader节点为低性能的容错节点的概率,不仅可以提升共识的效率,而且还可以节省区块链的节点运维成本。
83.在另一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,主节点列表中包括2f 1个主节点和1个容错节点,其中,f为正整数。
84.示例性的,图4是本技术实施例提供的区块链共识节点网络的示意图,节点根据共识优化模块的配置,将共识节点中2f 2的节点添加至主节点列表中,其中,2f 2个节点包括
2f 1个主节点和1个容错节点,以f为1为例,区块链共识节点网络中将4个节点添加至主节点列表中,leader节点在主节点列表中的节点之间进行选择和切换,该4个节点包含了2f 1个主节点和1个容错节点,该1个容错节点随机从f个容错节点中选择。
85.如图4所示为例,在一种可能的实施方式中,总共识节点数为10个,分别包括3个主节点和7个容错节点,主节点分别包括节点a001、节点b001及节点c001,容错节点分别包括节点a002、节点b002、节点d001、节点e001、节点f001、节点g001以及节点h001,该共识节点网络的最大容错节点数为3,以f=1,主节点列表中包括2f 2个节点为例,主节点列表中包括3个主节点和1个容错节点,参与共识。该三个主节点分别为主节点a001、主节点b001和主节点c001,然后在节点a002、节点b002、节点d001、节点e001、节点f001、节点g001和节点h001共7个容错节点中随机选择一个容错节点加入主节点列表中,剩余的6个容错节点继续作为容错节点,不参与共识。例如,本技术图4所示实施例在容错节点中选中了节点d001加入主节点列表中参与共识。在确定了主节点列表之后,配置主节点列表中每个主节点的容错节点,例如,将节点a001的容错节点设为节点a002,将节点b001的容错节点设为b002等,本技术实施例仅以此为例,并不限于此。
86.本技术实施例中,通过将主节点列表中设置2f 1个主节点和1个容错节点,不仅通过降低leader节点为容错节点的概率,提升区块链的共识效率,而且还可以节省区块链的节点运维成本,并且还可以在主节点列表中存在一个节点异常时的正常共识。
87.在配置了主节点列表之后,区块链在主节点列表内的节点之间进行共识,在共识的过程中,在主节点列表的节点:节点a001、节点b001、节点c001以及节点d001中,随机选出当前的leader节点,例如节点a001作为leader节点,节点a001收集其他主节点:节点b001、节点c001以及节点d001的签名包和commit包。其他6个容错节点:a002、节点b002、节点e001、节点f001、节点g001和节点h001仅同步主节点的签名包与commit包,不需要回复消息包。相比于现有技术中,leader节点需要收集其他共识节点(包括主节点和容错节点)的签名包和commit包来完成共识,可以提升共识效率。
88.具体共识流程可参考图2,不再赘述。共识包括了三个阶段,分别是pre-prepare阶段、prepare阶段和commit阶段,缓存区块链的主节点列表中每个节点在共识的每个阶段回复消息包的超时情况。
89.步骤s102:确定主节点列表中的异常节点,异常节点为在共识的连续两个阶段回复消息包均超时的节点。
90.本技术实施例中可以通过缓存连续两个阶段的数据来判断异常节点,其中连续两个阶段可以分别是pre-prepare阶段和prepare阶段,或者,prepare阶段和commit阶段,或者commit阶段和pre-prepare阶段。
91.异常节点为在上述任意连续两个阶段回复消息均超时的节点。示例性的,节点回复消息包的时间,在缓存的连续两个阶段中,若在pre-prepare阶段超时,在prepare阶段不超时,则该节点不是异常节点,若在pre-prepare阶段超时,并且在prepare阶段也超时,则该节点为异常节点。
92.在主节点列表中设置2f 1个主节点和1个容错节点时,若存在一个异常节点,由于存在一个容错节点,则区块链可以正常共识。若存在多个异常节点时,则区块链的共识节点可能由于无法收到一定数量的消息包导致无法正常共识。在主节点列表中包括2f 1个主节
点时,只要存在异常节点,则区块链的共识节点可能由于无法收到一定数量的消息包导致无法正常共识。
93.因此,在主节点列表中存在异常节点时,主节点回复消息包也可能存在异常,为了保证共识的正常进行,在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,在根据异常节点与区块链中容错节点的关系,更新主节点列表之前,还包括:主节点列表中的leader节点向区块链的容错节点发送消息包请求;容错节点接收到消息包请求之后,向leader节点发送消息包。
94.以图4所示区块链共识节点网络为例,在本阶段主节点列表中的4个节点(节点a001、节点b001、节点c001以及节点d001)收集消息包时,若出现异常节点回复签名包异常,则主节点列表中的leader节点向区块链的主节点列表外的6个容错节点发送消息包请求,容错节点接收到消息包请求之后,向leader节点发送消息包,在leader节点获取到一定数量的容错节点的消息包之后,完成本阶段的签名包收集。本技术实施例通过在主节点列表中的存在异常节点时,向容错节点发送消息包请求,保证了本轮区块链的节点共识的顺利进行。
95.步骤s103:根据异常节点与区块链中容错节点的关系,更新主节点列表。
96.区块链在进行了前两个阶段的共识确定了异常节点之后,根据异常节点与区块链中容错节点的关系,更新主节点列表。本技术实施例对如何根据异常节点与区块链中容错节点的关系,更新主节点列表的具体实现方式不做限制,例如,可以根据异常节点的数量以及容错节点的数量,或者,异常节点与容错节点之间的对应关系等,更新主节点列表,本技术实施例并不限于此,只要能够保证下一轮的共识可以正常进行即可。即,保证区块链的共识的基础条件,在区块链共识节点网络中包含(3*f 1)个节点时,最多存在f个容错节点。
97.在一种可能的实施方式中,以图4所示为例,若异常节点存在1个,由于主节点列表中本身就存在一个容错节点作为主节点,则可以不更新主节点列表,也可以选择将主节点列表外的任意一个容错节点添加至主节点列表中。在另一种可能的实施方式中,若异常节点超过区块链在共识中所允许的最高容错节点数量,即,本技术实施例中异常节点超过3个时,共识网络异常,无法进行下一轮共识。
98.本技术实施例中,通过设置主节点列表,利用主节点列表中的节点实现共识,提高了共识效率,并且在主节点列表中的节点发生异常时,更新主节点列表,不仅保证了区块链的共识节点更新的顺利进行,而且,相比于现有技术中在区块链所有的节点中选择leader节点,本技术实施例在主节点列表中选择leader节点进行共识,降低了leader节点为低性能节点的概率,不仅可以提升区块链的节点共识的效率,而且还可以节省区块链的节点运维成本。
99.在图3所示的实施例的基础上,在一种可能的实施方式中,图5是本技术另一实施例提供的区块链的共识节点更新方法的流程示意图,该方法可以由区块链的共识节点更新装置执行,该装置可以通过软件和/或硬件的方式实现,下面以服务器为执行主体对区块链的共识节点更新方法进行说明,如图5所示,本技术实施例提供的区块链的共识节点更新方法,步骤s103根据异常节点与区块链中容错节点的关系,更新主节点列表,包括:
100.步骤s201:确定异常节点的容错节点。
101.步骤s202:将异常节点的容错节点添加至主节点列表。
102.本技术实施例中,以图4所示的区块链共识节点网络为例,若异常节点为节点b001,可以根据配置确定异常节点b001的容错节点为节点b002,然后将节点b002添加至主节点列表中。
103.本技术实施例中,通过将异常节点的容错节点添加至主节点列表加入主节点,保障了区块链在主节点发生异常时,下一轮共识的正常运行。
104.上述实施例考虑了异常节点与容错节点的对应关系,在一种可能的实施方式中,还可以考虑异常节点与容错节点之间的数量关系。本技术实施例提供的区块链的共识节点更新方法,根据异常节点与区块链中容错节点的关系,更新主节点列表,可以包括:
105.若异常节点的当前数量n小于或等于m,则将区块链中的p个容错节点添加至主节点列表中,以使主节点列表中的节点数量为3n 1,其中,m为区块链在共识中所允许的最高容错节点数量。
106.本技术实施例中,在异常节点的当前数量为n,则将区块链中的p个容错节点添加至主节点列表中之后,主节点列表中的节点数量为3n 1,主节点列表中存在n个异常节点,以及2n 1个正常节点,此时,区块链可以正常共识。以图4所示为例,区块链在共识中所允许的最高容错节点数量为3,假设异常节点的当前数量n为1时,主节点列表中存在2f 2=4个节点时(f=1),由于一个容错节点的存在,可以不额外加入容错节点至主节点列表。
107.假设异常节点的当前数量n为2,主节点列表中存在4个节点,即在4个节点(节点a001、节点b001、节点c001和节点d001)中存在2个节点在连续两个阶段均超时,例如节点b001和节点c001为异常节点,则需要加入3个节点,以使主节点列表中的节点数量为3*2 1=7个,根据共识优化模块的配置,可以在剩余6个容错节点中选择节点b001的容错节点b002和随机的其他两个容错节点,例如节点e001和节点h001,加入主节点列表参与共识。
108.假设异常节点的当前数量n为3,由于区块链共识节点网络中共存在10个节点,异常节点的当前数量与区块链在共识中所允许的最高容错节点数量一致,因此,将6个容错节点均加入主节点列表中参与共识。
109.本技术实施例仅以上述为例,并不限于此。本技术实施例中,通过在异常节点数量不超过最高错节点数量时,通过将区块链的容错节点添加至主节点列表中的方式,保证区块链的共识节点更新的顺利进行。
110.在上述实施例的基础上,在一种可能的实施方式中,图6是本技术又一实施例提供的区块链的共识节点更新方法的流程示意图,该方法可以由区块链的共识节点更新装置执行,该装置可以通过软件和/或硬件的方式实现,下面以服务器为执行主体对区块链的共识节点更新方法进行说明,如图6所示,本技术实施例提供的区块链的共识节点更新方法,在步骤s103之后,还可以包括:
111.步骤s301:若存在异常节点恢复正常,则根据当前的异常节点,在主节点列表中剔除部分容错节点。
112.若存在异常节点恢复正常,可以通过将容错节点移出主节点列表的方式,降低leader节点为性能较低的容错节点的概率,进而提高共识的效率。
113.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,根据当前的异常节点,在主节点列表中剔除部分容错节点,包括:若异常节点全部恢复正常,则在主节点列表中剔除添加的p个容错节点。
114.若异常节点全部恢复正常,则将添加至主节点列表中的p个容错节点均剔除主节点列表。以上述图4中,异常节点为节点b001和节点c001,将容错节点b002、节点e001和节点h001加入了主节点列表中,当节点b001和节点c001均恢复正常时,则将节点b002、节点e001和节点h001均在主节点列表中剔除。
115.在另一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新方法,根据当前的异常节点,在主节点列表中剔除部分容错节点,包括:
116.若异常节点部分恢复正常,则在主节点列表中剔除添加的部分容错节点,使主节点列表中的节点数量为3n 1,其中,n为异常节点的当前数量。
117.若异常节点部分恢复正常,则在主节点列表中剔除添加的部分容错节点,使主节点列表中的节点数量为3n 1。依然以上述图4中,异常节点为节点b001和节点c001,将容错节点b002、节点e001和节点h001加入了主节点列表中为例,若只有节点c001恢复正常,则可以将节点e001和节点h001在主节点列表中剔除。
118.本技术实施例在异常节点恢复正常时,在主节点列表中剔除部分容错节点,在保证区块链的共识正常运行的同时,提高了区块链的节点共识的效率。
119.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
120.图7是本技术一实施例提供的区块链的共识节点更新装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,例如可以通过服务器实现,如图7所示,本技术实施例提供的区块链的共识节点更新装置可以包括:缓存模块41、确定模块42和处理模块43。
121.缓存模块41,用于区块链在主节点列表内的节点之间进行共识时,缓存主节点列表中每个节点在共识的每个阶段回复消息包的超时情况。
122.确定模块42,用于确定主节点列表中的异常节点,异常节点为在共识的连续两个阶段回复消息包均超时的节点。
123.处理模块43,用于根据异常节点与区块链中容错节点的关系,更新主节点列表。
124.在一种可能的实施方式中,如图7所示,本技术实施例提供的区块链的共识节点更新装置,还可以包括配置模块44。
125.配置模块44,用于配置区块链主节点及主节点的容错节点,并将主节点添加至主节点列表中,主节点列表中的节点用于接收并回复消息包,容错节点用于同步消息包。
126.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,主节点列表中包括2f 1个主节点和1个容错节点,其中,f为正整数。
127.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块43,还用于:
128.主节点列表中的leader节点向区块链的容错节点发送消息包请求;容错节点接收到消息包请求之后,向leader节点发送消息包。
129.本实施例的装置可以执行上述图2所示的方法实施例,其技术原理和技术效果与上述实施例相似,此处不再赘述。
130.在图7所示实施例的基础上,进一步地,在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块43,具体用于:
131.确定异常节点的容错节点;将异常节点的容错节点添加至主节点列表。
132.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块43,具体用于:
133.若异常节点的当前数量n小于或等于m,则将区块链中的p个容错节点添加至主节点列表中,以使主节点列表中的节点数量为3n 1,其中,m为区块链在共识中所允许的最高容错节点数量。
134.本实施例的装置可以执行上述图5所示的方法实施例,其技术原理和技术效果与上述实施例相似,此处不再赘述。
135.在图7所示实施例的基础上,进一步地,在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块43,还用于:
136.若存在异常节点恢复正常,则根据当前的异常节点,在主节点列表中剔除部分容错节点。
137.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块43,具体用于:
138.若异常节点全部恢复正常,则在主节点列表中剔除添加的p个容错节点。
139.在一种可能的实施方式中,本技术实施例提供的区块链的共识节点更新装置,处理模块43,具体用于:
140.若异常节点部分恢复正常,则在主节点列表中剔除添加的部分容错节点,使主节点列表中的节点数量为3n 1,其中,n为异常节点的当前数量。
141.本实施例的装置可以执行上述图6所示的方法实施例,其技术原理和技术效果与上述实施例相似,此处不再赘述。
142.本技术所提供的装置实施例仅仅是示意性的,图7中的模块划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
143.图8是本技术实施例提供的电子设备的结构示意图,电子设备可以为服务器,如图8所示,该电子设备包括:
144.接收器50、发送器51、处理器52和存储器53以及计算机程序;其中,接收器50和发送器51,实现与其他设备之间的数据传输,计算机程序被存储在存储53中,并且被配置为由处理器52执行,计算机程序包括用于执行上述区块链的共识节点更新方法的指令,其内容及效果请参考方法实施例。
145.此外,本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
146.其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部
分。处理器和存储介质可以位于asic中。另外,该asic可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
147.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
148.本技术实施例还提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述实施例中区块链的共识节点更新方法中的各个步骤。
149.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
150.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
再多了解一些

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

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

相关文献