一种领导者节点选举方法、系统、存储介质及设备

文档序号:29253195发布日期:2022-03-16 10:25阅读:124来源:国知局
一种领导者节点选举方法、系统、存储介质及设备

1.本发明涉及区块链技术领域,特别涉及一种领导者节点选举方法、系统、存储介质及设备。


背景技术:

2.区块链被认为是下一代价值互联网的基础,其本质是一个集密码学、共识算法、p2p网络等计算机技术的分布式超级账本,具备数据去中心化管理、不可篡改、可溯源等特性,不仅在银行、征信、金融等多领域拥有广阔的应用前景,还和物联网、人工智能等前沿技术有着结合的可能。根据参与节点成分的不同,可以把区块链分为公有链、联盟链和私有链。联盟链中数据不一定是对所有人透明的,根据应用背景进行细粒度的读取权限控制,相较于不受控制的公有链,联盟链可以做到在限定范围内的消息共享,更符合多数潜在使用者的需求。
3.raft是通过以领导者为准实现各个节点日志一致的一种共识算法,被越来越多的分布式系统框架应用,比如etcd、consul 等等。进一步的,raft是一种强领导者模型,即一切以领导者为准,实现一系列的共识和各个节点日志一致性的一种共识算法。raft一共有三种成员身份,分别是:领导者(leader)、跟随者(follower)、候选人(candidate)。跟随者:在 raft 中只有领导者才会与客户端交互,因此在不发生选举时,跟随者仅默默地处理来自领导者发送的消息,充当数据冗余的作用,当领导者心跳超时,跟随者会在经过随机超时时长后成为候选者。候选者:成为候选者之后,就会向其它节点发送请求投票消息,以获取其它节点的投票,如果获得了半数及以上选票,则当选领导者。领导者:数据一切以领导者为准,它也是与客户端交互的唯一角色,处理请求,管理日志的复制,同时还不断地发送心跳信息给跟随者,不断刷新跟随者节点的超时时间,以防跟随者发起新的选举。
4.现有技术中,传统的raft算法由于采用随机计时器的方式,leader节点停止工作后,各节点成为候选节点的时间无法确定,易造成以下两种情况导致选举异常:一是候选者节点在拉票过程中,传播延迟使得某些跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,使得该跟随者节点无法响应其它候选者节点拉票请求,如果该情况多次发生,造成候选节点的数量达到总节点一半时,该轮选举会发生失败;二是因网络通信延迟的波动,率先成为候选者的那个节点向其它节点拉票时,由于较高的延迟,之后成为候选者节点的拉票请求反而更早被其它跟随者节点接收,使得系统中投票数分散,以至于无一节点得票数符合过半选举要求,导致该轮竞选失败。除此之外,leader的随机选取也无法确保竞选的节点为性能最佳节点。


技术实现要素:

5.基于此,本发明的目的是提供一种领导者节点选举方法、系统、存储介质及设备,以解决现有技术中由于传播延时以及网络通信延迟的波动导致领导者节点选举异常的技术问题。
6.本发明一方面提供一种领导者节点选举方法,所述方法包括:获取每一跟随者节点的权值以及资历,根据所述权值与所述资历获取每一所述跟随者节点的节点评分,根据所述节点评分获取每一所述跟随者节点的权位,根据所述权位从多个所述跟随者节点中获取授权节点,所述权位为对所述节点评分进行排名后的地位,所述授权节点为节点评分在节点评分总排名前一半的跟随者节点,其中,节点评分排第一的跟随者节点为最佳授权节点,所述最佳授权节点为最先进入候选状态的授权节点,所述最佳授权节点与所述授权节点均属于节点的身份特征,所述资历为跟随者节点加入网络中的连续时间;在各个节点对应的竞选超时时长内,当授权节点没有接收到任何领导者节点的心跳信息时,具有授权节点身份的跟随者节点以及具有最佳授权节点身份的跟随者节点都将进入候选状态,进入候选状态的跟随者节点其状态均将从跟随者节点成为候选者节点,所述具有最佳授权节点身份的跟随者节点比所述具有授权节点身份的跟随者节点优先进入候选状态,所述跟随者节点、所述候选者节点以及所述领导者节点均属于节点的状态特征;获取所述候选者节点的拉票信息,所述拉票信息包括任期,所述跟随者节点根据所述任期对所述候选者节点进行投票,根据投票结果从所述候选者节点中选举出领导者节点。
7.上述领导者节点选举方法,通过权值及资历获取每一跟随者节点的节点评分,从而根据节点评分获得每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点,当授权节点没有接收到任何领导者节点的心跳信息时,授权节点将成为候选者节点,使得在跟随者节点转换为候选者节点的过程中,将授权节点作为节点转换时的限制条件,避免传播延迟时,存在跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,影响选举的问题;进一步的,具有最佳授权节点身份的跟随者节点比具有授权节点身份的跟随者节点优先进入候选状态,有利于具有最佳授权节点身份的跟随者节点优先进入候选状态,从而能够优先竞选为领导者节点,避免因网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题,解决了现有技术中由于传播延时以及网络通信延迟的波动导致领导者节点选举异常的技术问题。
8.另外,根据本发明上述的领导者节点选举方法,还可以具有如下附加的技术特征:进一步地,所述跟随者节点根据所述任期对所述候选者节点进行投票,根据投票结果从所述候选者节点中选举出领导者节点的步骤包括:若对具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果过半时,则所述具有最佳授权节点身份的跟随者节点成为的候选者节点竞选为领导者节点;若对所述具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果未过半时,则重新开始拉票,当其它具备授权节点身份的跟随者节点成为候选者节点时,将同时开始拉票,直至有候选者节点竞选为领导者节点。
9.进一步地,在所述若对所述具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果未过半时,则重新开始拉票,当其它具备授权节点身份的跟随者节点成为候选者节点时,将同时开始拉票,直至有候选者节点竞选为领导者节点的步
骤中:重新开始拉票的具有最佳授权节点身份的跟随者节点成为的候选者节点与开始拉票的其它具备授权节点身份的跟随者节点成为的候选者节点,在拉票过程中,跟随者节点的任期互不影响。
10.进一步地,所述最佳授权节点的竞选超时时长低于授权节点的竞选超时时长。
11.进一步地,所述最佳授权节点进入候选状态的超时时长的设定方法为:其中,1≤s≤n,s表示最佳授权节点,n为系统中节点的个数,i为节点的序号,x为竞选超时时长区间的下限时长,为第i个节点的权值,为第i个节点的资历,y为竞选超时时长区间长度的中间值,为最佳授权节点的权值,为最佳授权节点的资历。
12.进一步地,所述跟随者节点根据所述任期对所述候选者节点进行投票的步骤包括:当所述跟随者节点根据所述任期对所述候选者节点进行投票时,若存在候选者节点超过候选时长仍未发现领导者节点,则未发现领导者节点的候选者节点重新进入下一轮候选阶段。
13.进一步地,在竞选过程中,最佳授权节点的评分越高,进入候选状态的时间越短。
14.本发明另一方面提供一种领导者节点选举系统,所述系统包括:获取模块,用于获取每一跟随者节点的权值以及资历,根据所述权值与所述资历获取每一所述跟随者节点的节点评分,根据所述节点评分获取每一所述跟随者节点的权位,根据所述权位从多个所述跟随者节点中获取授权节点,所述权位为对所述节点评分进行排名后的地位,所述授权节点为节点评分在节点评分总排名前一半的跟随者节点,其中,节点评分排第一的跟随者节点为最佳授权节点,所述最佳授权节点为最先进入候选状态的授权节点,所述最佳授权节点与所述授权节点均属于节点的身份特征,所述资历为跟随者节点加入网络中的连续时间;节点转换模块,用于在各个节点对应的竞选超时时长内,当授权节点没有接收到任何领导者节点的心跳信息时,具有授权节点身份的跟随者节点以及具有最佳授权节点身份的跟随者节点都将进入候选状态,进入候选状态的跟随者节点其状态均将从跟随者节点成为候选者节点,所述具有最佳授权节点身份的跟随者节点比所述具有授权节点身份的跟随者节点优先进入候选状态,所述跟随者节点、所述候选者节点以及所述领导者节点均属于节点的状态特征;投票选举模块,用于获取所述候选者节点的拉票信息,所述拉票信息包括任期,所述跟随者节点根据所述任期对所述候选者节点进行投票,根据投票结果从所述候选者节点中选举出领导者节点。
15.本发明另一方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的领导者节点选举方法。
16.本发明另一方面还提供一种数据处理设备,包括存储器、处理器以及存储在存储
器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述的领导者节点选举方法。
附图说明
17.图1为本发明第一实施例中领导者节点选举方法的流程图;图2为本发明中节点权值判定决策树算法示意图;图3为本发明第二实施例中领导者节点选举方法的流程图;图4为本发明第二实施例中节点身份挑选示意图;图5为本发明第二实施例中节点状态变化图;图6为发明中raft算法的运行框架;图7为本发明第三实施例中领导者节点选举系统的系统框图。
18.如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
19.为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
20.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
21.数字经济的快速发展正在改变人们的生活方式,溯源系统实现了产品供应链中交易信息从物理世界到数字世界的转变,它涉及生产、加工、转运、销售和消费多个环节的信息管理。通常产品信息是存储在交易过程中供应商和销售门店手中,整个产品交易过程的数据缺乏共享,形成一个个信息孤岛,容易导致其交易数据在利益驱动下被篡改、被损坏。区块链是一种分布式超级账本,它具有数据去中心化存储、不可篡改和时间戳等特征,其联盟链具备私有链的数据隐私保护与公有链的不同组织中运行特征,近年来推动了区块链在传统产品溯源系统中的应用。一般而言区块链是由多机多节点组成的分布式系统,其数据传输存在时延性,容易造成数据存取一致性问题,因此,保证数据在各节点上的一致性是区块链技术应用首要解决的问题。2013年diego ongaro等提出了一种名为raft的共识算法。
22.该算法由leader选举、日志复制以及安全性三个方面构成,它将节点划分为跟随者、候选者和领导者(leader)三种状态。由于其易理解和实现,截止目前它被应用在各种场景,例如,hyperleder fabric中就采用了raft算法作为其一致性算法。该算法的运行机制为:初始阶段,所有节点都处于跟随者状态,一段时间内没有收到领导者发送心跳信息的节点将进入候选者状态。此时,进入候选者状态的节点会以并发的方式,向其它跟随者状态的节点拉票,若在竞选周期内收到一半以上的投票,该候选者节点将成为新的领导者节点。其中,raft算法存在过半节点同时处于候选者状态竞争拉票,导致没有节点符合过半选举这一要求,从而在一轮竞选中leader竞选失败。针对这一问题,raft算法采用了随机计时器的方法,以此达到各节点错时竞选的目的。然而,计时器的方法在理想状况下能够降低leader
选举失败的发生概率,但是在实际生产环境中,系统存在传播延迟,节点宕机等因素。因此,这一机制无法确保leader选举一次性成功,易造成多次选举的发生,存在很大的波动性和偶然性。
23.在基于raft算法的联盟链中,异常选举发生存在两种情况:一是候选者节点向其它节点拉票途中,由于传播延迟,存在某些节点在未接收投票请求前,自身的超时时长已到而成为了候选者,导致该节点无法响应其它节点的拉票请求,当类似的情况多次发生,系统中候选节点数达到一半时,该轮选举便注定失败;二是网络存在波动,率先成为候选者的那个节点向其它节点拉票时,由于较高的延迟,之后成为候选者节点的拉票请求反而更早被其它节点接收,导致系统中票数的分散,以至于无一节点符合过半选举这一要求,最终该轮竞选失败;异常选举的出现,尽管概率低,但只要一经出现,这对整个系统而言,影响就是巨大且难以接受的。在本技术中,通过授权节点和最佳授权节点避免了上述造成异常选举发生的两种情况。具体的,通过设置最佳授权节点,在领导者节点宕机后,该节点相比于其它授权节点可提前进入候选状态,即使存在一定的网络波动,也能在出现第二个候选者节点前完成一轮选举,避免一轮选举中发生候选者节点抢票的行为。
24.联盟链的网络一般而言是稳定且畅通的,故本方法设计了一种面向联盟链授权选举的算法:ae-raft。该算法在节点配置中增添四个属性:权值、资历、评分、权位。权值代表了一个节点的硬件性能等级,资历为一个节点进入网络中的连续运行时长,评分取值为权值和资历的乘积,它代表一个节点的硬软件评估得分,权位决定一个节点是否拥有选举权,设置评分在所有节点中前一半排位节点的权位为true,权位为true的具备选举权。该方法可以挑选出该系统中一半节点成为授权节点,在leader选举过程中,根据授权节点权值,使得权值最高的授权节点成为最佳授权节点,具有最佳授权节点身份的跟跟随者节点可优先成为leader。通过该方法可以确保在通畅的网络环境下,leader选举至多在一次超时时长内就能成功,且选举出的leader节点在当前系统中是最稳定的。
25.在以hyperleder fabric为平台的联盟链中,可使用本专利的授权选举raft共识算法。区块链中每个节点都拥有一份完整且相同的账本,当一个用户向任意一个节点上传数据时,通过raft共识算法,可将数据同步至所有节点中,当有用户需要查询该数据时,可从任一节点中获取。
26.实施例一请参阅图1,所示为本发明第一实施例中的领导者节点选举方法,所述方法包括步骤s101至步骤s103:s101、获取每一跟随者节点的权值以及资历,根据权值与资历获取每一跟随者节点的节点评分,根据节点评分获取每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点,权位为对节点评分进行排名后的地位,授权节点为节点评分在节点评分总排名前一半的跟随者节点,其中,节点评分排第一的跟随者节点为最佳授权节点,最佳授权节点为最先进入候选状态的授权节点,最佳授权节点与授权节点均属于节点的身份特征,资历为跟随者节点加入网络中的连续时间。
27.具体的,权位为对节点评分进行排名后的地位,授权节点为节点评分在节点评分总排名前一半的跟随者节点,其权位标记为true,资历为跟随者节点加入网络中的连续时间。
28.具体的,使用的共识算法引入了四个属性:权值、资历、权位、评分。具体用途为:权值:由决策树算法(具体可为c4.5算法)根据机器的配置信息进行分类,分为三档:优秀,良好,一般。优秀权值为3,良好为2,一般为1。用于衡量一个机器的硬件性能。如图2所示为节点权值判定,每个新加入的节点通过决策树算法c4.5进行判定权值,本专利中节点权值取决于机器硬件配置信息,具体包括cpu、内存、带宽,权值越高的机器硬件条件越好。
29.cpu、内存、带宽是衡量一个机器性能的主要指标,对机器性能的影响从高到低依次为:cpu、内存、带宽,因此将cpu作为父节点其熵最小,如图2所示的节点安排可最大化提高预测的准确性。
30.需要说明的是,本发明的发明点之一为设置了授权节点,即针对的目标为raft算法,权值的预测为次要部分;其次,本发明中关于机器硬件的评分体系中,分类特征少、且特征优先级明显,采用评分体系,综合考量了节点硬件和软件的情况,可挑选出网络中性能最优的节点担任领导者,提高分布式系统的可用性。
31.资历:节点加入网络中的连续时间,用来衡量该节点的稳定程度。当节点重连时,其运行时长清零。
32.权位:布尔类型,权位决定一个节点是否为授权节点。网络中只有授权节点具备成为候选者节点的资格,从而避免传播延迟时,存在跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,影响选举的问题。其中,把排名在前一半的节点标记为true,其余节点标记为false,true值为授权节点,false值为非授权节点,即授权节点为权位标记为true的节点。
33.评分:由权值和资历所得,具体为:评分=权值*资历,节点评分为进行权位判定的依据。
34.具体的,获取权值的方法包括:获取机器的配置信息,所述配置信息包括cpu、内存以及带宽;结合预训练的决策树算法模型,根据所述cpu、所述内存以及所述带宽对所述机器的配置进行等级分类,得到配置等级,每一等级对应不同的权值;获取所述配置等级,根据所述配置等级获得与所述配置等级对应的权值。
35.s102、在各个节点对应的竞选超时时长内,当授权节点没有接收到任何领导者节点的心跳信息时,具有授权节点身份的跟随者节点以及具有最佳授权节点身份的跟随者节点都将进入候选状态,进入候选状态的跟随者节点其状态均将从跟随者节点成为候选者节点。
36.在上述步骤中,最佳授权节点为授权节点中节点评分最高者,具有最佳授权节点身份的跟随者节点比具有授权节点身份的跟随者节点优先进入候选状态。raft算法中,“xx者”表示节点的状态,即跟随者节点、候选者节点以及领导者节点均属于节点的状态特征,而授权节点、最佳授权节点为人为赋予的身份特征,拥有特权,而其它节点为一般节点。具体的,可以简单理解为:一般节点中挑选评分前一半的为授权节点;在授权节点中挑选评分第一的为最佳授权节点。授权节点拥有竞选权,即可在一定条件下从跟随者状态转变为候选者状态;最佳授权节点拥有竞选优先权,即第一个进入候选状态。
37.具体的,节点分为三个身份:非授权节点、授权节点、最佳授权节点。其中:
非授权节点:在竞选过程中没有资格成为候选者节点,一直处于跟随者节点状态;授权节点:在竞选过程中有资格成为候选者节点,领导者节点从具有授权节点身份的跟随者节点中选出;最佳授权节点:跟随者节点中评分最高的授权节点(若后来节点与最佳授权节点评分相同,权值高的优先成为最佳授权节点),可优先进入候选状态。
38.s103、获取候选者节点的拉票信息,拉票信息包括任期,跟随者节点根据任期对候选者节点进行投票,根据投票结果从候选者节点中选举出领导者节点。
39.具有最佳授权节点身份的跟随者节点,能够优先成为领导者节点。若所有节点正常运行,则所有节点的起始任期是一致的,正常情况下,具有最佳授权节点身份的跟随者节点,只需要一轮选举就可以竞选通过,竞选为领导者节点。从而避免由于需要进行多轮选举,网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题。若存在候选者节点异常的情况,即出现任期不同步的情况,由于日志不同步,即使任期比跟随者节点的任期更高,跟随者节点也会拒绝投票给候选者节点,从而避免由于网络异常导致投票失败的情况。
40.综上,本发明上述实施例当中的领导者节点选举方法,通过权值及资历获取每一跟随者节点的节点评分,从而根据节点评分获得每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点,当授权节点没有接收到任何领导者节点的心跳信息时,授权节点将成为候选者节点,使得在跟随者节点转换为候选者节点的过程中,将授权节点作为节点转换时的限制条件,避免传播延迟时,存在跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,影响选举的问题;进一步的,具有最佳授权节点身份的跟随者节点比具有授权节点身份的跟随者节点优先进入候选状态,有利于具有最佳授权节点身份的跟随者节点优先进入候选状态,从而能够优先竞选为领导者节点,避免因网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题,解决了现有技术中由于传播延时以及网络通信延迟的波动导致领导者节点选举异常的技术问题。
41.实施例二请查阅图3,所示为本发明第二实施例中的领导者节点选举方法,所述方法包括步骤s201至步骤s203:s201、获取每一跟随者节点的权值以及资历,根据权值与资历获取每一跟随者节点的节点评分,根据节点评分获取每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点,权位为对节点评分进行排名后的地位,授权节点为节点评分在节点评分总排名前一半的跟随者节点,其中,节点评分排第一的跟随者节点为最佳授权节点,最佳授权节点为最先进入候选状态的授权节点,最佳授权节点与授权节点均属于节点的身份特征,资历为跟随者节点加入网络中的连续时间。
42.在集群节点启动阶段,通过获取每一跟随者节点的权值以及资历,得出每一跟随者节点的节点评分,而后根据节点评分获取每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点。
43.具体的,权位为对节点评分进行排名后的地位,授权节点为节点评分在节点评分
总排名前一半的跟随者节点,其权位标记为true,资历为跟随者节点加入网络中的连续时间。
44.如图4为节点身份挑选示意图。网络中,每个节点可通过权值和资历计算出评分,该评分是对一个节点硬件和软件的综合性能的定量判定。其中评分处在所有节点前(n-1)/2(包括)位的,其权位赋值为true,成为授权节点;在授权节点中评分第一的成为最佳授权节点,其竞选超时时长低于其它授权节点。
45.s202、在各个节点对应的竞选超时时长内,当授权节点没有接收到任何领导者节点的心跳信息时,具有授权节点身份的跟随者节点以及具有最佳授权节点身份的跟随者节点都将进入候选状态,进入候选状态的跟随者节点其状态均将从跟随者节点成为候选者节点。
46.在竞选过程中,最佳授权节点的评分越高,进入候选状态的时间越短,最佳授权节点的竞选超时时长低于授权节点的竞选超时时长,从而,具有最佳授权节点身份的跟随者节点比具有授权节点身份的跟随者节点优先进入候选状态。进一步的,跟随者节点、候选者节点以及领导者节点均属于节点的状态特征。需要说明的是,当跟随者节点进入候选状态时,此时的跟随者节点即成为了候选者节点,将直接开始竞选拉票。
47.候选者节点将从具有授权节点身份的跟随者节点中产生,其中授权节点中评分最高的节点定为最佳授权节点,最佳授权节点进入候选状态的优先级最高,节点一旦成为候选者节点将直接开始竞选拉票。进一步的,在竞选过程中,最佳授权节点的评分越高,进入候选状态的时间越短,有利于最佳授权节点优先竞选为领导者节点,避免因网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题。具体的,通过设置最佳授权节点,在领导者节点宕机后,该节点相比于其它授权节点可提前进入候选状态,即使存在一定的网络波动,也能在出现第二个候选者节点前完成一轮选举,避免一轮选举中发生候选者节点抢票的行为。可以理解的,在一些可选实施例中,最佳授权节点进入候选状态的时间与节点评分成反比,与授权节点数量成正比。
48.在上述步骤中,具有授权节点身份的跟随者节点有资格成为候选者节点,在竞选超时时长内,当候选者节点接收到任何领导者节点的心跳信息时,候选者节点将重新返回至跟随者节点,最佳授权节点的竞选超时时长低于授权节点的竞选超时时长,从而有利于具有最佳授权节点身份的跟随者节点优先进入到候选状态开始竞选拉票。
49.如图5为节点状态变化图。初始阶段所有节点都为跟随者节点,当在竞选超时时长内没有接收到任何领导者的消息时,具有授权节点身份的跟随者节点将进入候选状态而成为候选者节点,而非授权节点仍保持跟随者状态,候选者节点向其它跟随者节点拉票,当某个候选者节点获得一半以上的选票时将竞选成为领导者节点,在竞选过程中,若候选者节点发现更大任期的任一节点,则会退回到跟随者节点状态。当一个候选者节点在候选时长内未发现领导者节点,将重新进入下一个候选阶段;领导者节点在正常工作时,若发现更大任期的任一节点,则会自动丧失领导地位,成为跟随者节点。具体的,“候选时长”为候选者节点竞选领导者时拥有的时限,当达到时限却未竞选成功时视为竞选失败;“超时时长”为跟随者节点未接收到领导者心跳信息时的容忍时间,当达到该时间时,视为领导者宕机,该节点进入候选状态。可以理解的,设置授权节点相当于在跟随者节点变为候选者节点的过
程中,设置有一条件,只有具有授权节点身份的跟随者节点才能有机会成为候选者节点。例如,在公司的执行董事长选举过程中,只有进入董事委员会的股东才有选举权,一般股东只有投票权,此处的“董事委员会”可以理解为本技术方案中的“授权节点”,从所有股东中挑选出在董事委员会的股东作为候选者节点,即只有授权节点才能变为候选者节点,经过筛选,减少了成为候选者节点的节点数量,让领导者节点的选举更有针对性,从而避免传播延迟时,存在跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,影响选举的问题。进一步的,设置最佳授权节点,避免因网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题。
50.在系统的同一时间内,最佳授权节点有且只有一个,具体的,最佳授权节点进入候选状态的超时时长的设定方法为:其中,1≤s≤n,s表示最佳授权节点,n为系统中节点的个数,i为节点的序号,x为竞选超时时长区间的下限时长,为第i个节点的权值,为第i个节点的资历,y为竞选超时时长区间长度的中间值,为最佳授权节点的权值,为最佳授权节点的资历。
51.作为一个具体示例,所有节点竞选超时时长设定为200-300ms之间随机生成,具体的,最佳授权节点为,其中为第i个节点的权值,为第i个节点的资历。进一步的,网络参与共识节点为奇数n,选取(n-1)/2个节点为授权节点。授权节点由权位为true的节点担任。
52.作为一个具体示例,时长设定依据为:本专利中节点竞选超时时长设定为200-300ms,最佳授权节点提前进入候选状态时间为0-50ms,其中50取200-300之间长度的中间值。作为调节优先时间的参数,当最佳授权节点评分越高时,提前进入候选状态的时间越早,优势越大,当加入的授权节点越多时,节点接收到心跳信息的时间会增大,通过减小优先时间可避免最佳授权节点在领导者正常工作时由于未接收到心跳信息过早进入候选状态。
53.进一步的,共识节点个数为奇数的依据:在节点数和容错性之间比偶数节点具备更好的优势。比如:raft中允许不超过一半数量的节点宕机,4节点的网络允许1个节点宕机,5节点的网络允许2节点宕机,6节点的网络允许2节点宕机。因此,奇数点数量节点的网络拥有比其少一个节点网络更强的容错性以及和其多一个节点网络相同的容错性。
54.再进一步的,选取(n-1)/2个节点为授权节点的依据:raft存在过半选举机制,当选取多于(n-1)/2个节点为授权节点时,网络中非授权节点数量少于一半,存在一个授权节点收集所有非授权节点投票,但未获取任一其它授权节点投票的情况,导致竞选的失败;当
授权节点数量过少时,授权节点接连宕机,最坏情况下,存在网络中无授权节点,导致竞选失败。因此,将授权节点设置为(n-1)/2,是网络容错性最佳的选择。
55.s203、获取候选者节点的拉票信息,拉票信息包括任期,跟随者节点根据任期对候选者节点进行投票,根据投票结果从候选者节点中选举出领导者节点。
56.当跟随者节点根据任期对候选者节点进行投票时,若存在候选者节点超过候选时长仍未发现领导者节点,则未发现领导者节点的候选者节点重新进入下一轮候选阶段。
57.在本实施例中,在跟随者节点根据任期对候选者节点进行投票,根据投票结果从候选者节点中选举出领导者节点的步骤中:若对具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果过半时,则具有最佳授权节点身份的跟随者节点成为的候选者节点竞选为领导者节点;若对具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果未过半时,则重新开始拉票,当其它具备授权节点身份的跟随者节点成为候选者节点时,将同时开始拉票,直至有候选者节点竞选为领导者节点。
58.由于具有最佳授权节点身份的跟随者节点最先进入候选状态,故在正常情况下,具有最佳授权节点身份的跟随者节点即可成为选举成功的领导者节点。若最佳授权节点的日志与进行投票的跟随者节点的日志不一致,跟随者节点将拒绝投票,当过半节点拒绝投票时,最佳授权节点的这一轮竞选失败,开始下一轮竞选,但上一轮的投票拒绝情形将重复发生,导致最佳授权节点的任期在不断增加,但始终无法竞选成功,避免了错误节点成为领导者节点的发生。
59.若由于网络异常等原因,使得具有最佳授权节点身份的跟随者节点成为的候选者节点的票数结果未过半时,将重新进入下一轮选举开始拉票,由于所有节点的起始任期一致,而每个跟随者节点只会对相同的任期进行一次投票,当其它具备授权节点身份的跟随者节点成为候选者节点开始拉票,其任期号加一,而具有最佳授权节点身份的候选者节点由于已经至少进行完一轮选举,这些具备授权节点身份的候选者节点的任期已被最佳授权节点使用,因此,对于已经投票给最佳授权节点的跟随者节点将拒绝投票给小于最佳授权节点任期的授权节点。而最佳授权节点由于更新了任期将重新获取跟随者节点的投票。故当重新开始拉票时,具有最佳授权节点身份的跟随者节点依旧能够竞选为领导者节点。本方法在于选举出具有最佳授权节点身份的跟随者节点作为领导者节点,因为具有最佳授权节点身份的跟随者节点,其性能最佳,提高分布式系统的可用性。
60.具体的,重新开始拉票的具有最佳授权节点身份的跟随者节点成为的候选者节点与开始拉票的其它具备授权节点身份的跟随者节点成为的候选者节点,在拉票过程中,跟随者节点的任期互不影响。例如,类比在排队面试过程中,每一跟随者节点都独自为一队,当进入候选状态时,则代表每一跟随者节点进入到一面试房间开始面试,一进入面试,若有候选者节点竞选成功,则停止所有面试,结束竞选。若该候选者节点面试失败,也不需要退出面试房间,直接任期号加一开始新一轮面试,直至有人成功。而具有最佳授权节点身份的跟随者节点是最先进行面试的。每一候选者节点均处于不同的面试房间,拉票过程中,跟随者节点的任期互不影响。
61.当跟随者节点根据任期对候选者节点进行投票时,若存在候选者节点在超时时长
内未发现领导者节点,则未发现领导者节点的候选者节点重新进入下一轮候选阶段。可以理解的,当所述跟随者节点根据所述任期对所述候选者节点进行投票时,若存在候选者节点在超时时长内未收到来自任何领导者节点的心跳信息,则理解为候选者节点在超时时长内未发现领导者节点,此时,未收到来自任何领导者节点的心跳信息的候选者节点将重新进入下一轮候选阶段。
62.在raft算法运行过程中,当跟随者节点在竞选超时时长内没有接收到领导者节点的心跳信息,此时,进行身份判定:首先判定是否为授权节点,若是将进行下一轮判定,否则仍保持跟随者节点状态;当判定为授权节点后,再进行判定是否为最佳授权节点,若是则会相比其它授权节点提前进入候选状态,在实际运行过程中,具有最佳授权节点身份的跟随者节点是第一个进入候选状态的节点,在候选阶段,每个候选者节点会首先将任期号加一,即进入候选状态的具有授权节点身份的跟随者节点或者具有最佳授权节点身份的跟随者节点,先将任期号加一,然后广播竞选信息,收集其它跟随者节点的投票,当投票者的任期不大于自己时,获取的票数加一,当获取过半节点的投票时,竞选成为领导者节点,否则,重新开始新一轮的拉票,直至有新的领导者节点诞生。
63.如图6所示为运行框架。该图为在联盟链中使用授权选举raft算法的框架图。各节点通过grpc协议进行通信。由于区块链本身就是个分布式数据库,内部存在共识算法,使得各节点之间能够保持数据的一致性。在本技术中只有授权节点才有资格成为领导者节点。主要的运行过程为:客户端发送交易消息给领导者,联盟链中各节点通过共识算法达到共识后,所有节点都会将交易数据写入自身的账本中,然后领导者会告知客户端成功的消息。
64.综上,本发明上述实施例当中的领导者节点选举方法,通过权值及资历获取每一跟随者节点的节点评分,从而根据节点评分获得每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点,当授权节点没有接收到任何领导者节点的心跳信息时,授权节点将成为候选者节点,使得在跟随者节点转换为候选者节点的过程中,将授权节点作为节点转换时的限制条件,避免传播延迟时,存在跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,影响选举的问题;进一步的,具有最佳授权节点身份的跟随者节点比具有授权节点身份的跟随者节点优先进入候选状态,有利于具有最佳授权节点身份的跟随者节点优先进入候选状态,从而能够优先竞选为领导者节点,避免因网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题,解决了现有技术中由于传播延时以及网络通信延迟的波动导致领导者节点选举异常的技术问题。
65.实施例三请参阅图7,所示为本发明第三实施例中的领导者节点选举系统,所述系统包括:获取模块,用于获取每一跟随者节点的权值以及资历,根据所述权值与所述资历获取每一所述跟随者节点的节点评分,根据所述节点评分获取每一所述跟随者节点的权位,根据所述权位从多个所述跟随者节点中获取授权节点,所述权位为对所述节点评分进行排名后的地位,所述授权节点为节点评分在节点评分总排名前一半的跟随者节点,其中,节点评分排第一的跟随者节点为最佳授权节点,所述最佳授权节点为最先进入候选状态的授权节点,所述最佳授权节点与所述授权节点均属于节点的身份特征,所述资历为跟随者
节点加入网络中的连续时间;节点转换模块,用于在各个节点对应的竞选超时时长内,当授权节点没有接收到任何领导者节点的心跳信息时,具有授权节点身份的跟随者节点以及具有最佳授权节点身份的跟随者节点都将进入候选状态,进入候选状态的跟随者节点其状态均将从跟随者节点成为候选者节点,所述具有最佳授权节点身份的跟随者节点比所述具有授权节点身份的跟随者节点优先进入候选状态,所述跟随者节点、所述候选者节点以及所述领导者节点均属于节点的状态特征;投票选举模块,用于获取所述候选者节点的拉票信息,所述拉票信息包括任期,所述跟随者节点根据所述任期对所述候选者节点进行投票,根据投票结果从所述候选者节点中选举出领导者节点。
66.在一些可选实施例中,投票选举模块包括:第一执行单元,用于若对具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果过半时,则所述具有最佳授权节点身份的跟随者节点成为的候选者节点竞选为领导者节点;第二执行单元,用于若对所述具有最佳授权节点身份的跟随者节点成为的候选者节点进行投票,其投票的票数结果未过半时,则重新开始拉票,当其它具备授权节点身份的跟随者节点成为候选者节点时,将同时开始拉票,直至有候选者节点竞选为领导者节点。
67.在一些可选实施例中,投票选举模块包括:重新进入候选单元,用于当所述跟随者节点根据所述任期对所述候选者节点进行投票时,若存在候选者节点超过候选时长仍未发现领导者节点,则未发现领导者节点的候选者节点重新进入下一轮候选阶段。
68.综上,本发明上述实施例当中的领导者节点选举系统,通过权值及资历获取每一跟随者节点的节点评分,从而根据节点评分获得每一跟随者节点的权位,根据权位从多个跟随者节点中获取授权节点,当授权节点没有接收到任何领导者节点的心跳信息时,授权节点将成为候选者节点,使得在跟随者节点转换为候选者节点的过程中,将授权节点作为节点转换时的限制条件,避免传播延迟时,存在跟随者节点在未接收投票请求前,由于自身的超时时长已过而成为候选者,影响选举的问题;进一步的,具有最佳授权节点身份的跟随者节点比具有授权节点身份的跟随者节点优先进入候选状态,有利于具有最佳授权节点身份的跟随者节点优先进入候选状态,从而能够优先竞选为领导者节点,避免因网络通信延迟的波动,率先成为候选者节点向其它跟随者节点拉票时,高延迟导致后来成为候选者节点与率先成为候选者节点发生抢票,使得系统中投票数分散,导致该轮竞选失败的问题,解决了现有技术中由于传播延时以及网络通信延迟的波动导致领导者节点选举异常的技术问题。
69.此外,本发明的实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例中方法的步骤。
70.此外,本发明的实施例还提出一种数据处理设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述实施例中方法的步骤。
71.在流程图中表示或在此以其它方式描述的逻辑和/或步骤,例如,可以被认为是用
于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其它可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
72.计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其它合适的介质,因为可以例如通过对纸或其它介质进行光学扫描,接着进行编辑、解译或必要时以其它合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
73.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
74.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、
ꢀ“
示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
75.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1