CN107423152B - 一种区块链共识节点自动恢复方法 - Google Patents

一种区块链共识节点自动恢复方法 Download PDF

Info

Publication number
CN107423152B
CN107423152B CN201710271751.0A CN201710271751A CN107423152B CN 107423152 B CN107423152 B CN 107423152B CN 201710271751 A CN201710271751 A CN 201710271751A CN 107423152 B CN107423152 B CN 107423152B
Authority
CN
China
Prior art keywords
node
information
reconnection
checkpoint
block
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
CN201710271751.0A
Other languages
English (en)
Other versions
CN107423152A (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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN201710271751.0A priority Critical patent/CN107423152B/zh
Publication of CN107423152A publication Critical patent/CN107423152A/zh
Application granted granted Critical
Publication of CN107423152B publication Critical patent/CN107423152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种区块链共识节点自动恢复方法,包括如下步骤:1)宕机后重连节点广播初始恢复消息,获取其他节点检查点信息和区块高度;2)重连节点收到其他节点回复信息,并对发送方的检查点和区块高度信息进行计数;3)找到目标节点并获取其检查点信息、区块高度和区块哈希;4)重连节点进行状态转移,恢复至目标节点的检查点高度;5)重连节点向目标节点索取PQC的消息;6)重连节点收到目标节点返回的PQC信息,进行正常的共识处理,重复执行步骤5)到步骤6),直至重连节点区块高度恢复至正常节点高度。本发明解决了传统PDFT共识过程中宕机节点重连缓慢的问题,提出了一种使区块链上宕机重连节点快速重连的方法。

Description

一种区块链共识节点自动恢复方法
技术领域
本发明涉及区块链技术、PBFT共识算法,尤其涉及一种区块链共识节点自动恢复方法。
背景技术
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,节点间的信息同步又共识算法完成,共识算法保证其一致性,常见的共识算法有POW、POS和PBFT等。所有经区块链确认的交易都会写入区块上,区块链上每个节点不断参与共识,从而保证区块内容不可伪造和篡改。
PBFT算法,PBFT是Practical Byzantine Fault Tolerance的缩写,意为拜占庭容错算法,是一种高效的拜占庭问题解决办法,同时也是一种广泛使用的区块链节点共识算法。这个算法允许系统有不超过f=(n-1)/3的恶意节点,即在恶意节点数量不超过f时,仍能保证共识系统的安全性和有效性。鉴于该算法的安全高效的特点,PBFT算法主要用于区块链平台上的核心算发。
在PBFT共识过程中,如果一个节点宕机重连,那么其共识模块的内部变量与系统当前值不一致,导致当前节点无法参与共识。传统的PBFT共识算法的解决方案是采用checkpoint机制和ViewChange机制,然而这些方案都需要有一段时间的延迟,并且,在这段等待的时间内,系统的健壮性降低,不稳定的可能性增大。
发明内容
本发明的目的是针对现有技术的不足,提供一种区块链共识节点自动恢复方法。本发明是通过“两步走”的技术方案来实现的:第一步,比较当前节点和目标节点的检查点高度,使当前节点恢复至目标检查点高度;第二步,向目标节点索取PQC信息,重新做重检查点到目标节点区块高度的区块。
为了达到上述目的,本发明所采用的技术方案如下:一种区块链共识节点自动恢复方法包括如下步骤:
1)发送初始恢复信息:宕机后重连节点广播初始恢复消息,获取其他节点检查点信息和区块高度信息;
2)对反馈信息计数:重连节点收到其他节点回复的检查点、当前区块高度和最高区块哈希,并对发送方的检查点和区块高度信息计数;
3)获取目标节点信息:当重连节点收到2f+1个其他节点的回复信息,每个回复信息包括发送节点的不同阶段检查点的信息,尝试找出所有符合条件的检查点信息中找出检查点高度最高的一组,并获取其发送节点的区块高度和区块哈希,将这组检查点消息的发送节点作为目标节点;若找出目标节点,重连节点根据目标节点的检查点信息使重连节点当前高度恢复至目标节点的检查点高度;若无法找出目标节点,则继续等待其他节点发来的信息;
4)进行状态转移:重连节点不断向其他节点索取直至得到目标节点的检查点高度的区块,进行状态转移操作,使重连节点当前高度恢复至目标节点的检查点高度;
5)向目标节点索取PQC信息:重连节点向目标节点发送索取PQC信息的消息,消息包括当前节点的低水位,即当前最近一次检查点的编号;
6)获取PQC信息:目标节点返回符合条件的PQC信息,重连节点收到这些信息并利用这些消息进行正常的共识处理;重复执行步骤5)到步骤6),直至重连节点区块高度恢复至正常节点高度,此后重连节点将进行正常的共识过程。
进一步地,所述的步骤1)中重连节点向正在运行中的其它节点广播初始恢复信息,用于获取其它节点的检查点信息和区块高度;初始恢复信息有且仅有待恢复节点能够发送,正在运行中的正常节点收到初始恢复信息必须回复。
进一步地,所述的步骤3)中当重连节点接收到2f+1条回复信息后,会尝试从尝试找出所有符合条件的检查点信息中找出检查点高度最高的一组,其中符合条件是指至少有f+1条回复消息包含了这条检查点消息;重连节点从一组目标节点的回复信息中提取其检查点高度最高的一个值。
本发明的有益效果是:本发明在基于PBFT的共识机制上增加了能够使重连节点快速参与共识过程的恢复方法。传统的PBFT共识方法中宕机重连节点会需要较大一段延迟时间才能重新参与节点共识,在这个过程中系统的健壮性降低,不稳定可能性增大。本发明提出的恢复机制极大地增强了共识模块的可用性,加快宕机重连节点或新节点参与共识的速度,并且恢复机制还能自动检测节点并自主更新。
附图说明
图1是重连节点的恢复流程图;
图2是节点恢复的详细流程图。
具体实施方式
下面根据附图和具体实施例详细描述本发明,本发明的目的和效果将变得更加明显。
如图1所示,本发明区块链共识节点自动恢复方法,包括如下步骤:
1)发送初始恢复信息:宕机后重连节点广播初始恢复消息,获取其他节点检查点信息和区块高度信息;
2)对反馈信息计数:重连节点收到其他节点回复的检查点、当前区块高度和最高区块哈希,并对发送方的检查点和区块高度信息计数;
3)获取目标节点信息:当重连节点收到2f+1个其他节点的回复信息,每个回复信息包括发送节点的不同阶段检查点的信息,尝试找出所有符合条件的检查点信息中找出检查点高度最高的一组,并获取其发送节点的区块高度和区块哈希,将这组检查点消息的发送节点作为目标节点;若找出目标节点,重连节点根据目标节点的检查点信息使重连节点当前高度恢复至目标节点的检查点高度;若无法找出目标节点,则继续等待其他节点发来的信息;
4)进行状态转移:重连节点不断向其他节点索取直至得到目标节点的检查点高度的区块,进行状态转移操作,使重连节点当前高度恢复至目标节点的检查点高度;
5)向目标节点索取PQC信息:重连节点向目标节点发送索取PQC信息的消息,消息包括当前节点的低水位,即当前最近一次检查点的编号;
6)获取PQC信息:目标节点返回符合条件的PQC信息,重连节点收到这些信息并利用这些消息进行正常的共识处理;重复执行步骤5)到步骤6),直至重连节点区块高度恢复至正常节点高度,此后重连节点将进行正常的共识过程。
相关关键词概念如下:
检查点:PBFT共识过程中,节点一连执行K条请求,在第K条请求执行完成时向全网广播,即每隔K条请求发起一次全网共识,这个概念叫做检查点,一个稳定的检查点记录了第K条请求的编号;
f:PBFT共识过程中允许最多有f个恶意节点,记总结点个数为n,那么n=3f+1;
PQC信息:节点在进行PBFT算法共识中,一个交易信息如果要被确认需要经历preprepare、prepare、validate和commit等步骤,在每个过程中都会产生一些状态变量,这些状态变量可以称为PQC信息。
进一步地,所述的步骤1)中重连节点向正在运行中的其它节点广播初始恢复信息,用于获取其它节点的检查点信息和区块高度;初始恢复信息有且仅有待恢复节点能够发送,正在运行中的正常节点收到init恢复信息必须回复。
进一步地,所述的步骤3)中当重连节点接收到2f+1条回复信息后,会尝试从尝试找出所有符合条件的检查点信息中找出检查点高度最高的一组,其中符合条件是指至少有f+1条回复消息包含了这条检查点消息;重连节点从一组目标节点的回复信息中提取其检查点高度最高的一个值,随后进行步骤4),重连节点直接获取到目标检查点的区块并进行状态转移。
下面模拟一个宕机后重连节点的恢复过程来说明具体的实施方式,重连节点由于公式模块的内部变量与系统当前值不一致,无法参与共识;如图2所示,首先,重连节点将向其他正在运行中的几点发送初始恢复消息,运行中的节点收到初始恢复消息必须返回自身的检查点信息和区块高度;重连节点在收到2f+1个反馈消息后,将尝试找到符合条件的消息中检查点最高的那条,并确定目标节点,获取目标节点检查点信息。进而,重连节点向其他运行中节点索要至目标检查点的所有区块,并将在自身区块高度恢复至检查点高度;最后,重连节点向目标节点索要PQC信息,重新做到目标节点当前区块高度的区块,直至正常参与系统共识。至此,一个宕机重连节点的恢复过程完成。

Claims (3)

1.一种区块链共识节点自动恢复方法,其特征在于,包括如下步骤:
1)发送初始恢复信息:宕机后重连节点广播初始恢复消息,获取其他节点检查点信息和区块高度信息;
2)对反馈信息计数:重连节点收到其他节点回复的检查点、当前区块高度和最高区块哈希,并对发送方的检查点和区块高度信息计数;
3)获取目标节点信息:当重连节点收到2f+1个其他节点的回复信息,每个回复信息包括发送节点的不同阶段检查点的信息,尝试找出所有符合条件的检查点信息中找出检查点高度最高的一组,并获取其发送节点的区块高度和区块哈希,将这组检查点消息的发送节点作为目标节点;若找出目标节点,重连节点根据目标节点的检查点信息使重连节点当前高度恢复至目标节点的检查点高度;若无法找出目标节点,则继续等待其他节点发来的信息;
4)进行状态转移:重连节点不断向其他节点索取直至得到目标节点的检查点高度的区块,进行状态转移操作,使重连节点当前高度恢复至目标节点的检查点高度;
5)向目标节点索取PQC信息:重连节点向目标节点发送索取PQC信息的消息,消息包括当前节点的低水位,即当前最近一次检查点的编号;
6)获取PQC信息:目标节点返回符合条件的PQC信息,重连节点收到这些信息并利用这些消息进行正常的共识处理;重复执行步骤5)到步骤6),直至重连节点区块高度恢复至正常节点高度,此后重连节点将进行正常的共识过程。
2.如权利要求1所述的一种区块链共识节点自动恢复方法,其特征在于,步骤1)中重连节点向正在运行中的其它节点广播初始恢复信息,用于获取其它节点的检查点信息和区块高度;初始恢复信息有且仅有待恢复节点能够发送,正在运行中的正常节点收到init 恢复信息必须回复。
3.如权利要求1所述的一种区块链共识节点自动恢复方法,其特征在于,步骤3)中当重连节点接收到2f+1条回复信息后,尝试找出所有符合条件的检查点信息中找出检查点高度最高的一组,其中符合条件是指至少有f+1条回复消息包含了这条检查点消息;重连节点从一组目标节点的回复信息中提取其检查点高度最高的一个值。
CN201710271751.0A 2017-04-24 2017-04-24 一种区块链共识节点自动恢复方法 Active CN107423152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710271751.0A CN107423152B (zh) 2017-04-24 2017-04-24 一种区块链共识节点自动恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710271751.0A CN107423152B (zh) 2017-04-24 2017-04-24 一种区块链共识节点自动恢复方法

Publications (2)

Publication Number Publication Date
CN107423152A CN107423152A (zh) 2017-12-01
CN107423152B true CN107423152B (zh) 2019-05-21

Family

ID=60423784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710271751.0A Active CN107423152B (zh) 2017-04-24 2017-04-24 一种区块链共识节点自动恢复方法

Country Status (1)

Country Link
CN (1) CN107423152B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600353B (zh) * 2018-04-12 2021-01-12 北京天德科技有限公司 一种区块链节点的并行块同步方法
CN110569395A (zh) * 2018-05-18 2019-12-13 北京天德科技有限公司 一种稳定可靠的区块链拜占庭共识流程设计方法
CN108805570B (zh) * 2018-06-01 2021-05-25 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN109542980B (zh) * 2018-11-20 2020-12-18 北京磁云数字科技有限公司 一种区块链的数据处理方法、装置、设备及介质
WO2019072296A2 (en) 2018-12-13 2019-04-18 Alibaba Group Holding Limited REALIZING A CHANGE OF A PRIMARY NODE IN A DISTRIBUTED SYSTEM
MX2019008741A (es) * 2018-12-13 2019-09-09 Alibaba Group Holding Ltd Realizacion de un proceso de recuperacion para un nodo de red en un sistema distribuido.
EP3566392B1 (en) 2018-12-13 2021-08-25 Advanced New Technologies Co., Ltd. Achieving consensus among network nodes in a distributed system
CN109587263B (zh) * 2018-12-20 2021-08-03 众安信息技术服务有限公司 一种区块同步方法及系统
CN110032436A (zh) * 2019-04-04 2019-07-19 杭州秘猿科技有限公司 支持暂停和启动的区块链共识方法、系统和电子设备
WO2020199179A1 (zh) * 2019-04-04 2020-10-08 云图有限公司 共识节点确定方法、装置、计算机设备和存储介质
CN110460484B (zh) * 2019-10-10 2020-02-18 杭州趣链科技有限公司 一种基于pbft算法改进的单节点异常主动恢复方法
US11354198B2 (en) 2019-11-19 2022-06-07 International Business Machines Corporation Snapshot for world state recovery
CN111211876B (zh) * 2020-01-02 2021-10-12 支付宝(杭州)信息技术有限公司 发送针对数据请求的应答消息的方法及装置、区块链系统
CN111522696B (zh) * 2020-07-03 2020-12-29 支付宝(杭州)信息技术有限公司 区块链共识节点的宕机处理方法、数据持久化方法及硬件
CN112800129B (zh) * 2020-12-31 2024-04-23 杭州趣链科技有限公司 区块状态更新方法、装置、系统和电子设备
CN112883419B (zh) * 2021-02-03 2024-04-19 李才美 分布式网络中节点之间的数据共识方法、装置及节点设备
CN115473908B (zh) * 2022-11-03 2023-04-28 山东区块链研究院 一种区块链节点故障恢复方法及区块链系统
CN115618426B (zh) * 2022-11-17 2023-04-28 山东区块链研究院 基于检查点的区块链数据防篡改方法及系统
CN115495531B (zh) * 2022-11-17 2023-03-24 山东区块链研究院 基于检查点的区块链数据同步方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678795B1 (ko) * 2015-11-30 2016-11-22 전삼구 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법
CN106445711A (zh) * 2016-08-28 2017-02-22 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678795B1 (ko) * 2015-11-30 2016-11-22 전삼구 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법
CN106445711A (zh) * 2016-08-28 2017-02-22 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法

Also Published As

Publication number Publication date
CN107423152A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107423152B (zh) 一种区块链共识节点自动恢复方法
CN109831514B (zh) 平行链共识方法、数据异常处理方法、设备和存储介质
CN107040594A (zh) 基于pbft的许可区块链节点准入的方法及装置
EP3599558B1 (en) Data synchronization in a distributed data storage system
CN111311414A (zh) 一种基于一致性哈希算法的区块链多方共识方法
WO2019072295A3 (en) Performing a recovery process for a network node in a distributed system
CN109377365B (zh) 一种资产转移方法、设备和存储介质
CN109214795A (zh) 一种基于dag算法的区块链混合共识方法
CA2717535A1 (en) Data synchronization protocol
CN112468255B (zh) 基于网络共识结合vrf算法的区块链节点时间同步方法
CN110460484B (zh) 一种基于pbft算法改进的单节点异常主动恢复方法
CN111865968A (zh) 一种实用于区块链的优化拜占庭容错算法
US11782793B2 (en) Blockchain-based data snapshot method and apparatus, and computer-readable storage medium
CN113163011A (zh) 区块链中修改数据的方法、系统、设备及存储介质
CN111597077A (zh) 数据处理方法、装置、计算机设备以及存储介质
CN115473908B (zh) 一种区块链节点故障恢复方法及区块链系统
CN113064764A (zh) 在区块链系统中执行区块的方法及装置
CN115102967A (zh) 一种高共识效率的共识方法和分布式系统
CN106294611A (zh) 银行核心系统及新老核心系统数据切换方法
CN107465725B (zh) 基于客户信息控制系统的异构长事务处理系统及方法
CN112598510A (zh) 资源数据处理方法和装置
CN112527901A (zh) 数据存储系统、方法、计算设备及计算机存储介质
CN114579311B (zh) 执行分布式计算任务的方法、装置、设备以及存储介质
CN116915791A (zh) 区块链交易冲突检测的方法、排序节点及背书节点
CN110689435B (zh) 基于区块链的数据处理方法及数据处理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant