CN109039748A - 一种pbft协议动态增删节点的方法 - Google Patents
一种pbft协议动态增删节点的方法 Download PDFInfo
- Publication number
- CN109039748A CN109039748A CN201810906786.1A CN201810906786A CN109039748A CN 109039748 A CN109039748 A CN 109039748A CN 201810906786 A CN201810906786 A CN 201810906786A CN 109039748 A CN109039748 A CN 109039748A
- Authority
- CN
- China
- Prior art keywords
- node
- configuration
- change
- sequence number
- message
- 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.)
- Granted
Links
Classifications
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开一种PBFT协议动态增删节点的方法,首先,变更前的节点统一确定并执行到一个序列号,并进行一轮检查点验证。如果能够形成稳定检查点,向变更后的节点推送状态信息,使其同步到此状态。变更后的节点再进行检查点验证,如果能形成稳定检查点,确定主节点并发起视图变更,如果一切正常,变更后不再参加共识的节点便可以下线。如果过程中有异常,则放弃变更,仍然采用之前的节点进行共识。本发明解决了传统PBFT协议无法动态增加、删除节点的问题,提升了PBFT协议的可扩展性,增加了实用性。
Description
技术领域
本发明涉及区块链共识技术,尤其涉及一种PBFT(Practical Byzantine FaultTolerance实用拜占庭容错)协议动态增删节点的方法。
背景技术
拜占庭问题又称为拜占庭将军(Byzantine Generals Problem)问题,是LeslieLamport于1982年提出用来解释一致性问题的一个虚构模型。拜占庭是古代东罗马帝国的首都,由于地域宽广,守卫边境的多个将军(系统中的多个节点)需要通过信使来传递消息,达成某些一致的决定。但由于将军中可能存在叛徒(系统中节点出错),这些叛徒将努力向不同的将军发送不同的消息,试图会干扰一致性的达成。拜占庭问题即为在此情况下,如何让忠诚的将军们能达成行动的一致。
PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro(卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表在1999年的操作系统设计与实现国际会议上(OSDI99)。OSDI99这篇论文描述了一种副本复制(replication)算法解决拜占庭容错问题。这篇论文中描述的算法可以工作在异步环境中,并且通过优化在早期算法的基础上把响应性能提升了一个数量级以上。
然而PBFT算法目前只允许固定的成员节点参与共识,不能动态增加、删除节点,这种状况对区块链的发展不利。
发明内容
本发明的目的是针对现有技术的不足,提供一种PBFT协议动态增删节点的方法,能够提升PBFT协议的可扩展性,增加其实用性。具体技术方案如下:
一种PBFT协议动态增删节点的方法,其特征在于,在该方法中,将在某一时刻提供共识服务的节点集定义为一个配置,将配置变更前的节点集定义为配置一,将配置变更后的节点集定义为配置二,该方法具体包括如下步骤:
S1:当需要进行配置变更时,配置一中的节点互相发送消息确定配置变更序列号;
S2:当配置一中的节点执行到确定的配置变更序列号的前一位时,配置一中的非拜占庭节点向配置二成员发送消息;
S3:配置二的节点收到来自配置一的节点的消息后,进行一轮视图变更,之后在配置一中不在配置二中的节点下线,配置二所有节点继续进行共识;如果视图变更失败,直接放弃此次配置变更。
进一步地,进行配置变更之前,配置一的节点将预先选择一个足够高的序列号,此序列号应该高到能够保证,当处理此消息的时候,共识还没有执行到此序列号,且此序列号是所有节点都将执行到的序列号。
进一步地,配置一的节点在执行到预先选择的配置变更序列号时,会进行一轮所有节点当前状态的比对,即检查点确认,如果不能形成稳定检查点,放弃此次配置变更。
进一步地,配置二的节点收到来自配置一中节点的消息,如果收齐了足够的一致消息,便将自身状态同步到配置一中非拜占庭节点的状态,保证了配置变更之后新配置中所有节点的起始状态一致。
进一步地,配置二的节点在收到配置一的消息之后,需要进行配置二节点状态的比对,检查是否能形成稳定检查点,如果不能形成稳定检查点,放弃此次配置变更。
本发明的有益效果是:本发明的PBFT协议动态增删节点的方法允许区块链系统在正常执行过程中,不需要下线节点便可进行节点的增加或者删除操作,提升了PBFT协议的可扩展性,增加了其实用性。
附图说明
图1为本发明的PBFT协议动态增删节点的方法的详细流程图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一种PBFT协议动态增删节点的方法,在该方法中,将在某一时刻提供共识服务的节点集定义为一个配置,将配置变更前的节点集定义为配置一,将配置变更后的节点集定义为配置二,该方法具体包括如下步骤:
S1:当需要进行配置变更时,配置一中的节点互相发送消息确定配置变更序列号;
S2:当配置一中的节点执行到确定的配置变更序列号的前一位时,配置一中的非拜占庭节点向配置二成员发送消息;
S3:配置二的节点收到来自配置一的节点的消息后,进行一轮视图变更,之后在配置一中不在配置二中的节点下线,配置二所有节点继续进行共识;如果视图变更失败,直接放弃此次配置变更。
作为其中一种实施方式,进行配置变更之前,配置一的节点将预先选择一个足够高的序列号,此序列号应该高到能够保证,当处理此消息的时候,共识还没有执行到此序列号,且此序列号是所有节点都将执行到的序列号,具体如图1所示,从而保证了所有的配置一的节点都将同时进行配置变更。
作为其中一种实施方式,配置一的节点在执行到预先选择的配置变更序列号时,会进行一轮所有节点当前状态的比对,即检查点确认,如果不能形成稳定检查点,放弃此次配置变更,具体如图1所示,该轮确认能够避免拜占庭行为的出现。
作为其中一种实施方式,配置二的节点收到来自配置一中节点的消息,如果收齐了足够的一致消息,便将自身状态同步到配置一中非拜占庭节点的状态,具体如图1所示,保证了配置变更之后新配置中所有节点的起始状态一致。
作为其中一种实施方式,配置二的节点在收到配置一的消息之后,需要进行配置二节点状态的比对,检查是否能形成稳定检查点,如果不能形成稳定检查点,放弃此次配置变更,具体如图1所示,保证了配置变更后所有节点能够正常进行系统的共识工作。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (5)
1.一种PBFT协议动态增删节点的方法,其特征在于,在该方法中,将在某一时刻提供共识服务的节点集定义为一个配置,将配置变更前的节点集定义为配置一,将配置变更后的节点集定义为配置二,该方法具体包括如下步骤:
S1:当需要进行配置变更时,配置一中的节点互相发送消息确定配置变更序列号;
S2:当配置一中的节点执行到确定的配置变更序列号的前一位时,配置一中的非拜占庭节点向配置二成员发送消息。
S3:配置二的节点收到来自配置一的节点的消息后,进行一轮视图变更,之后在配置一中不在配置二中的节点下线,配置二所有节点继续进行共识;如果视图变更失败,直接放弃此次配置变更。
2.根据权利要求1所述的一种PBFT协议动态增删节点的方法,其特征在于,进行配置变更之前,配置一的节点将预先选择一个足够高的序列号,此序列号应该高到能够保证,当处理此消息的时候,共识还没有执行到此序列号,且此序列号是所有节点都将执行到的序列号。
3.根据权利要求1所述的一种PBFT协议动态增删节点的方法,其特征在于,配置一的节点在执行到预先选择的配置变更序列号时,会进行一轮所有节点当前状态的比对,即检查点确认,如果不能形成稳定检查点,放弃此次配置变更。
4.根据权利要求1所述的一种PBFT协议动态增删节点的方法,其特征在于,配置二的节点收到来自配置一中节点的消息,如果收齐了足够的一致消息,便将自身状态同步到配置一中非拜占庭节点的状态,保证了配置变更之后新配置中所有节点的起始状态一致。
5.根据权利要求1所述的一种PBFT协议动态增删节点的方法,其特征在于,配置二的节点在收到配置一的消息之后,需要进行配置二节点状态的比对,检查是否能形成稳定检查点,如果不能形成稳定检查点,放弃此次配置变更。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810906786.1A CN109039748B (zh) | 2018-08-10 | 2018-08-10 | 一种pbft协议动态增删节点的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810906786.1A CN109039748B (zh) | 2018-08-10 | 2018-08-10 | 一种pbft协议动态增删节点的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039748A true CN109039748A (zh) | 2018-12-18 |
CN109039748B CN109039748B (zh) | 2021-09-03 |
Family
ID=64633429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810906786.1A Active CN109039748B (zh) | 2018-08-10 | 2018-08-10 | 一种pbft协议动态增删节点的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039748B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460484A (zh) * | 2019-10-10 | 2019-11-15 | 杭州趣链科技有限公司 | 一种基于pbft算法改进的单节点异常主动恢复方法 |
WO2019101242A3 (en) * | 2019-03-18 | 2019-12-26 | Alibaba Group Holding Limited | System and method for ending view change protocol |
WO2019101241A3 (en) * | 2019-03-18 | 2020-01-16 | Alibaba Group Holding Limited | System and method for ending view change protocol |
US11411721B2 (en) | 2019-09-27 | 2022-08-09 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
-
2018
- 2018-08-10 CN CN201810906786.1A patent/CN109039748B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102170347B1 (ko) | 2019-03-18 | 2020-10-28 | 알리바바 그룹 홀딩 리미티드 | 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법 |
CN110800258A (zh) * | 2019-03-18 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 用于结束视图更改协议的系统和方法 |
CN110800258B (zh) * | 2019-03-18 | 2022-04-22 | 创新先进技术有限公司 | 用于结束视图更改协议的系统和方法 |
TWI709063B (zh) * | 2019-03-18 | 2020-11-01 | 開曼群島商創新先進技術有限公司 | 用於結束視域變換協定的系統和方法 |
KR102170345B1 (ko) | 2019-03-18 | 2020-10-28 | 알리바바 그룹 홀딩 리미티드 | 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법 |
US10666778B1 (en) | 2019-03-18 | 2020-05-26 | Alibaba Group Holding Limited | System and method for ending view change protocol |
US10701192B1 (en) | 2019-03-18 | 2020-06-30 | Alibaba Group Holding Limited | System and method for ending view change protocol |
US10725843B2 (en) | 2019-03-18 | 2020-07-28 | Alibaba Group Holding Limited | System and method for ending view change protocol |
KR20200112635A (ko) * | 2019-03-18 | 2020-10-05 | 알리바바 그룹 홀딩 리미티드 | 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법 |
KR20200112636A (ko) * | 2019-03-18 | 2020-10-05 | 알리바바 그룹 홀딩 리미티드 | 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법 |
WO2019101241A3 (en) * | 2019-03-18 | 2020-01-16 | Alibaba Group Holding Limited | System and method for ending view change protocol |
WO2019101242A3 (en) * | 2019-03-18 | 2019-12-26 | Alibaba Group Holding Limited | System and method for ending view change protocol |
CN110785966A (zh) * | 2019-03-18 | 2020-02-11 | 阿里巴巴集团控股有限公司 | 用于结束视图更改协议的系统和方法 |
US10877829B2 (en) | 2019-03-18 | 2020-12-29 | Advanced New Technologies Co., Ltd. | System and method for ending view change protocol |
US11057504B2 (en) | 2019-03-18 | 2021-07-06 | Advanced New Technologies Co., Ltd. | System and method for ending view change protocol |
US11263067B2 (en) | 2019-03-18 | 2022-03-01 | Advanced New Technologies Co., Ltd. | System and method for ending view change protocol |
US11411721B2 (en) | 2019-09-27 | 2022-08-09 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
US11516006B2 (en) | 2019-09-27 | 2022-11-29 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
US11907174B2 (en) | 2019-09-27 | 2024-02-20 | Cypherium Blockchain Inc. | Systems and methods for managing data generation, storage, and verification in a distributed system having a committee of validator nodes |
CN110460484A (zh) * | 2019-10-10 | 2019-11-15 | 杭州趣链科技有限公司 | 一种基于pbft算法改进的单节点异常主动恢复方法 |
US11841778B2 (en) | 2019-10-10 | 2023-12-12 | Hangzhou Qulian Technology Co., Ltd. | Method and system for active failure recovery of single node improved based on PBFT algorithm, computer device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN109039748B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039748A (zh) | 一种pbft协议动态增删节点的方法 | |
CN103716182B (zh) | 一种面向实时云平台的故障检测与容错方法及系统 | |
CN107430603B (zh) | 大规模并行处理数据库的系统和方法 | |
WO2014101424A1 (zh) | 分布式数据库同步方法和系统 | |
CN100426751C (zh) | 保证集群系统中配置信息一致的方法 | |
CN102938705B (zh) | 一种高可用多机备份路由表管理与切换方法 | |
Kumar et al. | Fault tolerance in real time distributed system | |
JP2008210412A (ja) | マルチノード分散データ処理システムにおいてリモート・アクセス可能なリソースを管理する方法 | |
CN106844083B (zh) | 一种面向流计算系统异常感知的容错方法及系统 | |
Lavinia et al. | A failure detection system for large scale distributed systems | |
CN110955725A (zh) | 一种工业互联网标识解析根节点数据同步方法 | |
CN103188110A (zh) | 基于zookeeper的云平台上服务的热备份方法 | |
CN110460484B (zh) | 一种基于pbft算法改进的单节点异常主动恢复方法 | |
WO2020024615A1 (zh) | 一种共识流程恢复方法及相关节点 | |
López et al. | Choreographing cyber-physical distributed control systems for the energy sector | |
CN103916397A (zh) | 一种分布式网络环境下安全监控方法 | |
CN111800484B (zh) | 机动边缘信息服务系统的服务抗毁接替方法 | |
CN109165122B (zh) | 一种提升基于区块链技术实现的应用系统同城多园区部署灾备能力的方法 | |
CN109347655B (zh) | 基于网络数据的故障恢复系统和方法及存储介质 | |
WO2016101409A1 (zh) | 数据倒换的方法、设备及系统 | |
CN109858822B (zh) | 一种基于流关联分析的信息电力融合系统可靠性评估方法 | |
TW202001556A (zh) | 虛擬機器群組的容錯方法及其容錯系統 | |
CN112202601B (zh) | 副本集模式运行的两物理节点mongo集群的应用方法 | |
Wang et al. | Reaching agreement among virtual subnets in hybrid failure mode | |
CN114039978A (zh) | 一种去中心化的PoW算力集群部署方法 |
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 |