CN112511312A - 一种可组装的共识方法及系统 - Google Patents
一种可组装的共识方法及系统 Download PDFInfo
- Publication number
- CN112511312A CN112511312A CN202011323282.0A CN202011323282A CN112511312A CN 112511312 A CN112511312 A CN 112511312A CN 202011323282 A CN202011323282 A CN 202011323282A CN 112511312 A CN112511312 A CN 112511312A
- Authority
- CN
- China
- Prior art keywords
- block
- consensus
- proposal
- candidate
- node
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种可组装的共识方法及系统,该方法包括:根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取提案节点的提案通知和候选节点的提案区块信息;根据提案通知和提案区块生成规则,生成提案区块;根据提案区块信息和候选区块生成规则,生成候选区块;根据预设共识规则,对提案区块或候选区块进行共识,得到共识后的确认区块;对确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识。本发明实施例基于共识算法类型,对共识过程中各个流程进行适应性调整,从而构建共识模块,使得区块链系统使用一套接口与共识模块交互,以支持不同类共识算法。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种可组装的共识方法及系统。
背景技术
在区块链中,由于其去中心化的设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,从而统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。这样的制度,必须依赖某种方式来证明,是由谁取得了一个区块链的打包权(或称记帐权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,这就是共识机制。在区块链网络中,由于应用场景的不同,往往需要采用不同的共识算法。
然而,现有区块链的共识处理方法,针对多个不同的共识算法,需要设置多个对应的共识接口,导致接口过多。每类共识算法使用一套不同的接口,如果支持多种共识算法,则系统内接口定义数量是所有共识算法接口数的总和,维护不便,以致于区块链系统的流程不统一,系统复杂度高。由于各类共识算法使用各自的接口,导致区块链系统调度共识流程过程中会存在差异,针对每类共识算法还要有配套的共识调度流程对应,系统的代码量和复杂度上升。
因此,现在亟需一种可组装的共识方法及系统来解决上述问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种可组装的共识方法及系统。
第一方面,本发明实施例提供了一种可组装的共识方法,包括:
根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;
根据所述提案通知和提案区块生成规则,生成提案区块;
根据所述提案区块信息和候选区块生成规则,生成候选区块;
根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;
对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;
其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
进一步地,所述共识算法包括竞争性共识算法和合作性共识算法。
进一步地,在所述根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点之前,所述方法还包括:
根据区块共识当前轮次的区块信号,确定当前轮次待组装的共识算法。
进一步地,所述根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,包括:
根据所述当前轮次待组装的共识算法和所述提案节点选举规则进行提案节点选举,若所述共识算法为竞争性共识算法,则将所有节点作为提案节点;
若所述共识算法为合作性共识算法,则通过预设选举方式选举提案节点;
将未选举为提案节点的其他节点作为候选节点。
进一步地,所述根据所述提案通知和提案区块生成规则,生成提案区块,包括:
根据所述提案通知,确定当前轮次待组装的共识算法;
根据所述共识算法和所述提案区块生成规则,生成提案区块,其中,所述提案区块生成规则具体为:
若所述共识算法为竞争性共识算法,则通过进行竞争性共识运算操作,生成提案区块;
若所述共识算法为合作性共识算法,则通过智能合约对生成的区块进行验证,将验证通过的区块作为提案区块。
进一步地,所述根据所述提案区块信息和候选区块生成规则,生成候选区块,包括:
根据所述提案区块信息,确定当前轮次待组装的共识算法;
根据所述共识算法和所述候选区块生成规则,生成候选区块,其中,所述候选区块生成规则具体为:
若所述共识算法为竞争性共识算法,则对非提案节点的区块进行验证,将验证通过的区块作为候选区块;
若所述共识算法为合作性共识算法,判断非提案节点是否为当前轮次提案者发出的,若是,则对非提案节点的区块进行验证,并将验证通过的区块作为候选区块。
进一步地,所述根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块,包括:
根据所述预设共识规则和当前轮次待组装的共识算法,将所述提案区块或所述候选区块作为目标提案区块进行共识,所述预设共识规则具体为:
若所述共识算法为竞争性共识算法,则对所述目标提案区块进行有效性验证,若验证通过,得到共识后的确认区块;
若所述共识算法为合作性共识算法,则验证所述目标提案区块的合法性,并对合法性验证通过的目标提案区块进行投票,若投票结果达到预设共识条件,得到共识后的确认区块。
第二方面,本发明实施例提供了一种可组装的共识系统,包括:
提案节点选举模块,用于根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;
提案模块,用于根据所述提案通知和提案区块生成规则,生成提案区块;
监听提案模块,用于根据所述提案区块信息和候选区块生成规则,生成候选区块;
共识模块,用于根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;
提交模块,用于对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;
其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的一种可组装的共识方法及系统,基于待组装的共识算法类型需求,对共识过程中各个流程进行适应性调整,从而构建共识模块,使得区块链系统使用一套接口与共识模块交互,以支持不同类共识算法,基于一套接口,区块链系统可以使用标准流程即可支持不同共识算法的切换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的可组装的共识方法的流程示意图;
图2为本发明实施例提供的可组装的共识系统的结构示意图;
图3为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有区块链的共识方法,对于多个不同的共识算法,需要设置多个对应的共识接口,导致接口过多。每类共识算法使用一套不同的接口,如果支持多种共识算法,则系统内接口定义数量是所有共识算法接口数的总和,维护不便,以致于区块链系统的流程不统一,系统复杂度高。而对于Tendermint算法,该算法模块是固定的,仅支持应用的可插拔,不支持共识算法的扩展和可插拔。
图1为本发明实施例提供的可组装的共识算法的流程示意图,如图1所示,本发明实施例提供了一种可组装的共识方法,包括:
步骤101,根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息。
在本发明实施例中,首先确定共识轮次(本轮次)区块共识的提案节点,即需要产生新区块的节点,其中,共识轮次是指每个轮次由区块链系统各节点参与,按照预定规则确认出合法的区块。在确认本轮次的提案节点后,将提案节点和候选节点(未选举为提案节点的节点)分别进行相应后续处理。其中,根据共识算法的不同,每个轮次的提案节点可以是一个或多个(竞争性共识)。
步骤102,根据所述提案通知和提案区块生成规则,生成提案区块。
在本发明实施例中,接收提案节点对应的提案通知,从而生成新的提案区块,以将新的提案区块用于后续的共识流程。在本发明实施例中,需调用区块链系统产生新区块的接口,得到合法的区块及交易集合数据。
步骤103,根据所述提案区块信息和候选区块生成规则,生成候选区块。
在本发明实施例中,通过监听其他节点(候选节点)产生并广播的提案区块信息,并调用区块链系统的区块校验接口,对生成的候选区块进行区块及交易合法性的校验,如果校验通过,则将候选区块用于后续的共识流程。
步骤104,根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;
步骤105,对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;
其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。需要说明的是,在本发明实施例中,在每一轮次的共识过程中,可根据共识信号确定对应的共识算法和本轮次所要使用的共识规则,其中,共识信号中包含有共识算法的类型和提案节点的选举方式等。
在本发明实施例中,在获取到提案区块或候选区块后,按照预设共识规则,对该区块进行区块的确认,如果确认通过,调用区块链系统的存储区块接口将确认区块的信息进行保存,并发起打包新区块信号,以开启下一轮共识。
本发明实施例提供的可组装的共识方法,基于待组装的共识算法类型需求,对共识过程中各个流程进行适应性调整,从而构建共识模块,使得区块链系统使用一套接口与共识模块交互,以支持不同类共识算法,基于一套接口,区块链系统可以使用标准流程即可支持不同共识算法的切换。
在上述实施例的基础上,所述共识算法包括竞争性共识算法和合作性共识算法。
在本发明实施例中,基于标准流程以及各步骤间协作,可适配实现多种类型共识算法。具体地,在遵守内部接口的前提下,可根据不同的共识算法扩展实现,每个步骤中的规则可以根据共识算法的特性要求进行组装,构建为一个共识算法模块。各步骤的具体实现,存在一些相互依赖的特性,如基于竞争性共识算法的提案节点选举,不能适配合作性共识算法的共识过程。该依赖关系需要进行管理和维护,避免在各步骤规则的组装过程中产生不兼容情况。同样的,组装好的本轮次的共识算法与区块链系统之间的交互接口是标准定义的。因此,本发明实施例提供的可组装的共识方法,可以基于一套接口与区块链系统进行集成,不存在兼容适配问题,从而实现了共识算法可插拔的特性。现对本发明实施例中的两类共识算法进行解释,一种为竞争性共识算法,是指各参与方按照一定规则(工作量证明等)竞争成为每一轮次进行竞争性共识运算,先运算出正确结果节点的为胜者,得到这一轮次的区块决定权;另一种为合作性共识算法,是指在此类共识算法中,各参与方合作协商出每一轮次的执行数据均需获得一定比例的票数,所以在一个轮次中只会产生全网唯一的共识结果,该类共识还可以细分为拜占庭容错类共识算法和一致性算法,其中一致性算法流程简单,可识别提案节点作恶的情况,即仅保证数据一致性,无法保证数据安全性。本发明实施例根据两类共识算法进行组装,在提案节点选举、候选节点监听、提案区块生成以及共识过程等步骤中进行自适应调整,从而实现共识算法可插拔可组装的效果。
在上述实施例的基础上,在所述根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点之前,所述方法还包括:
根据区块共识当前轮次的区块信号,确定当前轮次待组装的共识算法。
在本发明实施例中,首先基于当前轮次的区块信号,确定本轮次需要进行组装的共识算法,即确定共识算法是竞争性共识算法还是合作性共识算法。
在上述实施例的基础上,所述根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,包括:
根据所述当前轮次待组装的共识算法和所述提案节点选举规则进行提案节点选举,若所述共识算法为竞争性共识算法,则将所有节点作为提案节点;
若所述共识算法为合作性共识算法,则通过预设选举方式选举提案节点;
将未选举为提案节点的其他节点作为候选节点。
在本发明实施例中,基于当前轮次的区块信号,提案节点的选举根据不同的共识算法,可以有多种实现版本,例如,对于工作量证明(Proof of Work,简称POW)类的竞争性共识算法,每个节点均可以提案,无需选举,可直接执行后续步骤,从而发起提案操作;对于拜占庭容错类的合作性共识算法,按照预设选举方式选举确定提案者,该预设选举方式包括但不限于:轮流、预设期限或随机等选举方式,具体为,每个共识轮次选举更换提案节点、每个共识轮次无需投票按预设期限确定提案节点、连续多个共识轮次才更换提案节点;对于一致性算法,如果发现提案节点超时未提案或异常,则重新进行提案者选举,如果提案节点没有产生故障,则下一轮次依然是该节点进行提案。
在上述实施例的基础上,所述根据所述提案通知和提案区块生成规则,生成提案区块,包括:
根据所述提案通知,确定当前轮次待组装的共识算法;
根据所述共识算法和所述提案区块生成规则,生成提案区块,其中,所述提案区块生成规则具体为:
若所述共识算法为竞争性共识算法,则通过进行竞争性共识运算操作,生成提案区块;
若所述共识算法为合作性共识算法,则通过智能合约对生成的区块进行验证,将验证通过的区块作为提案区块。
在本发明实施例中,通过提案通知确定当前轮次所需的共识算法,然后针对不同类型的共识算法,采取相应的提案区块生成方案。例如,对于PoW类的竞争性共识算法,该步骤除了产生候选区块外,还需进行竞争性共识运算操作,其中,竞争性共识运算操作,是指在竞争性共识中,进行运算并尝试得到满足预置规则的操作,包括但不限于:难度计算、资源竞争和区块完整性计算,如,PoW共识算法的挖矿运算。如果竞争性共识运算任务完成,则将完成的提案区块用于后续的共识步骤,需要说明的是,在本发明实施例中,如果基于候选区块生成规则的步骤生成的候选区块,先于本步骤生成的提案区块且通过共识验证,则暂停当前基于提案区块生成规则的运算操作。对于拜占庭容错类的合作性共识算法,首先调用区块链系统的产生提案区块接口,获得一个经过智能合约预执行的合法区块,从而对该区块进行后续共识步骤;对于一致性算法,处理流程与拜占庭容错类的合作性共识算法一致。
在上述实施例的基础上,所述根据所述提案区块信息和候选区块生成规则,生成候选区块,包括:
根据所述提案区块信息,确定当前轮次待组装的共识算法;
根据所述共识算法和所述候选区块生成规则,生成候选区块,其中,所述候选区块生成规则具体为:
若所述共识算法为竞争性共识算法,则对非提案节点的区块进行验证,将验证通过的区块作为候选区块;
若所述共识算法为合作性共识算法,判断非提案节点是否为当前轮次提案者发出的,若是,则对非提案节点的区块进行验证,并将验证通过的区块作为候选区块。
在本发明实施例中,对于PoW类的竞争性共识算法,每个节点均可以提案,需持续监听其他节点(非提案节点)广播的提案区块,并调用区块链接口验证区块交易合法性,如果区块合法性校验通过,则将该提案区块用于后续的共识步骤;如果合法性校验不通过,继续监听其他节点的候选区块。对于拜占庭容错类的合作性共识算法,如果本节点是提案节点,则拒绝该提案;如果是非提案节点,接收到广播的候选区块,先判断是否为本轮次提案者发出的,再调用区块链接口验证区块交易合法性,发送验证结果至后续的共识步骤;对于一致性算法,处理流程与拜占庭容错类合作性共识算法一致。
在上述实施例的基础上,所述根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块,包括:
根据所述预设共识规则和当前轮次待组装的共识算法,将所述提案区块或所述候选区块作为目标提案区块进行共识,所述预设共识规则具体为:
若所述共识算法为竞争性共识算法,则对所述目标提案区块进行有效性验证,若验证通过,得到共识后的确认区块;
若所述共识算法为合作性共识算法,则验证所述目标提案区块的合法性,并对合法性验证通过的目标提案区块进行投票,若投票结果达到预设共识条件,得到共识后的确认区块。
在本发明实施例中,基于当前轮次所需的共识算法,对区块进行共识,对于PoW类的竞争性共识算法,在接收到提案区块或候选区块后,对其进行有效性校验,包括但不限于:区块签名校验、区块完整性校验和区块共识算法有效性交易(如竞争性共识运算结果是否正确),如果校验通过,则将验证通过的确认区块进行保存;否则,继续执行上述实施例中基于竞争性共识运算操作的提案区块生成步骤。
对于拜占庭容错类合作性共识算法,如果区块是不合法的(提案区块的或候选区块对应的验证通过信息),则开始共识投票并投反对票;如果区块合法,按照预定规则进行投票、投票广播以及其他节点投票消息收集和验证操作,如果投票确认条件达成,则将确认区块进行保存;如果投票条件未达成,则继续本阶段处理。对于一致性算法,如果区块是不合法的,则投反对票;如果区块合法,非提案节点对提案区块进行预设规则投票确认后,并接受提案节点确认消息后,将确认区块进行保存;如果区块合法,提案节点收集到多于预设规则(满足一定量的投票数量)的赞成票后,将确认区块进行保存;如果未达成,则重新进行本阶段操作。
图2为本发明实施例提供的可组装的共识系统的结构示意图,如图2所示,本发明实施例提供了一种可组装的共识系统,包括提案节点选举模块201、提案模块202、监听提案模块203、共识模块204和提交模块205,其中,提案节点选举模块201用于根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;提案模块202用于根据所述提案通知和提案区块生成规则,生成提案区块;监听提案模块203用于根据所述提案区块信息和候选区块生成规则,生成候选区块;共识模块204用于根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;提交模块205用于对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
本发明实施例提供的可组装的共识系统,基于待组装的共识算法类型需求,对共识过程中各个流程进行适应性调整,从而构建共识模块,使得区块链系统使用一套接口与共识模块交互,以支持不同类共识算法,基于一套接口,区块链系统可以使用标准流程即可支持不同共识算法的切换。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图3为本发明实施例提供的电子设备结构示意图,参照图3,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行如下方法:根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;根据所述提案通知和提案区块生成规则,生成提案区块;根据所述提案区块信息和候选区块生成规则,生成候选区块;根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的可组装的共识算法,例如包括:根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;根据所述提案通知和提案区块生成规则,生成提案区块;根据所述提案区块信息和候选区块生成规则,生成候选区块;根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种可组装的共识方法,其特征在于,包括:
根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;
根据所述提案通知和提案区块生成规则,生成提案区块;
根据所述提案区块信息和候选区块生成规则,生成候选区块;
根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;
对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;
其中,所述提案节点选举规则、所述提案区块生成规则、所述候选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
2.根据权利要求1所述的可组装的共识方法,其特征在于,所述共识算法包括竞争性共识算法和合作性共识算法。
3.根据权利要求2所述的可组装的共识方法,其特征在于,在所述根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点之前,所述方法还包括:
根据区块共识当前轮次的区块信号,确定当前轮次待组装的共识算法。
4.根据权利要求3所述的可组装的共识方法,其特征在于,所述根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,包括:
根据所述当前轮次待组装的共识算法和所述提案节点选举规则进行提案节点选举,若所述共识算法为竞争性共识算法,则将所有节点作为提案节点;
若所述共识算法为合作性共识算法,则通过预设选举方式选举提案节点;
将未选举为提案节点的其他节点作为候选节点。
5.根据权利要求2所述的可组装的共识方法,其特征在于,所述根据所述提案通知和提案区块生成规则,生成提案区块,包括:
根据所述提案通知,确定当前轮次待组装的共识算法;
根据所述共识算法和所述提案区块生成规则,生成提案区块,其中,所述提案区块生成规则具体为:
若所述共识算法为竞争性共识算法,则通过进行竞争性共识运算操作,生成提案区块;
若所述共识算法为合作性共识算法,则通过智能合约对生成的区块进行验证,将验证通过的区块作为提案区块。
6.根据权利要求2所述的可组装的共识方法,其特征在于,所述根据所述提案区块信息和候选区块生成规则,生成候选区块,包括:
根据所述提案区块信息,确定当前轮次待组装的共识算法;
根据所述共识算法和所述候选区块生成规则,生成候选区块,其中,所述候选区块生成规则具体为:
若所述共识算法为竞争性共识算法,则对非提案节点的区块进行验证,将验证通过的区块作为候选区块;
若所述共识算法为合作性共识算法,判断非提案节点是否为当前轮次提案者发出的,若是,则对非提案节点的区块进行验证,并将验证通过的区块作为候选区块。
7.根据权利要求2所述的可组装的共识方法,其特征在于,所述根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块,包括:
根据所述预设共识规则和当前轮次待组装的共识算法,将所述提案区块或所述候选区块作为目标提案区块进行共识,所述预设共识规则具体为:
若所述共识算法为竞争性共识算法,则对所述目标提案区块进行有效性验证,若验证通过,得到共识后的确认区块;
若所述共识算法为合作性共识算法,则验证所述目标提案区块的合法性,并对合法性验证通过的目标提案区块进行投票,若投票结果达到预设共识条件,得到共识后的确认区块。
8.一种可组装的共识系统,其特征在于,包括:
提案节点选举模块,用于根据区块共识当前轮次的区块信号和提案节点选举规则,确定当前轮次待进行区块共识的提案节点和候选节点,并获取所述提案节点的提案通知和所述候选节点的提案区块信息;
提案模块,用于根据所述提案通知和提案区块生成规则,生成提案区块;
监听提案模块,用于根据所述提案区块信息和候选区块生成规则,生成候选区块;
共识模块,用于根据预设共识规则,对所述提案区块或所述候选区块进行共识,得到共识后的确认区块;
提交模块,用于对所述确认区块进行保存,并生成新区块信号,以进行下一轮次的区块共识;
其中,所述提案节点选举规则、所述提案区块生成规则、所述选区块生成规则和所述预设共识规则是根据区块共识当前轮次的共识算法确定的。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述可组装的共识方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述可组装的共识方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011323282.0A CN112511312B (zh) | 2020-11-23 | 2020-11-23 | 一种可组装的共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011323282.0A CN112511312B (zh) | 2020-11-23 | 2020-11-23 | 一种可组装的共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511312A true CN112511312A (zh) | 2021-03-16 |
CN112511312B CN112511312B (zh) | 2023-10-17 |
Family
ID=74959617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011323282.0A Active CN112511312B (zh) | 2020-11-23 | 2020-11-23 | 一种可组装的共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511312B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989422A (zh) * | 2021-04-01 | 2021-06-18 | 北京微芯感知科技有限公司 | 区块链系统装配方法、装置、电子设备和存储介质 |
CN113452747A (zh) * | 2021-05-13 | 2021-09-28 | 西安电子科技大学 | 可扩展和安全的共识方法、系统、存储介质、智能终端 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667614A (zh) * | 2018-04-19 | 2018-10-16 | 上海分布信息科技有限公司 | 一种拜占庭容错方法及其实现系统 |
WO2019024500A1 (zh) * | 2017-07-31 | 2019-02-07 | 众安信息技术服务有限公司 | 用于配置局部共识的方法和装置及计算机可读存储介质 |
CN109639837A (zh) * | 2019-01-31 | 2019-04-16 | 东南大学 | 基于信任机制的区块链DPoS共识方法 |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110517141A (zh) * | 2019-08-27 | 2019-11-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及装置 |
CN110674217A (zh) * | 2019-09-23 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、设备和介质 |
CN110875893A (zh) * | 2018-08-29 | 2020-03-10 | 深圳启元信息服务有限公司 | 共识验证方法、校验节点及区块链系统 |
CN111131209A (zh) * | 2019-12-16 | 2020-05-08 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
CN111292098A (zh) * | 2020-01-15 | 2020-06-16 | 北京航空航天大学 | 一种面向可信服务供应链的区块链共识机制构建方法 |
CN111427957A (zh) * | 2020-03-26 | 2020-07-17 | 财付通支付科技有限公司 | 区块链投票信息校验方法、装置、设备以及存储介质 |
CN111461887A (zh) * | 2020-04-01 | 2020-07-28 | 杭州溪塔科技有限公司 | 一种区块链的共识处理方法、装置和电子设备 |
CN111654395A (zh) * | 2020-06-01 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 投票信息处理方法、装置、设备以及存储介质 |
CN111698315A (zh) * | 2020-06-09 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 针对区块的数据处理方法、数据处理装置及计算机设备 |
CN111767347A (zh) * | 2020-07-27 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 共识算法的切换方法、装置、节点设备及存储介质 |
CN111930840A (zh) * | 2020-08-06 | 2020-11-13 | 平安科技(深圳)有限公司 | 基于Paxos算法的共识机制优化方法、系统以及区块链网络 |
-
2020
- 2020-11-23 CN CN202011323282.0A patent/CN112511312B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019024500A1 (zh) * | 2017-07-31 | 2019-02-07 | 众安信息技术服务有限公司 | 用于配置局部共识的方法和装置及计算机可读存储介质 |
CN108667614A (zh) * | 2018-04-19 | 2018-10-16 | 上海分布信息科技有限公司 | 一种拜占庭容错方法及其实现系统 |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110875893A (zh) * | 2018-08-29 | 2020-03-10 | 深圳启元信息服务有限公司 | 共识验证方法、校验节点及区块链系统 |
CN109639837A (zh) * | 2019-01-31 | 2019-04-16 | 东南大学 | 基于信任机制的区块链DPoS共识方法 |
CN110517141A (zh) * | 2019-08-27 | 2019-11-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及装置 |
CN110674217A (zh) * | 2019-09-23 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、设备和介质 |
CN111131209A (zh) * | 2019-12-16 | 2020-05-08 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
CN111292098A (zh) * | 2020-01-15 | 2020-06-16 | 北京航空航天大学 | 一种面向可信服务供应链的区块链共识机制构建方法 |
CN111427957A (zh) * | 2020-03-26 | 2020-07-17 | 财付通支付科技有限公司 | 区块链投票信息校验方法、装置、设备以及存储介质 |
CN111461887A (zh) * | 2020-04-01 | 2020-07-28 | 杭州溪塔科技有限公司 | 一种区块链的共识处理方法、装置和电子设备 |
CN111654395A (zh) * | 2020-06-01 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 投票信息处理方法、装置、设备以及存储介质 |
CN111698315A (zh) * | 2020-06-09 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 针对区块的数据处理方法、数据处理装置及计算机设备 |
CN111767347A (zh) * | 2020-07-27 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 共识算法的切换方法、装置、节点设备及存储介质 |
CN111930840A (zh) * | 2020-08-06 | 2020-11-13 | 平安科技(深圳)有限公司 | 基于Paxos算法的共识机制优化方法、系统以及区块链网络 |
Non-Patent Citations (3)
Title |
---|
YINGHUI LUO等: "A New Election Algorithm for DPos Consensus Mechanism in Blockchain", 《2018 7TH INTERNATIONAL CONFERENCE ON DIGITAL HOME (ICDH)》 * |
张思贤;文捷;: "一种基于分组的区块链共识算法", 计算机应用与软件, no. 03 * |
潘吉飞等: "区块链技术对人工智能的影响", 《计算机科学》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989422A (zh) * | 2021-04-01 | 2021-06-18 | 北京微芯感知科技有限公司 | 区块链系统装配方法、装置、电子设备和存储介质 |
CN113452747A (zh) * | 2021-05-13 | 2021-09-28 | 西安电子科技大学 | 可扩展和安全的共识方法、系统、存储介质、智能终端 |
CN113452747B (zh) * | 2021-05-13 | 2022-12-16 | 西安电子科技大学 | 可扩展和安全的共识方法、系统、存储介质、智能终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112511312B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034813B (zh) | 代表节点设备选举方法、装置、计算机设备及存储介质 | |
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
CN112492016B (zh) | 一种跨进程可扩展的共识方法及系统 | |
KR102578019B1 (ko) | 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체 | |
EP4053711A1 (en) | Consensus method for blockchain, and consensus node, electronic device and storage medium | |
CN110569251A (zh) | 一种数据处理方法、相关设备及计算机可读存储介质 | |
JP2021521555A (ja) | ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード | |
CN108509615B (zh) | 基于抽签机制的共识建立方法、装置及可读存储介质 | |
CN110163755B (zh) | 基于区块链的数据压缩、查询方法及装置和电子设备 | |
CN112866282B (zh) | 区块链中时间信息验证方法和装置 | |
CN110400217B (zh) | 智能合约的规则变更处理方法及装置 | |
CN107153646B (zh) | 一种数据处理方法和设备 | |
CN112511312A (zh) | 一种可组装的共识方法及系统 | |
CN110597918A (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
CN111556115A (zh) | 一种基于区块链的数据处理方法、装置、设备及存储介质 | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
CN110930254A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN110661656A (zh) | 一种区块链快速共识方法及装置 | |
CN114090376A (zh) | 一种基于联盟链系统的业务处理方法及装置 | |
EP3805960A1 (en) | Methods and systems for identifying software product installation instances | |
CN112272114A (zh) | 跨区块链网络发送信息的方法、装置、设备及存储介质 | |
CN113486118A (zh) | 共识节点选取方法及装置 | |
CN112037062B (zh) | 交易共识方法、装置、电子设备及可读存储介质 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN112685769A (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 |