CN109039748B - 一种pbft协议动态增删节点的方法 - Google Patents

一种pbft协议动态增删节点的方法 Download PDF

Info

Publication number
CN109039748B
CN109039748B CN201810906786.1A CN201810906786A CN109039748B CN 109039748 B CN109039748 B CN 109039748B CN 201810906786 A CN201810906786 A CN 201810906786A CN 109039748 B CN109039748 B CN 109039748B
Authority
CN
China
Prior art keywords
configuration
node
nodes
change
sequence number
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
Application number
CN201810906786.1A
Other languages
English (en)
Other versions
CN109039748A (zh
Inventor
朱立
王泊
李启雷
李伟
梁秀波
邱炜伟
尹可挺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Stock Exchange Technology Co ltd
Hangzhou Qulian Technology Co Ltd
Original Assignee
Shanghai Stock Exchange Technology Co ltd
Hangzhou Qulian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Stock Exchange Technology Co ltd, Hangzhou Qulian Technology Co Ltd filed Critical Shanghai Stock Exchange Technology Co ltd
Priority to CN201810906786.1A priority Critical patent/CN109039748B/zh
Publication of CN109039748A publication Critical patent/CN109039748A/zh
Application granted granted Critical
Publication of CN109039748B publication Critical patent/CN109039748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration 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协议动态增删节点的方法
技术领域
本发明涉及区块链共识技术,尤其涉及一种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协议动态增删节点的方法,其特征在于,配置二的节点在收到配置一的消息之后,需要进行配置二节点状态的比对,检查是否能形成稳定检查点,如果不能形成稳定检查点,放弃此次配置变更。
CN201810906786.1A 2018-08-10 2018-08-10 一种pbft协议动态增删节点的方法 Active CN109039748B (zh)

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 CN109039748A (zh) 2018-12-18
CN109039748B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102170345B1 (ko) 2019-03-18 2020-10-28 알리바바 그룹 홀딩 리미티드 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법
CA3057395A1 (en) * 2019-03-18 2019-05-31 Alibaba Group Holding Limited System and method for ending view change protocol
US20210099312A1 (en) 2019-09-27 2021-04-01 Cypherium Blockchain Inc. Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
CN110460484B (zh) * 2019-10-10 2020-02-18 杭州趣链科技有限公司 一种基于pbft算法改进的单节点异常主动恢复方法

Citations (5)

* Cited by examiner, † Cited by third party
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 深圳前海微众银行股份有限公司 区块链节点动态变更方法、系统和计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 深圳前海微众银行股份有限公司 区块链节点动态变更方法、系统和计算机可读存储介质

Also Published As

Publication number Publication date
CN109039748A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109039748B (zh) 一种pbft协议动态增删节点的方法
JP6382454B2 (ja) 分散ストレージ及びレプリケーションシステム、並びに方法
US20080052327A1 (en) Secondary Backup Replication Technique for Clusters
US10764119B2 (en) Link handover method for service in storage system, and storage device
CN111427728B (zh) 状态管理方法、主备切换方法及电子设备
CN103763155A (zh) 分布式云存储系统多服务心跳监测方法
Kumar et al. Fault tolerance in real time distributed system
CN104935481A (zh) 一种分布式存储下基于冗余机制的数据恢复方法
JP3887130B2 (ja) 高可用性計算機システム及び同システムにおけるデータバックアップ方法
CN106844083B (zh) 一种面向流计算系统异常感知的容错方法及系统
CN108572976A (zh) 一种分布式数据库中数据恢复方法、相关设备和系统
CN111460039A (zh) 关系型数据库处理系统、客户端、服务器及方法
WO2015154620A1 (zh) OpenFlow多控制器系统及其管理方法
CN112527567A (zh) 系统容灾方法、装置、设备以及存储介质
CN111209084B (zh) 一种faas分布式计算方法和装置
CN114138732A (zh) 一种数据处理方法及装置
WO2014060465A1 (en) Control system and method for supervisory control and data acquisition
CN110888761A (zh) 一种基于关键任务部分主动备份的容错方法和流处理平台
CN114554593A (zh) 数据处理方法及装置
WO2015196692A1 (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN113055203B (zh) Sdn控制平面的异常恢复方法及装置
CN103414591A (zh) 一种端口故障恢复时的快速收敛方法和系统
US20030167322A1 (en) System and method for determining weak membership in set of computer nodes
JP5812512B2 (ja) データベースシステム、マスタースレーブ管理方法およびマスタースレーブ管理プログラム
CN114385761B (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