CN111522683B - 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置 - Google Patents

蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置 Download PDF

Info

Publication number
CN111522683B
CN111522683B CN202010630142.1A CN202010630142A CN111522683B CN 111522683 B CN111522683 B CN 111522683B CN 202010630142 A CN202010630142 A CN 202010630142A CN 111522683 B CN111522683 B CN 111522683B
Authority
CN
China
Prior art keywords
consensus
node
block chain
nodes
common identification
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
CN202010630142.1A
Other languages
English (en)
Other versions
CN111522683A (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010630142.1A priority Critical patent/CN111522683B/zh
Publication of CN111522683A publication Critical patent/CN111522683A/zh
Application granted granted Critical
Publication of CN111522683B publication Critical patent/CN111522683B/zh
Priority to EP21178984.7A priority patent/EP3933640B1/en
Priority to US17/352,210 priority patent/US11258851B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0793Remedial or corrective actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本说明书实施例提供一种蜜獾拜占庭容错共识机制的共识节点变更方法及装置。方法包括:在接收到区块链变更共识节点的交易时,区块链的共识节点执行所述交易,以触发智能合约更新区块链的共识节点配置列表,共识节点配置列表包含有基于智能合约规定的序号分配规则为共识节点分配的序号。共识节点基于更新后的共识节点配置列表记录的共识节点的序号,为共识节点本地配置的至少两个状态机关联区块链的其他共识节点,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作。共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。

Description

蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置
技术领域
本文件涉及数据处理技术领域,尤其涉及一种蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置。
背景技术
在区块链系统中,常用的拜占庭容错(BFT,Byzantine Fault-Tolerant)类的共识协议有效保证了共识的一致性,但对共识节点的动态变更没有做相关设计。在区块链系统中增加和剔除一个共识节点必须停机,修改相关参数配置,然后重启。显然,这样繁琐的流程在生产环境上让人们难以接受。
蜜獾拜占庭容错(HoneyBadgerBFT)作为一种异步网络的 BFT 共识协议,不依赖于任何关于网络环境的时间假设,与传统的实用拜占庭容错(PBFT,Practical ByzantineFault Tolerance)共识协议相比,HoneyBadgerBFT具有更高的处理效率,因此被越来越多的机构认可。在此背景下,有必要针对HoneyBadgerBFT共识协议,提出一种在区块链系统不停机的前提条件下,动态完成共识节点变更的技术方案。
发明内容
本说明书实施例目的是提供一种一种蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置,能够针对HoneyBadgerBFT共识协议,在区块链系统不停机的情况下,动态处理共识节点的变更。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提供一种基于蜜獾拜占庭容错共识机制的共识节点变更方法,包括:
在接收到区块链变更共识节点的交易时,所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号;
所述区块链的共识节点基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作;
所述区块链的共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
第二方面,提供一种基于蜜獾拜占庭容错共识机制的共识节点变更装置,包括:
更新模块,在接收到区块链变更共识节点的交易时,所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号;
关联模块,控制所述区块链的共识节点基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作;
共识模块,控制所述区块链的共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
第三方面,提供一种共识节点包括:
更新模块,在接收到区块链变更共识节点的交易时,执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号;
关联模块,基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作;
共识模块,基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
本说明书实施例的方案为每个共识节点分配唯一的序号和至少两个状态机,任一目标共识节点基于其他共识节点的序号,与本地状态机进行关联,并通过状态机处理状态机关联的其他共识节点所发起的共识提议,从而在不对区块链系统进行停机的情况下,实现了对共识节点的动态变更,保证了区块链服务的可用性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1为本说明书实施例提供的蜜獾拜占庭容错共识机制的共识节点变更方法的第一种流程示意图;
图2为本说明书实施例提供的蜜獾拜占庭容错共识机制的共识节点变更方法的第二种流程示意图;
图3为本说明书实施例提供的蜜獾拜占庭容错共识机制的共识节点变更装置的结构示意图;
图4为本说明书实施例提供的基于蜜獾拜占庭容错共识机制的共识节点的结构示意图;
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,目前拜占庭容错(BFT,Byzantine Fault-Tolerant)类的共识协议未对共识节点的动态变更做相关设计。这使得区块链系统中增加和剔除一个共识节点必须停机,修改相关参数配置,然后重启。显然,这样繁琐的流程在生产环境上让人们难以接受。而蜜獾拜占庭容错(HoneyBadgerBFT)作为一种异步网络的 BFT 共识协议,在效率上具有明显优势,被越来越多的机构认可。为此,本文件旨在针对HoneyBadgerBFT共识协议,提出一种不需要区块链系统停机,就能实现共识节点动态变更的技术方案。
图1是本说明书实施例蜜獾拜占庭容错共识机制的共识节点变更方法的流程图。图1所示的方法可以由下文相对应的装置执行,包括如下步骤:
S102,在接收到区块链变更共识节点的交易时,区块链的共识节点执行该交易,以触发智能合约更新区块链的共识节点配置列表,其中,共识节点配置列表包含有基于智能合约规定的序号分配规则为区块链的共识节点分配的序号。
本说明书实施例中,各共识节点本地配置有共识节点信息库,用于存储区块链的共识节点配置列表。
若上述交易用于在区块链中添加新增共识节点,则本步骤中,区块链的共识节点执行该交易,以触发智能合约按照序号分配规则为新增共识节点配置唯一对应的序号,并在区块链的共识节点配置列表中添加新增共识节点的信息,其中,新增共识节点的信息包含所述新增共识节点的ID以及对应的序号。
若上述交易用于在区块链中删除原有共识节点,则本步骤中,区块链的共识节点执行该交易,以触发智能合从共识节点配置列表中删除该原有共识节点的信息,同理,该原有共识节点的信息包含原有共识节点的ID以及对应的序号。
S104,区块链的共识节点基于更新后的共识节点配置列表记录的共识节点的序号,为共识节点本地配置的至少两个状态机关联区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与状态对应的共识阶段规定的共识操作。
具体地,针对任一目标共识节点,本步骤可以通过预先设置的关联算法,对其他共识节点的序号进行关联计算,以确定目标共识节点本地的状态机所关联的其他共识节点。也就是说,任一共识节点的状态机所关联的其他共识节点,取决其他共识节点所分配的序号。因此,当区块链发起共识节点后,区块链的共识节点需要对各自的状态机进行重新配置。
当然,为了简化本说明书实施例的方案,序号分配规则可以按照单调递增原则,为区块链中添加的新增共识节点分配序号,且不沿用删除的原有共识节点对应的序号。这样一来,只有在区块链添加新增共识节点的场景中,才需共识节点对本地状态机重新进行配置。
应理解,任意共识节点所配置的状态机的数量可以根据区块链中其他共识节点的数量进行动态调整。在本说明书实施例中,区块链中的共识节点不少于3个,各共识节点均配置有不少于2个且不多于区块链中共识节点总数量的状态机。
S106,区块链的共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
这里需要说明的是,本说明书实施例的方案不涉及对共识过程的改进,因此不再作详细赘述共识提议的具体流程。
基于图1所示的共识节点变更方法,本说明书实施例的方案为每个共识节点分配唯一的序号和至少两个状态机,任一目标共识节点基于其他共识节点的序号,与本地状态机进行关联,并通过状态机处理状态机关联的其他共识节点所发起的共识提议,从而在不对区块链系统进行停机的情况下,实现了对共识节点的动态变更,保证了区块链服务的可用性。
下面对本说明书实施例的共识节点变更进行详细介绍。
在HoneybadgerBFT共识机制中,每个共识节点都需要发起自己的共识提议。假设区块链有N个共识节点,则每轮共识共发起N个共识提议。每个提共识议都要经历HoneybadgerBFT的可靠广播传输(RBC,Reliable Broadcast)和二进协定(BA,BinaryAgreement )协议。其中RBC协议和BA协议都有大于两种以上的共识消息类型。为了提升共识效率,在设计上每个共识节点都引入了多线程模型,线程总数M的配置必须大于等于1且小于等于N。这里,每个线程是一个状态机,负责处理一个或多个共识节点所发起的共识提议消息。
在HoneybadgerBFT协议初始化时,确定了共识节点的数量N、各个共识节点的状态机数量M,以及每个状态机负责处理那些共识节点发起的提议。在此基础上要实现动态的共识节点增删,需要解决状态机与共识节点关联的问题。为此,本说明书实施例中,需要按照预先确定的序号分配规则,按照单调递增的原则,为每个节点分配唯一的序号。
如图2所示,对于某一目标共识节点来讲,在区块链发起共识节点变更后(目标共识节点是指区块链完成共识节点变更后所保留的任一共识节点),其所配置的状态机与其他共识节点的关联规则的步骤包括:
S201,目标共识节点收到区块链发起共识节点变更的交易。
这里,为避免对共识节点变更对会共识流程。本步骤中,如果区块链当前没有可执行的共识轮次,则发起共识节点变更的交易;如果区块链当前正处于共识阶段,则可以在当前共识轮次结束后,再发起共识节点变更的交易。
S202,目标共识节点执行交易,触发智能合约。如果交易指示区块链添加了新增共识节点,则执行S203;如果交易指示区块链删除了原有共识节点,则执行S205。
S203,目标共识节点基于智能合约所规定的序号分配规则,生成新增共识节点唯一的序号,并将新增共识节点的ID和绑定的序号存储至本地共识节点信息库的共识节点配置列表中。之后,执行S204。
为方便理解,这里举例介绍:
假设共识节点1的序号为1,共识节点2的序号为2,共识节点N的序号为N,则在区块链添加了新增共识节点后,其对应的序号应为N+1。本步骤中,目标共识节点将新增共识节点的ID以及对应的序号“N+1”添加至共识节点配置列表中。
S204,目标共识节点为本地M个状态机重新配置关联的其他共识节点。之后,执行S206。
应理解,本步骤具体的关联算法并不唯一,本文不再举例赘述。此外,如果有需要,目标共识节点在区块链的共识节点的数量增加后,还可以自适应上调本地状态机的数量。
S205,目标共识节点将原有共识节点的ID和其绑定的序号从本地共识节点信息库的共识节点配置列表中删除。之后,执行S206。
这里,为了保证序号能够匹配唯一的共识节点,删除的原有共识节点所对应的序号不再沿用。比如,在区块链中,共识节点1的序号为1,共识节点2的序号为2,……,共识节点N的序号为N,如果共识节点2被删除,则序号2不再使用,当区块链添加新增共识节点N+1时,共识节点N+1的序号为N+1,而不是序号2。
此外,由于序号分配规则按照单调递增原则为新增共识节点分配序号,因此目标共识节点可以本地记录当前已使用的最新的序号。一旦区块链添加了新增共识节点,则新增共识节点的序号可以是在记录的最新序号基础上加1确定得到。
S206,目标共识节点基于触发的智能合约,更新HoneybadgerBFT共识机制中的共识节点容错数F和共识节点数量N。之后,执行S207。
在HoneyBadgerBFT 共识机制中,假设作恶节点的数量为F,则共识节点的数量N必须大于3F+1。当共识提议被N - F个共识节点确认了,则这个共识提议才能达成共识。因此,当区块链的共识节点的数量发生变化后,需要适应性更新HoneyBadgerBFT共识机制下的关于F的取值。
S207,目标共识节点在下一轮共识阶段,基于本地状态机,处理状态机关联的其他共识节点所发起的共识提议。
具体地,状态机设置有RBC协议阶段对应的状态和BA协议阶段对应的状态。状态机从RBC协议阶段对应的状态切换至BA协议阶段对应的状态的控制信息的触发条件包括:接收到2F+1个来自不同的其他共识节点所发送的准备Ready消息。在HoneyBadgerBFT共识机制下,各共识节点在RBC协议阶段需要对待共识的交易重构默克尔树,并对重构的默克尔树进行校验,若校验通过,则向其他共识节点广播Ready消息。如果任一目标节点接收到2F+1个来自不同的其他共识节点所发送的准备Ready消息时,则意味着接收到了正确的提议数据。
应理解,以上内容仅用于示例性介绍本说明书实施例的方法。在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本说明书实施例的保护范围。
与上述共识节点变更方法相对应地,本说明书实施例还提供一种蜜獾拜占庭容错共识机制的共识节点变更装置。图3是本说明书实施例共识节点变更装置300的结构图,包括:
更新模块310,在所述区块链的共识节点接收到区块链变更共识节点的交易时,控制所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号。
关联模块320,控制所述区块链的共识节点基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作。
共识模块330,控制所述区块链的共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
基于图3所示的共识节点变更装置,本说明书实施例的方案为每个共识节点分配唯一的序号和至少两个状态机,任一目标共识节点基于其他共识节点的序号,与本地状态机进行关联,并通过状态机处理状态机关联的其他共识节点所发起的共识提议,从而在不对区块链系统进行停机的情况下,实现了对共识节点的动态变更,保证了区块链服务的可用性。
可选地,更新模块310在执行时,具体用于:若所述交易用于在所述区块链中添加新增共识节点,则控制所述区块链的共识节点执行所述交易,以触发智能合约按照序号分配规则为所述新增共识节点配置序号,并在所述区块链的共识节点配置列表中添加所述新增共识节点的信息,所述新增共识节点的信息包含所述新增共识节点的ID以及对应的序号。若所述交易用于在所述区块链中删除原有共识节点,则控制所述区块链的共识节点执行所述交易,以触发智能合从所述区块链的共识节点配置列表中删除所述原有共识节点的信息,所述原有共识节点的信息包含所述原有共识节点的ID以及对应的序号。
其中,所述序号分配规则按照单调递增原则,为所述区块链中添加的新增共识节点分配序号,和/或,所述序号分配规则不沿用删除的原有共识节点对应的序号。
具体地,所述蜜獾拜占庭容错共识机制的共识阶段包括:可靠广播传输RBC协议阶段和在所述RBC协议阶段之后执行的二进制协定BA协议阶段;其中,状态机用于从所述RBC协议阶段对应的状态切换至所述BA协议阶段对应的状态的控制信息的触发条件包括:接收到2f+1个来自不同的其他共识节点所发送的准备Ready消息,其中,f为所述区蜜獾拜占庭容错共识机制中的共识节点容错数,Ready消息为共识节点在所述RBC协议阶段,对待共识的交易重构默克尔树,并对重构的默克尔树成功校验所需要发送的信息。
可选地,本说明书实施例的共识节点变更装置还包括:
共识协议配置模块,控制所述区块链的共识节点执行所述交易,以触发智能合约更新所述区蜜獾拜占庭容错共识机制中的共识节点容错数。
可选地,所述区块链中的共识节点不少于3个,各共识节点均配置有不少于2个且不多于所述区块链中共识节点总数量的状态机。
可选地,所述区块链的共识节点本地配置有共识节点信息库,所述区块链的共识节点配置列表存储在所述共识节点信息库中。
显然,本说明书实施例的共识节点变更装置可以作为上述图1所示的共识节点变更方法的执行主体,因此能够实现该共识节点变更方法在图1和图2所实现的功能。由于原理相同,本文不再赘述。
与上述共识节点变更方法相对应地,本说明书实施例还提供一种基于蜜獾拜占庭容错共识机制的共识节点。图4是本说明书实施例共识节点400的结构图,包括:
更新模块410,在接收到区块链变更共识节点的交易时,执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号。
关联模块420,基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作。
共识模块430,基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
本说明书实施例的共识节点分配有唯一的序号和至少两个状态机,可以基于其他共识节点的序号,与本地状态机进行关联,并通过状态机处理关联的其他共识节点所发起的共识提议。当区块链发生共识节点变更后,不需要停机,只需要按照智能合约规定的序号分配规则,更新共识节点配置列表中记录的共识节点的序号,并基于更新后的共识节点配置列表中的其他共识节点的序号,为本地状态机重新关联其他共识节点,以保证状态机不中断工作,从而提供连续性的区块链服务。
可选地,更新模块410在执行时,具体用于:若所述交易用于在所述区块链中添加新增共识节点,则执行所述交易,以触发智能合约按照序号分配规则为所述新增共识节点配置序号,并在所述区块链的共识节点配置列表中添加所述新增共识节点的信息,所述新增共识节点的信息包含所述新增共识节点的ID以及对应的序号。若所述交易用于在所述区块链中删除原有共识节点,则执行所述交易,以触发智能合从所述区块链的共识节点配置列表中删除所述原有共识节点的信息,所述原有共识节点的信息包含所述原有共识节点的ID以及对应的序号。
其中,所述序号分配规则按照单调递增原则,为所述区块链中添加的新增共识节点分配序号,和/或,所述序号分配规则不沿用删除的原有共识节点对应的序号。
具体地,所述蜜獾拜占庭容错共识机制的共识阶段包括:可靠广播传输RBC协议阶段和在所述RBC协议阶段之后执行的二进制协定BA协议阶段;其中,状态机用于从所述RBC协议阶段对应的状态切换至所述BA协议阶段对应的状态的控制信息的触发条件包括:接收到2f+1个来自不同的其他共识节点所发送的准备Ready消息,其中,f为所述区蜜獾拜占庭容错共识机制中的共识节点容错数,Ready消息为共识节点在所述RBC协议阶段,对待共识的交易重构默克尔树,并对重构的默克尔树成功校验所需要发送的信息。
可选地,本说明书实施例的共识节点还包括:
共识协议配置模块,执行所述交易,以触发智能合约更新所述区蜜獾拜占庭容错共识机制中的共识节点容错数。
可选地,所述区块链中的共识节点不少于3个,各共识节点均配置有不少于2个且不多于所述区块链中共识节点总数量的状态机。
可选地,所述区块链的共识节点本地配置有共识节点信息库,所述区块链的共识节点配置列表存储在所述共识节点信息库中。
显然,本说明书实施例的共识节点可以作为上述图1所示的共识节点变更方法的执行主体,因此能够实现该共识节点变更方法在图1和图2所实现的功能。由于原理相同,本文不再赘述。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。

Claims (11)

1.一种蜜獾拜占庭容错共识机制的共识节点变更方法,包括:
在接收到区块链变更共识节点的交易时,所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号;
所述区块链的共识节点基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作;
所述区块链的共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
2.根据权利要求1所述的方法,
若所述交易用于在所述区块链中添加新增共识节点,则所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,包括:
所述区块链的共识节点执行所述交易,以触发智能合约按照序号分配规则为所述新增共识节点配置序号,并在所述区块链的共识节点配置列表中添加所述新增共识节点的信息,其中,所述新增共识节点的信息包含所述新增共识节点的ID以及对应的序号。
3.根据权利要求2所述的方法,
所述序号分配规则按照单调递增原则,为所述区块链中添加的新增共识节点分配序号。
4.根据权利要求1所述的方法,
若所述交易用于在所述区块链中删除原有共识节点,则所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,包括:
所述区块链的共识节点执行所述交易,以触发智能合约从所述区块链的共识节点配置列表中删除所述原有共识节点的信息,其中,所述原有共识节点的信息包含所述原有共识节点的ID以及对应的序号。
5.根据权利要求4所述的方法,
所述序号分配规则不沿用删除的原有共识节点对应的序号。
6.根据权利要求1所述的方法,
所述蜜獾拜占庭容错共识机制的共识阶段包括:可靠广播传输RBC协议阶段和在所述RBC协议阶段之后执行的二进制协定BA协议阶段;
其中,状态机用于从所述RBC协议阶段对应的状态切换至所述BA协议阶段对应的状态的控制信息的触发条件包括:接收到2F+1个来自不同的其他共识节点所发送的准备Ready消息,其中,F为所述蜜獾拜占庭容错共识机制中的共识节点容错数,Ready消息为共识节点在所述RBC协议阶段,对待共识的交易重构默克尔树,并对重构的默克尔树成功校验所需要发送的信息。
7.根据权利要求6中所述的方法,还包括:
所述区块链的共识节点执行所述交易,以触发智能合约更新所述蜜獾拜占庭容错共识机制中的共识节点容错数。
8.根据权利要求1-6中任一项所述的方法,
所述区块链中的共识节点不少于3个,各共识节点均配置有不少于2个且不多于所述区块链中共识节点总数量的状态机。
9.根据权利要求1-6中任一项所述的方法,
所述区块链的共识节点本地配置有共识节点信息库,所述区块链的共识节点配置列表存储在所述共识节点信息库中。
10.一种蜜獾拜占庭容错共识机制的共识节点变更装置,包括:
更新模块,在区块链的共识节点接收到区块链变更共识节点的交易时,控制所述区块链的共识节点执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号;
关联模块,控制所述区块链的共识节点基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作;
共识模块,控制所述区块链的共识节点基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
11.一种基于蜜獾拜占庭容错共识机制的共识节点,包括:
更新模块,在接收到区块链变更共识节点的交易时,执行所述交易,以触发智能合约更新所述区块链的共识节点配置列表,其中,所述共识节点配置列表包含有基于所述智能合约规定的序号分配规则为所述区块链的共识节点分配的序号;
关联模块,基于更新后的所述共识节点配置列表记录的共识节点的序号,为所述共识节点本地配置的至少两个状态机关联所述区块链的其他共识节点,其中,状态机设置有与蜜獾拜占庭容错共识机制中的共识阶段相对应的状态,并基于控制信号进行状态切换,以执行与所处状态对应的共识阶段规定的共识操作;
共识模块,基于本地配置完成的状态机,处理状态机关联的其他共识节点所发起的共识提议。
CN202010630142.1A 2020-07-03 2020-07-03 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置 Active CN111522683B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010630142.1A CN111522683B (zh) 2020-07-03 2020-07-03 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置
EP21178984.7A EP3933640B1 (en) 2020-07-03 2021-06-11 Consensus node changing method and related apparatus based on honey badger byzantine fault tolerance consensus
US17/352,210 US11258851B2 (en) 2020-07-03 2021-06-18 Consensus node changing method and related apparatus based on honey badger byzantine fault tolerance consensus mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010630142.1A CN111522683B (zh) 2020-07-03 2020-07-03 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置

Publications (2)

Publication Number Publication Date
CN111522683A CN111522683A (zh) 2020-08-11
CN111522683B true CN111522683B (zh) 2020-10-02

Family

ID=71911781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010630142.1A Active CN111522683B (zh) 2020-07-03 2020-07-03 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置

Country Status (3)

Country Link
US (1) US11258851B2 (zh)
EP (1) EP3933640B1 (zh)
CN (1) CN111522683B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113965566A (zh) * 2021-10-11 2022-01-21 浪潮云信息技术股份公司 一种基于Header-Sig流的BFT共识算法实现方法及系统
CN114584326B (zh) * 2022-05-07 2022-08-30 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、电子设备及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671821B1 (en) 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US7499865B2 (en) 2004-12-17 2009-03-03 International Business Machines Corporation Identification of discrepancies in actual and expected inventories in computing environment having multiple provisioning orchestration server pool boundaries
US7917596B2 (en) 2009-01-07 2011-03-29 Oracle International Corporation Super master
US8639793B2 (en) 2010-10-29 2014-01-28 Cisco Technology, Inc. Disaster recovery and automatic relocation of cloud services
US20130110781A1 (en) * 2011-10-31 2013-05-02 Wojciech Golab Server replication and transaction commitment
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US10643288B2 (en) 2015-10-13 2020-05-05 TransActive Grid Inc. Use of blockchain based distributed consensus control
US20170116693A1 (en) 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US11611445B2 (en) * 2017-02-17 2023-03-21 Nokia Technologies Oy Changing smart contracts recorded in block chains
CN107391320B (zh) 2017-03-10 2020-07-10 创新先进技术有限公司 一种共识方法及装置
WO2018170504A1 (en) 2017-03-17 2018-09-20 Labyrinth Research Llc Unified control of privacy-impacting devices
US11626993B2 (en) 2017-05-22 2023-04-11 Visa International Service Association Network for improved verification speed with tamper resistant data
CN107395665B (zh) 2017-05-22 2020-04-24 创新先进技术有限公司 一种区块链业务受理及业务共识方法及装置
CN107528882B (zh) * 2017-07-14 2020-12-25 创新先进技术有限公司 区块链共识网络中处理共识请求的方法、装置和电子设备
US10616324B1 (en) 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US11146380B2 (en) 2017-08-03 2021-10-12 Parity Technologies Ltd. Methods and systems for a heterogeneous multi-chain framework
CN107579848B (zh) * 2017-08-30 2020-08-25 上海保险交易所股份有限公司 实用拜占庭容错共识机制中动态更改共识节点的方法
US10601907B2 (en) 2017-09-22 2020-03-24 Artiste QB Net Inc. System and method for platform to securely distribute compute workload to web capable devices
US10671492B2 (en) 2017-12-18 2020-06-02 International Business Machines Corporation Forecast recommended backup destination
US20190251199A1 (en) * 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
CN108667614B (zh) * 2018-04-19 2021-02-02 上海分布信息科技有限公司 一种拜占庭容错方法及其实现系统
CN109309723B (zh) * 2018-08-18 2021-05-04 上海分布信息科技有限公司 一种共识节点变更方法及其实现系统
US11474994B2 (en) 2018-12-27 2022-10-18 Intel Corporation Distributed blockchain oracle
EP3669522B1 (en) * 2019-06-27 2021-11-24 Advanced New Technologies Co., Ltd. Managing cybersecurity vulnerabilities using blockchain networks
US10990879B2 (en) * 2019-09-06 2021-04-27 Digital Asset Capital, Inc. Graph expansion and outcome determination for graph-defined program states
EP4018596A1 (en) * 2019-09-27 2022-06-29 Schvey, Inc. D/B/A/ Axoni Pruning entries in tamper-evident data stores
CN115632933A (zh) * 2019-12-24 2023-01-20 杭州趣链科技有限公司 一种基于pbft算法的集群异常恢复方法

Also Published As

Publication number Publication date
CN111522683A (zh) 2020-08-11
EP3933640A1 (en) 2022-01-05
US20210314392A1 (en) 2021-10-07
US11258851B2 (en) 2022-02-22
EP3933640B1 (en) 2023-03-01

Similar Documents

Publication Publication Date Title
CN111522683B (zh) 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置
CN107332876B (zh) 区块链状态的同步方法及装置
CN108563502B (zh) 一种任务调度方法和装置
CN109684050B (zh) 一种并行化事务执行器的使用方法
CN108011846B (zh) 网络功能虚拟化架构中管理业务的方法及装置
CN111045708B (zh) 软件升级方法、电子设备和计算机可读存储介质
CN105119997A (zh) 云计算系统的数据处理方法
CN109508912B (zh) 一种业务调度方法、装置、设备和存储介质
WO2018024204A1 (zh) 虚拟网元的管理方法及装置
CN108319492A (zh) 复位物理机的方法、装置与系统
CN109885612A (zh) 区块链智能合约的同步生效方法及装置
CN110990415A (zh) 数据处理方法、装置、电子设备及存储介质
CN112804276B (zh) 虚拟化宽带远程接入服务器及其控制方法、通信系统
CN107547622B (zh) 一种资源调整方法及装置
CN108881452B (zh) 一种数据同步的方法、装置及存储介质
CN112214288A (zh) 基于Kubernetes集群的Pod调度方法、装置、设备和介质
CN109189444A (zh) 一种服务器虚拟化系统的管理节点的升级控制方法及装置
CN114780177A (zh) 事务执行方法及装置、存储介质及电子装置
CN106301877A (zh) 一种虚拟网元的升级方法和装置
CN114996350A (zh) 一种区块链中的区块状态同步方法及第一节点
CN115080538A (zh) 一种区块链版本验证方法及装置
CN114553859A (zh) 一种bmc配置管理方法、装置、电子设备及存储介质
CN116155911A (zh) 一种版本升级方法及装置
CN110380993B (zh) 一种基于ovsdb的流表保护方法
CN113950120A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40035821

Country of ref document: HK