CN111818152B - 一种基于分布式网络的领导者选举的共识方法 - Google Patents
一种基于分布式网络的领导者选举的共识方法 Download PDFInfo
- Publication number
- CN111818152B CN111818152B CN202010632851.3A CN202010632851A CN111818152B CN 111818152 B CN111818152 B CN 111818152B CN 202010632851 A CN202010632851 A CN 202010632851A CN 111818152 B CN111818152 B CN 111818152B
- Authority
- CN
- China
- Prior art keywords
- node
- network
- message
- leader
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于分布式网络的领导者选举的共识方法,包括步骤:1)初始化:设置网络中节点种类包括领导者节点、接受者节点、追随者节点;2)领导者选举步骤:通过向网络节点广播一个数学问题,网络中每个节点对于该数学问题求解,根据求解的算力来选择分布式网络中的领导者;3)共识步骤。本发明先选择所有节点中算力最强的作为领导者节点,再进行整个网络的共识过程,以解决故障节点对分布式网络的影响,保证系统在拥有部分故障节点的情况下,仍然具有安全性。
Description
技术领域
本发明涉及分布式网络中的选举技术。
背景技术
信息时代的蓬勃发展为人们的生活带来了无数便利。同时也使得数据体量急剧增加,呈现爆炸式增长,这导致大型企业和和组织往往依赖数据聚合来提高生产力。因此使得软件开发过程更加复杂,软件发生错误的可能性也随之增加,使得网络攻击行为愈演愈烈。然而,复杂性是无法避免的,因为聚合数据进行各种复杂的计算,服务于其各种需求。相对于集中式系统,这种问题在分布式系统中更加难于防范和控制,因为节点故障会破坏整个分布式网络结构,从而引发严重的后果。
在分布式系统中,共识算法更多用于提高系统的容错性。所谓共识,就是多个节点对某个事情达成一致的看法,即使是在部分节点故障、网络延时、网络分割的情况下。基于领导节点leader-based的共识算法中,网络中的节点呈3种状态:领导者leader、追随者follower、候选者candidate;网络中最多只有一个leader,如果在一段时间里发现没有leader,则大家通过选举-投票选出leader。leader会不停的给follower发心跳消息,表明自己的存活状态。如果leader故障,那么follower会转换成candidate,重新选出leader。leader负责处理所有与客户端交互,是数据唯一入口,负责创建块,协调指挥follower。
在分布式网络拓扑中,除了节点验证外,节点可以在任务完成之后,自由选择离开或加入网络。由于这些特征在动态网络中始终存在,所以领导者选举成为了解决分布式网络中拜占庭问题的重要方法。
因此,在一个分布式系统中选出一个独特的领导者是非常重要的。然而现有的领导者选举算法往往忽视分布式网络中频繁的拓扑变化带来的影响。
发明内容
本发明所要解决的技术问题是,提供一种分布式网络中拥有高可用性和高效性的领导者选举的共识方法。
本发明为解决上述技术问题所采用的技术方案是,一种基于分布式网络的领导者选举的共识方法,包括以下步骤:
1)初始化:设置网络中节点种类包括领导者节点、接受者节点、追随者节点;网络中节点数为3f+1;
领导者节点在网络中通过领导者选举产生,用于将事务处理为块,负责监督网络中各节点达成共识以及交易;
接受者节点为指定节点,用于接收事务的状态,不参与领导者选举;
追随者节点用于接收客户端请求;
2)领导者选举步骤:
2-1)当网络中的追随者节点发现领导者离职时,该追随者节点作为触发领导者选举的源节点在网络中广播初始化消息;初始化消息中包含有一个待求解的数学问题;网络中除接受者节点和触发领导者选举的源节点外的每一个节点收到初始化消息Initiate后,将上一跳节点设置为父节点;
2-2)除接受者节点外的每一个节点对数学问题进行求解,并将表征本地运算能力的算力值附在响应消息Receive中发送给父节点,源节点求解数学问题后直接保存本地;每一个父节点在收到了其所有子节点的响应消息Receive后,根据算力值在本地与其所有子节点中选择一个算力最高的节点作为并向上传递,直至触发领导者选举的源节点选择出整个网络中算力最高的节点作为领导者节点;
2-3)发起领导者选举的源节点将包含了领导者节点标识符的选择消息Select向网络中所有节点进行广播;
3)共识步骤:
3-1)接收到客户端请求的追随者节点作为发起者节点向网络中所有节点广播预准备消息Pre-prepare;
3-2)领导者节点在接收到预准备消息Pre-prepare后,生成Prepare消息向网络中所有节点广播;各节点验证收到Prepare消息与预准备消息Pre-prepare中的摘要是否相同,如是,则验证通过,再次向网络中所有节点广播Prepare消息,否则,丢弃Prepare消息;
3-3)接受者节点判断是否收到2f+1个验证通过的Prepare消息,如是,则通知网络中所有节点,网络中收到2f+1个Prepare消息的节点收到通知后向网络中所有节点广播Commit消息;
3-4)发起者节点判断是否收到2f+1个验证通过的Commit消息,如是,表明全网对客户端请求达成共识,向客户端发送共识回复,否则表示网络中未达成共识,不能为客户端提供相应服务。
本发明先选择所有节点中算力最强的作为领导者节点,在网络中的完成领导人选举后,再进行整个网络的共识过程,以解决故障节点对分布式网络的影响。
本发明的有益效果是,保证系统在拥有部分故障节点的情况下,仍然具有安全性。
附图说明
图1为实施例中在节点之间执行领导者选举协议,演示发起和接受消息的示意图。
图2为实施例网络中算力最强的节点的选择示意图。
图3为实施例将网络中算力最强的节点作为领导者的广播示意图。
具体实施方式
下面将结合本发明实例图中的附图,对本发明中的技术方案进行描述。
首先,进行分布式网络中共识领导者的选举。
分布式网络的共识领导者选举协议的中节点种类包括:
领导者节点在网络中通过领导者选举产生,用于将事务处理为块,负责监督网络中各节点达成共识以及交易;对块的操作范围包括创建块、将块添加到链。
接受者节点为指定节点,用于接收事务的状态,不参与领导者选举。
追随者节点用于接收客户端请求。
为确保所有非故障节点在存在部分恶意节点的情况下的安全性,分布式系统对于节点的要求:操作状态必须是确定的。在给定状态和给定参数集下的执行必须总是产生相同的结果。节点操作必须以相同的状态启动。
领导者选举过程从启动一个选举算法开始。算法中使用的消息有:
Initiate:当追随者节点发现领导者离开时,该节点触发作为源节点的选举。源节点首先向它的所有邻居发送一个初始化消息Initiate。每个节点(源节点、接受者节点除外)将初始化消息Initiate的上一跳节点设置为其父节点。初始化消息Initiate中包含有一个待求解的数学问题。
Receive:除接受者节点外的每一个节点对数学问题进行求解,并将表征本地运算能力的算力值附在响应消息Receive中发送给父节点,源节点求解数学问题后直接保存本地;每一个父节点在收到了其所有子节点的响应消息Receive后,根据算力值在本地与其所有子节点中选择一个算力最高的节点作为并向上传递,直至触发领导者选举的源节点选择出整个网络中算力最高的节点作为领导者节点。每一个父节点在收到了其所有子节点的响应消息Receive后,才生成包含了领导者选举信息的响应消息Receive到其父节点。这个过程是一个生成树,从源到源的生成和收缩。可以本地求解数学问题的运算时长作为表征本地运算能力的算力值,运算时长越短,算力越强。父节点在所有子节点的响应消息Receive中选择运算时长最小的节点标识符向上传递。
Select:发起领导者选举的源节点将包含了领导者节点标识符的选择消息Select向网络中所有节点进行广播。网络中所有节点确认领导者节点。
图1演示了节点A、B、C、D、E、G之间执行领导者选举的过程。以A10节点举例,其表示一个标识为A,算力值为10的节点,其他节点意义以此类推。其中initiate消息表示该节点发送了一个初始化消息的分布式计算,Ack消息表示该节点收到了initiate消息,将发送initiate消息给自己的节点标识为父节点,向该父节点发送应答。Receive消息表示该节点向目标节点回复自己已经接受过了来自其他节点initiate消息。
图2展示了网络中算力最强的节点的选择。网络节点经过分布式计算与消息发送之后的生成树网络,分布式节点数值从叶子结点依次向上比较传递,将网络中算力最高的节点与其分布式计算的数值传递给源节点。
图3展示了网络中算力最强的节点作为领导者的广播,源节点将领导者节点的信息通过生成树传遍整个分布式网络。
基于本发明设计的分布式网络领导者选举算法,进行分布式网络的共识过程,以解决故障节点对于分布式网络的影响。假设在一个网络或集群中,非故障节点的数量是故障节点数量的三倍。消息在网络节点之间发送,以维护和激活网络上用户(客户端)的服务交付协议。共识算法的具体工作流程如下:
客户端通过向网络发送一个有效负载来发送一个请求服务执行的客户端请求Request,客户端请求Request的消息格式为Req(Payload,t,IDc)sigc,t为客户端时钟的本地时间戳,IDc为客户端标识符,sigc为客户端签名。客户端请求Request可以从客户端发送到指定了配置参数的追随者节点。
接收到客户端请求的追随者节点作为发起者节点向网络中所有节点广播预准备消息Pre-prepare;预准备消息Pre-prepare的消息的格式为Preprepare((np,seqno,d)sigf,m),np为发起者节点的配置参数,seqno为客户端请求的序号,m为客户端请求的内容,d是内容m的摘要,sigf是发起者节点的签名。
领导者节点在接收到预准备消息Pre-prepare后,生成Prepare消息向网络中所有节点广播;各节点验证收到Prepare消息与预准备消息Pre-prepare中的摘要是否相同,如是,则验证通过,再次向网络中所有节点广播Prepare消息,否则,丢弃Prepare消息。Prepare消息的格式为Prepare(np,seqno,d,IDv)sigv,其中,IDv是领导者节点的标识符,sigv是领导者节点的签名;Prepare消息的格式为Prepare(np,seqno,d,IDv)sigv,其中,IDv是领导者节点的标识符,sigv是领导者节点的签名。
接受者节点判断是否收到2f+1个验证通过的Prepare消息,如是,则通知网络中所有节点,网络中各收到2f+1个Prepare消息的节点收到通知后向网络中所有节点广播Commit消息;Commit消息的格式为Commit(np,seqno,m,IDa)siga,其中,IDa是接受者节点的标识符,siga是接受者节点的数字签名。
发起者节点判断是否收到2f+1个验证通过的Commit消息,如是,表明全网对客户端请求达成共识,向客户端发送共识回复Reply,否则,丢弃Commit消息。共识回复Reply的消息格式为Rep(np,t,IDc,IDf,Sr)sigf,IDf为发起者节点标识符,Sr为请求的服务执行结果。
Claims (5)
1.一种基于分布式网络的领导者选举的共识方法,其特征在于,包括以下步骤:
1)初始化:设置网络中节点种类包括领导者节点、接受者节点、追随者节点;网络中节点数为3f+1;
领导者节点在网络中通过领导者选举产生,用于将事务处理为块,负责监督网络中各节点达成共识以及交易;
接受者节点为指定节点,用于接收事务的状态,不参与领导者选举;
追随者节点用于接收客户端请求;
2)领导者选举步骤:
2-1)当网络中的追随者节点发现领导者离职时,该追随者节点作为触发领导者选举的源节点在网络中广播初始化消息;初始化消息中包含有一个待求解的数学问题;网络中除接受者节点和触发领导者选举的源节点外的每一个节点收到初始化消息Initiate后,将上一跳节点设置为父节点;
2-2)除接受者节点外的每一个节点对数学问题进行求解,并将表征本地运算能力的算力值附在响应消息Receive中发送给父节点,源节点求解数学问题后直接保存本地的;每一个父节点在收到了其所有子节点的响应消息Receive后,根据算力值在本地与其所有子节点中选择一个算力最高的节点作为并向上传递,直至触发领导者选举的源节点选择出整个网络中算力最高的节点作为领导者节点;
2-3)发领导者选举的源节点将包含了领导者节点标识符的选择消息Select向网络中所有节点进行广播;
3)共识步骤:
3-1)接收到客户端请求的追随者节点作为发起者节点向网络中所有节点广播预准备消息Pre-prepare;
3-2)领导者节点在接收到预准备消息Pre-prepare后,生成Prepare消息向网络中所有节点广播;各节点验证收到Prepare消息与预准备消息Pre-prepare中的摘要是否相同,如是,则验证通过,再次向网络中所有节点广播Prepare消息,否则,丢弃Prepare消息;
3-3)接受者节点判断是否收到2f+1个验证通过的Prepare消息,如是,则通知网络中所有节点,网络中收到2f+1个Prepare消息的节点收到通知后向网络中所有节点广播Commit消息;
3-4)发起者节点判断是否收到2f+1个验证通过的Commit消息,如是,表明全网对客户端请求达成共识,向客户端发送共识回复,否则,表示网络中未达成共识,不能为客户端提供相应服务。
2.如权利要求1所述方法,其特征在于,步骤2-2)中表征本地运算能力的算力值为本地求解数学问题的运算时长,运算时长越短,算力越强。
3.如权利要求1所述方法,其特征在于,预准备消息Pre-prepare的消息的格式为Preprepare((np,seqno,d)sigf,m),np为发起者节点的配置参数,seqno为客户端请求的序号,m为客户端请求的内容,d是内容m的摘要,sigf是发起者节点的签名;
Prepare消息的格式为Prepare(np,seqno,d,IDv)sigv,其中,IDv是领导者节点的标识符,sigv是领导者节点的签名;
Commit消息的格式为Commit(np,seqno,m,IDa)siga,其中,IDa是接受者节点的标识符,siga是接受者节点的数字签名。
4.如权利要求3所述方法,其特征在于,验证收到Prepare消息与预准备消息Pre-prepare中的摘要是否相同的具体方式为:检查Prepare消息与预准备消息Pre-prepare中seqno和d是否相同。
5.如权利要求3所述方法,其特征在于,判断验证通过的Commit消息的具体方式为:当Commit消息中的配置参数np与发起者节点的配置参数相同则验证通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010632851.3A CN111818152B (zh) | 2020-07-02 | 2020-07-02 | 一种基于分布式网络的领导者选举的共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010632851.3A CN111818152B (zh) | 2020-07-02 | 2020-07-02 | 一种基于分布式网络的领导者选举的共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111818152A CN111818152A (zh) | 2020-10-23 |
CN111818152B true CN111818152B (zh) | 2021-04-30 |
Family
ID=72855937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010632851.3A Active CN111818152B (zh) | 2020-07-02 | 2020-07-02 | 一种基于分布式网络的领导者选举的共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111818152B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114375022B (zh) * | 2022-01-08 | 2024-03-12 | 山东大学 | 一种无线网络中基于多智能体强化学习的信道抢占方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559263A (zh) * | 2016-11-17 | 2017-04-05 | 杭州沃趣科技股份有限公司 | 一种改进的分布式一致性算法 |
CN106875165A (zh) * | 2017-02-22 | 2017-06-20 | 中山大学 | 一种利用软件定义网络优化的共识算法 |
CN109347877A (zh) * | 2018-11-30 | 2019-02-15 | 广州知弘科技有限公司 | 区块链结构化存储控制方法 |
CN109559120A (zh) * | 2018-12-03 | 2019-04-02 | 国网电子商务有限公司 | 基于权重的区块链共识方法、系统、存储介质及电子设备 |
CN110661867A (zh) * | 2019-09-25 | 2020-01-07 | 东北大学 | 一种基于改进工作量证明与权益证明的区块链共识方法 |
CN110913501A (zh) * | 2019-11-08 | 2020-03-24 | 山东大学 | 一种适用于无线区块链网络中的共识方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7978717B2 (en) * | 2008-10-16 | 2011-07-12 | Synapse Wireless, Inc. | Systems and methods for reducing power consumption in communication networks |
US10642507B2 (en) * | 2015-01-30 | 2020-05-05 | Nutanix, Inc. | Pulsed leader consensus management |
-
2020
- 2020-07-02 CN CN202010632851.3A patent/CN111818152B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559263A (zh) * | 2016-11-17 | 2017-04-05 | 杭州沃趣科技股份有限公司 | 一种改进的分布式一致性算法 |
CN106875165A (zh) * | 2017-02-22 | 2017-06-20 | 中山大学 | 一种利用软件定义网络优化的共识算法 |
CN109347877A (zh) * | 2018-11-30 | 2019-02-15 | 广州知弘科技有限公司 | 区块链结构化存储控制方法 |
CN109559120A (zh) * | 2018-12-03 | 2019-04-02 | 国网电子商务有限公司 | 基于权重的区块链共识方法、系统、存储介质及电子设备 |
CN110661867A (zh) * | 2019-09-25 | 2020-01-07 | 东北大学 | 一种基于改进工作量证明与权益证明的区块链共识方法 |
CN110913501A (zh) * | 2019-11-08 | 2020-03-24 | 山东大学 | 一种适用于无线区块链网络中的共识方法 |
Non-Patent Citations (1)
Title |
---|
A Consensus-Based Leader Election Algorithm for Wireless Ad Hoc Networks;Hsu-Chia Cahng;《2012 International Symposium on Computer, Consumer and Control》;20121231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111818152A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907174B2 (en) | Systems and methods for managing data generation, storage, and verification in a distributed system having a committee of validator nodes | |
US11294888B2 (en) | Blockchain system and blockchain transaction data processing method based on ethereum | |
CN106789095B (zh) | 分布式系统及消息处理方法 | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
US8549142B2 (en) | Replicated state machine utilizing view change protocol resilient to performance attacks | |
CN103780615B (zh) | 一种在多个服务器间客户端会话数据共享方法 | |
WO2020173501A1 (zh) | 一种基于区块链的交易系统 | |
CN114048517A (zh) | 区块链的双通道共识系统和方法、计算机可读存储介质 | |
CN111586102B (zh) | 一种基于bft共识的联盟链组网方法 | |
CN111818152B (zh) | 一种基于分布式网络的领导者选举的共识方法 | |
CN116633942A (zh) | 一种高速响应客户端的拜占庭容错共识方法 | |
CN115348278A (zh) | 区块链的分布式存储方法 | |
CN114090342A (zh) | 存储容灾的链路管理方法及消息执行节点、存储控制集群 | |
CN111107103B (zh) | 一种联盟链的性能维持方法、系统及存储介质 | |
CN115052006B (zh) | 一种基于领导节点的数据同步方法及系统 | |
CN116170155A (zh) | 基于pbft改进的联盟区块链共识方法 | |
CN113630445B (zh) | 一种基于区块链网络的数据存储方法及装置 | |
CN114500237B (zh) | 一种通信方法和系统 | |
CN115292340A (zh) | 基于分布式网络编码的区块链存储优化方法及装置 | |
CN116846888A (zh) | 区块链网络的共识处理方法、装置、设备及存储介质 | |
CN116192868B (zh) | 一种应用于联盟链的并行拜占庭容错共识方法及终端 | |
CN116633699B (zh) | 基于区块链的产品防伪溯源信息可信处理方法及系统 | |
Varshney | Performance evaluation of protocols for group-oriented mobile services | |
CN111682961B (zh) | 剔除i2p网络中低带宽节点的方法、计算机可读存储介质和i2p网络 | |
CN117294720B (zh) | 区块链的共识方法、装置、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |