法律状态公告日
法律状态信息
法律状态
2023-03-17
实质审查的生效 IPC(主分类):H04L41/0893 专利申请号:2022103999479 申请日:20220415
实质审查的生效
技术领域
本发明涉及区块链技术领域,具体涉及一种基于Raft算法的区块链共识机制方法。
背景技术
区块链技术通过特定的共识机制实现了分布式节点之间账本的一致,区块链之所以被称为“链”,是因为每个区块(block)都以特定密码学的方式链接到前一个区块,一般而言,区块链最开始的区块被称为“创世区块”,而区块中存储的内容主要包括每段时间网络中产生的交易。
从去中心化的角度,可以将区块链分为公有链、私有链和联盟链。公有链的去中心化程度最高,任何节点都可加入,如比特币、以太坊等。私有链的去中心化程度最低,一般由个人或某个小团体创建,仅使用区块链技术进行记账。联盟链的去中心化程度介于公有链和私有链之间,一般由多个不同利益方的机构组成,节点必须经过联盟链节点成员管理服务进行身份确认和鉴权,获得准入证才可以加入联盟链网络。联盟链支持节点管理、可插拔的框架和模块化的共识机制,因此在性能和隐私保护上比公有链更有优势,是区块链落地的主要趋势。在安全性方面,共识机制是区块链的核心技术,决定了区块链的安全性等性能。
综上所述,研发一种基于Raft算法的区块链共识机制方法,仍是区块链技术领域中急需解决的关键问题。
发明内容
本发明为了解决上述问题,本发明提供了一种基于Raft算法的区块链共识机制方法,本发明基于Raft算法,将所获得的所有节点分组,选举产生领导者,并在节点分组内选择至少一个监督节点,监督节点负责监督组内的领导者,领导者的共识节点任期结束是由新区块生成完成而结束,实现轮流生成区块的共识机制,所生成的领导者进行选举和验证过程,以保障能够完成所需的交易事件。
为实现上述目的,本发明提供了如下技术方案:
本发明提供了一种基于Raft算法的区块链共识机制方法,包括以下步骤:
(1)获取区块链的所有节点,将所获得的所有节点分组,并赋予监督节点;
(2)将所有节点分组以及其赋予的监督节点信息存储到区块链中,基于Raft算法结合节点分组的领导者,记录交易事件并生成新区块;
(3)将所生成的新区块信息广播至区块链的共识节点中,完成新区块生成。
本发明进一步的设置为:在步骤(1)中,所述的节点分组是根据节点所在的地理位置,将所在同一地理位置范围内的节点作为一组,并赋予分组ID。
本发明进一步的设置为:在步骤(1)中,所述的监督节点是在节点分组内至少赋予一个监督节点。
本发明进一步的设置为:在步骤(1)中,所述的节点分组内所包括的节点数至少为4个。
本发明进一步的设置为:在步骤(2)中,所述的领导者是指由分组节点内的所有节点所组成的委员会选举,并经过监督节点验证通过的共识节点。
本发明进一步的设置为:所述的领导者,其选举以及验证过程如下:
节点分组的选举定时器被触发,将节点分组内所以节点作为候选者;候选者向其所在的节点分组内的剩余节点发出比较请求,比较各自的区块高度,确定区块高度大于节点分组平均区块高度的任意候选者作为领导者;由监督节点将该领导者的区块高度与剩余节点区块高度的中间值进行对比,所选举的领导者区块高度大于剩余节点区块高度的中间值,则通过验证,否则,重新进行领导者选举和验证,至领导者选举通过。
本发明进一步的设置为:在步骤(2)中,所述生成新区块是指在领导者的任职周期结束时,所有节点所组成的委员会对剩余节点进行选举并验证通过新的领导者。
本发明进一步的设置为:在步骤(3)中,所述的新区块信息包括领导者的ID、端口以及节点名称。
有益效果
采用本发明提供的技术方案,与已知的公有技术相比,具有如下有益效果:
本发明基于Raft算法,将所获得的所有节点分组,选举产生领导者,并在节点分组内选择至少一个监督节点,监督节点负责监督组内的领导者,可以避免领导者进行欺诈,保证安全,领导者的共识节点任期结束是由新区块生成完成而结束,实现轮流生成区块的共识机制,所生成的领导者进行选举和验证过程,以保障完成能够所需的交易事件,提高共识效率以及共识安全性。
附图说明
图1为本发明一种基于Raft算法的区块链共识机制方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述;显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所用到的术语定义:
区块链是一个又一个区块组成的链条,每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条,链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的,服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持,如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。
区块高度是区块链接在主链的个数,即连接在区块链上的块数,是指该区块在区块链中的位置。
共识机制是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。
Raft算法是一种共识算法,其提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。
实施例:
如图1所示,本发明提供了一种基于Raft算法的区块链共识机制方法,包括以下步骤:
(1)获取区块链的所有节点,将所获得的所有节点分组,并赋予监督节点。
进一步的,节点分组是根据节点所在的地理位置,将所在同一地理位置范围内的节点作为一组,并赋予分组ID。
进一步的,监督节点是在节点分组内至少赋予一个监督节点。
进一步的,节点分组内所包括的节点数至少为4个。
需要说明的是,本发明所提供的共识机制采用分片的思想将区块链网络节点进行分组,各分组内采用Raft机制共识并选出领导者组建委员会,委员会内部采用PBFT机制进行共识,同时引入监督节点,从而保证共识机制。
(2)将所有节点分组以及其赋予的监督节点信息存储到区块链中,基于Raft算法结合节点分组的领导者,记录交易事件并生成新区块。
进一步的,领导者是指由分组节点内的所有节点所组成的委员会选举,并经过监督节点验证通过的共识节点。
进一步的,领导者,其选举以及验证过程如下:
节点分组的选举定时器被触发,将节点分组内所以节点作为候选者;候选者向其所在的节点分组内的剩余节点发出比较请求,比较各自的区块高度,确定区块高度大于节点分组平均区块高度的任意候选者作为领导者;由监督节点将该领导者的区块高度与剩余节点区块高度的中间值进行对比,所选举的领导者区块高度大于剩余节点区块高度的中间值,则通过验证,否则,重新进行领导者选举和验证,至领导者选举通过。
进一步的,生成新区块是指在领导者的任职周期结束时,所有节点所组成的委员会对剩余节点进行选举并验证通过新的领导者。
需要说明的是,本发明的领导者的共识节点任期结束是由新区块生成完成而结束,实现轮流生成区块的共识机制,领导者的共识节点广播的新区块高度后保存该新区块高度,并广播至区块链的共识节点中。
此外,在Raft共识机制中,如果领导者作恶,向组内下发恶意信息,则会破坏共识的一致性,根据分组数不同,每个组内可能有一个或多个监督节点,监督节点负责监督组内的领导者,因此监督节点不参与领导者选举,只作参与组内Raft共识。
(3)将所生成的新区块信息广播至区块链的共识节点中,完成新区块生成。
进一步的,新区块信息包括领导者的ID、端口以及节点名称。
需要说明的是,同样的,更新后的领导者的共识节点负责本次交易事件的记账和产生下一下新区块,并将该新区块广播至区块链的共识节点中。
本发明基于Raft算法,将所获得的所有节点分组,选举产生领导者,并在节点分组内选择至少一个监督节点,监督节点负责监督组内的领导者,可以避免领导者进行欺诈,保证安全,领导者的共识节点任期结束是由新区块生成完成而结束,实现轮流生成区块的共识机制,所生成的领导者进行选举和验证过程,以保障能够完成所需的交易事件,提高共识效率以及共识安全性。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
机译: 基于区块链共识算法的双重交叉共识方法
机译: 基于区块链DPOC共识算法的共识认证方法
机译: 基于区块链DPOC共识算法的共识认证方法