一种基于Raft的自适应多节点动态提高效率方法技术

技术编号:33913013 阅读:16 留言:0更新日期:2022-06-25 19:47
本发明专利技术涉及区块链共识技术领域,具体公开了一种基于Raft的自适应多节点动态提高效率方法。包括以下步骤:步骤S01,统计集群中所有节点的RTT(Round Trip Time),并求出所有节点的RTT平均值;步骤S02,根据业务需求以及RTT平均值排名靠后的节点,确定最低数据冗余最低份数;步骤S03,将最低份数的所有节点转换为被动节点,禁止参与共识;步骤S04,Leader宕机集群发生选主,非被动节点以及被动节点均可参与选主,新Leader需重复步骤S01、步骤S02、步骤S03;步骤S05,非被动节点发生宕机,转换部分数量的被动节点参与共识;步骤S06,被动节点发生宕机,再重启时,加入集群。本发明专利技术的目的在于解决传统的Raft节点增多,数据安全性提高越来越少的问题。的问题。的问题。

【技术实现步骤摘要】
一种基于Raft的自适应多节点动态提高效率方法


[0001]本申请涉及区块链共识
,具体公开了一种基于Raft的自适应多节点动态提高效率方法。

技术介绍

[0002]Reft是一种更为简单方便易于理解的分布式算法,主要解决了分布式中的一致性问题。相比传统的Paxos算法,Reft将大量的计算问题分解成为了一些简单的相对独立的子问题。Reft通过选举一个高贵的领导人,然后给予他全部的管理复制日志的责任来实现一致性。领导人从客户端接收日志条目,把日志条目复制到其他服务器上,并且当保证安全性的时候告诉其他的服务器应用日志条目到他们的状态机中。
[0003]Raft在非拜占庭的情况下有着较优秀的共识效率,共识算法复杂度为O(N),但是随着节点的增多,数据的安全性的提升随着节点增加而边际效益递减:令一台机器数据丢失的概率为A,那么对于N台机器,在Raft算法下,过半机器正常运行即可保证数据安全,那么数据不丢失的概率为对P求N的导数,得因为0<A<1,可知P

<0,所以随着N的投入增加,数据安全性提高越来越少。但是多节点在区块链业务场景下有着实际意义,比如增加读性能等。可节点过多会造成集群性能下降较多,因此,专利技术人有鉴于此,提供了一种基于Raft的自适应多节点动态提高效率方法,以便解决上述问题。

技术实现思路

[0004]本专利技术的目的在于解决传统的Raft节点增多,数据安全性提高越来越少的问题。
[0005]为了达到上述目的,本专利技术的基础方案提供一种基于Raft的自适应多节点动态提高效率方法,包括以下步骤:
[0006]步骤S01,统计集群中所有节点的RTT(Round Trip Time),并求出所有节点的RTT平均值;
[0007]步骤S02,根据业务需求以及RTT平均值排名靠后的节点,确定最低数据冗余最低份数;
[0008]步骤S03,将最低份数的所有节点转换为被动节点,禁止参与共识;
[0009]步骤S04,Leader宕机集群发生选主,非被动节点以及被动节点均可参与选主,新Leader需重复步骤S01、步骤S02、步骤S03;
[0010]步骤S05,非被动节点发生宕机,转换部分数量的被动节点参与共识;
[0011]步骤S06,被动节点发生宕机,再重启时,加入集群。
[0012]进一步,在步骤S01中,由选举出的Leader,依次对集群中所有节点发起若干次共识,对单个节点的多共识进行RTT时间平均,此时则为单个节点的RTT值。
[0013]进一步,充分统计所有单个节点中的PTT值,并将所有的单个节点中PTT值进行求和平均,此时的值便为该个集群中的所有节点的RTT平均值。
[0014]进一步,在步骤S02中,根据所有节点的RTT平均值,根据业务需求,确定被动节点以及非被动节点的临界值,以此来确定最低数据冗余最低份数t。
[0015]进一步,在步骤S03中,被动节点日志从非Leader节点进行同步复制。
[0016]进一步,在步骤S03中,增加GetEntries方法,统计被动节点与非被动节点的交互的平均RTT,选择RTT最小的节点和他交互。
[0017]进一步,在步骤S03中,Leader在选取非被动节点进行交互时,根据单个节点的RTT,根据单个节点排名从低到高依次进行不同内容的交互。
[0018]进一步,在步骤S05中,令集群中所有节点数量为N,需要保证集群内至少有N(1

t)个节点参与共识。
[0019]本基础方案的原理及效果在于:
[0020]1、由Leader节点在若干次共识中,统计出RTT(Round Trip Time)最长的若干节点,让他们转为被动模式Passive Mode,即不再主动参与共识,而是从其他节点获取日志,在需要时,比如重新选主时,他们再转换为正常的共识节点,参与共识,在业务合理情况下,即提高了共识效率,让低效率节点成为被动节点,同时还保证了数据安全性。
[0021]2、在非被动节出现宕机等情况时,可根据实际的业务需要将被动节点转换为非被动节点,以便后续的交互工作能够正常的进行;同理,当业务需要比较繁忙时,可以主动转换被动节点参与共识,业务处理完毕,再次将对应的节点转换为被动节点。
[0022]3、在对主动节点以及被动节点的选取中,是根据每个节点的平均RTT值进行,这样在选取中可主动赛选一些RTT值比较大的节点成为被动节点,有效的提高了共识效率。
[0023]4、在正常的业务场景下,令一台机器数据丢失的概率为A,那么对于N台机器,在Raft算法下,过半机器正常运行即可保证数据安全,那么数据不丢失的概率为对P求N的导数,得因为0<A<1,可知P

<0,所以随着N的投入增加,数据安全性提高越来越少,而本专利技术在日常运用中,可有效的减少节点N的投入,因此数据安全性也随之提高。
附图说明
[0024]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1示出了本申请实施例提出的一种基于Raft的自适应多节点动态提高效率方法的流程图。
具体实施方式
[0026]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0027]下面通过具体实施方式进一步详细的说明:
[0028]一种基于Raft的自适应多节点动态提高效率方法,Raft共识算法的基础组件包括Raft状态机单元、Raft内核单元、日志存储单元,Raft状态机单元用于管理Raft共识算法在应用节点中的运行状态,Raft内核单元用于执行Raft共识算法完成共识内容,构造和处理交互消息,同时测试Raft共识算法执行的安全性和正确性,日志存储单元用于存储所有基础组件工作产生的日志;
[0029]Raft内核单元执行Raft共识算法时,每个应用节点具有三种状态,分别为跟随者(Follower)、候选者(Candidate)以及领导者(Leader);
[0030]开始时,所有应用节点处于跟随者状态,每个跟随者启动一个计时器,在超时后还未收到领导者发来的心跳(追加消息)响应遍进入候选者状态;
[0031]候选者发起一轮新竞选,向周围应用节点发送包含当前任期的投票请求消息,每个跟随者对比请求消息包含的任期(即消息中的优先级)与当前保存的目标任期,如果消息内任期更高就支持候选者竞选,候选者收到超过半数的跟随者的投票后就成为领导者,否则就退出领导者竞选;
[0032]领导者本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Raft的自适应多节点动态提高效率方法,其特征在于:包括以下步骤:步骤S01,统计集群中所有节点的RTT(Round Trip Time),并求出所有节点的RTT平均值;步骤S02,根据业务需求以及RTT平均值排名靠后的节点,确定最低数据冗余最低份数;步骤S03,将最低份数的所有节点转换为被动节点,禁止参与共识;步骤S04,Leader宕机集群发生选主,非被动节点以及被动节点均可参与选主,新Leader需重复步骤S01、步骤S02、步骤S03;步骤S05,非被动节点发生宕机,转换部分数量的被动节点参与共识;步骤S06,被动节点发生宕机,再重启时,加入集群。2.根据权利要求1所述的一种基于Raft的自适应多节点动态提高效率方法,其特征在于,在步骤S01中,由选举出的Leader,依次对集群中所有节点发起若干次共识,对单个节点的多共识进行RTT时间平均,此时则为单个节点的RTT值。3.根据权利要求2所述的一种基于Raft的自适应多节点动态提高效率方法,其特征在于,充分统计所有单个节点中的PTT值,并将所有的单个节点中PTT值进行求和平均,此时的值便为该个集群中的所有节点的RT...

【专利技术属性】
技术研发人员:曾磊郭颂唐瑞琮徐思思陈虹谷
申请(专利权)人:重庆趣链数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1