CN114390068A - 区块链共识方法及计算机可读存储介质 - Google Patents
区块链共识方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114390068A CN114390068A CN202210001895.5A CN202210001895A CN114390068A CN 114390068 A CN114390068 A CN 114390068A CN 202210001895 A CN202210001895 A CN 202210001895A CN 114390068 A CN114390068 A CN 114390068A
- Authority
- CN
- China
- Prior art keywords
- consensus
- nodes
- node
- pbft
- poa
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000007246 mechanism Effects 0.000 claims abstract description 42
- 238000012795 verification Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000013475 authorization Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
Classifications
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种区块链共识方法及计算机可读存储介质,其中区块链共识方法包括:通过POA选举从授权节点中确定出多个共识节点;利用预置的优先级算法从多个共识节点中确定出PBFT主节点,并将其余的共识节点作为PBFT验证节点;利用PBFT主节点以及PBFT验证节点进行PBFT共识运算;若达成共识,则将共识结果广播到区块链的所有节点,以进行账本状态同步形成新的区块。本发明的方案将PBFT主从节点的拜占庭容错共识机制与POA的共识相结合,避免POA共识机制中心化严重所带来的恶意攻击。
Description
技术领域
本发明涉及网络信息技术,特别是涉及一种区块链共识方法及计算机可读存储介质。
背景技术
POA(Proof of Authority,授权证明机制)是由一组授权节点来负责新区块的产生和区块验证,按授权节点的地址升序排序后,按顺序轮流获得记账权。POA的节点包括普通节点(node)以及授权节点(signer),其中普通节点没有生成区块的权利。授权节点负责产生区块(block)。
进行记账的授权节点称为主节点(或称为矿工)。在生成区块的过程中,主节点是网络上的明确中心,其他节点无法对主节点的行为进行监管。如果主节点自身对网络发起恶意进攻,则很容易成功。同时由于联盟链进行身份认证,验证节点的信息是公开的,很容易遭到外部的网络攻击,造成单点失效或者拜占庭问题。
因此,POA作为一种中心化明显的共识机制,缺乏抵抗恶意攻击的安全性,中心化所带来的安全风险需要解决。
发明内容
本发明的一个目的是要提供一种提高区块链共识方法的安全性。
本发明的一个进一步目的是结合PBFT共识弱化中心节点的权利,避免中心节点的恶意攻击。
根据本发明的一个方面,提供了一种区块链共识方法,包括:
通过POA选举从授权节点中确定出多个共识节点;
利用预置的优先级算法从多个共识节点中确定出PBFT主节点,并将其余的共识节点作为PBFT验证节点;
利用PBFT主节点以及PBFT验证节点进行PBFT共识运算;
若达成共识,则将共识结果广播到区块链的所有节点,以进行账本状态同步形成新的区块。
可选地,在利用PBFT主节点以及PBFT验证节点进行PBFT共识运算的步骤之后,如果未能达成共识,进行新一轮POA选举,重新确定出多个共识节点。
可选地,在进行新一轮POA选举的步骤之后还包括:
对PBFT主节点在共识运算中的行为进行识别,判断PBFT主节点为恶意节点或宕机节点;
若PBFT主节点为恶意节点,则在POA委员会集合中删除PBFT主节点的地址;
若PBFT主节点为宕机节点,则在POA委员会集合中保留PBFT主节点的地址。
可选地,POA委员会集合用于保存授权节点的地址,授权节点按照地址大小排列,并且POA委员会集合存储于区块头的附加字段中。
可选地,利用预置的优先级算法从多个共识节点中确定出PBFT主节点的步骤包括:
获取多个共识节点在POA委员会集合中的序号以及POA委员会集合中授权节点的总数;
使用待产生区块的区块号对授权节点的总数进行取余操作,得到余数;
根据序号与余数的相对大小确定出PBFT主节点。
可选地上述区块链共识方法还包括:
获取新增节点通过API(Application Programming Interface,应用程序接口)发起的加入提议,提议通过复用区块头的提名节点地址以及提名分类字段进行广播;
由授权节点对提议进行投票,在投票赞成比例超过设定比例阈值后,将新增节点加入授权节点。
可选地,在通过POA选举确定出多个共识节点的步骤之前还包括:
对授权节点的数量进行监听;
在授权节点的数量小于设定数量阈值的情况下,按照POA方式进行共识计算;
在授权节点超出设定数量阈值后,触发共识切换流程。
可选地,共识切换流程包括:
计算参与下一区块共识的授权节点,记为参与节点;
判断参与节点是否包括当前以POA方式进行共识计算的主节点;
若是,重新计算参与节点,直至参与节点不包括主节点;
向参与节点发送切换指令,以使参与节点切换共识机制。
可选地,在参与节点切换共识机制之后,等待主节点完成区块上链后,使全部授权节点切换共识机制。
特别地,根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的区块链共识方法。
本发明的区块链共识方法,对现有的POA共识算法进行改进,通过POA选举从授权节点中确定出多个共识节点,利用预置的优先级算法从共识节点中确定出PBFT(PracticalByzantine Fault Tolerance,实用拜占庭容错)主节点。利用PBFT共识机制这一弱中心化的共识机制本身对抵抗拜占庭问题的天然优势,削弱主节点为恶的风此案,实现相对的各节点的平等地位。也即本发明的区块链共识方法,在生成区块时,将PBFT主从节点的拜占庭容错共识机制与POA的共识相结合,通过PBFT三阶段一致性协议改进现有POA共识机制,避免POA共识机制中心化严重所带来的恶意攻击。
进一步地,本发明的区块链共识方法,还设计了一套将共识机制从传统POA切换至PBFT与POA相结合的改进共识机制的流程。在授权节点超出设定数量阈值后,触发共识切换流程,将参与下一区块共识的授权节点快速切换至PBFT与POA相结合的改进共识机制,一方面不影响正在进行的区块共识,另一方面可以提高下一区块的出块效率。
更进一步地,本发明的区块链共识方法,适用于联盟链,由授权节点统筹控制,在保证区块生成效率的前提下,提高了安全性。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的区块链共识方法的示意图;
图2是根据本发明一个实施例的区块链共识方法中共识流程的示意图;
图3是根据本发明一个实施例的区块链共识方法中切换共识机制的流程示意图;以及
图4是根据本发明一个实施例的机器可读存储介质的示意框图。
具体实施方式
图1是根据本发明一个实施例的区块链共识方法的示意图,该区块链共识方法一般性地可以包括:
步骤S102,通过POA选举从授权节点中确定出多个共识节点。授权节点的地址存储于区块头(header)的附加字段(extra)中。例如区块头的附加字段中可以保存POA委员会集合(Signers),该POA委员会集合用于保存授权节点的地址,其中,授权节点按照地址大小排列。
在创始区块中会指定一组初始授权节点。后续可能会加入或者删除授权节点,因此不同高度的区块中保存的授权节点可能存在区别。
步骤S104,利用预置的优先级算法从多个共识节点中确定出PBFT主节点,并将其余的共识节点作为PBFT验证节点。优先级算法对多个共识节点进行优先级排序,将优先级最高的共识节点作为PBFT主节点。本实施例中可以采用使用4个共识节点,也即确定出一个PBFT主节点,三个PBFT验证节点。
一种具体优先级算法为:获取多个共识节点在POA委员会集合中的序号以及POA委员会集合中授权节点的总数;使用待产生区块的区块号对授权节点的总数进行取余操作,得到余数;根据序号与余数的相对大小确定出PBFT主节点。例如待产生区块的区块号记为Number,Signers为委员会集合,并根据授权节点的地址进行升序排列,则(len(signers)为授权节点的总数;共识节点在POA委员会集合中的序号(或称为位置)记为Offset。进行取余操作的公式为:number%uint64(len(signers))。
如果(number%uint64(len(signers)))==uint64(offset),也即序号与余数相等,则该授权节点的优先级最高,可以授权节点的优先级可以标识为header.Difficulty=1,该节点地址自动映射到PBFT1的地址中充当本轮PBFT共识的主节点;(number%uint64(len(signers)))==uint64(offset)+1、(number%uint64(len(signers)))==uint64(offset)+2、(number%uint64(len(signers)))==uint64(offset)+3的三个节点作为PBFT验证节点,其优先级记为header.Difficulty=2,这三个节点中映射到PBFT节点地址中的三个节点充当本轮PBFT验证节点,进行PBFT的二次共识。
本实施例中创世区块预设智能合约,利用该智能合约上述实现优先级算法,确定PBFT主从节点(主节点、验证节点)。由于所有节点都必须按照智能合约进行执行,通过计算得出结果一致的四个PBFT主从节点地址,在生成新区块时,通过算法计算出的四个PBFT主从节点自动进行拜占庭容错共识机制。而其他节点等待二次共识结果,进而同步区块数据。
步骤S106,利用PBFT主节点以及PBFT验证节点进行PBFT共识运算。PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。PBFT共同维护一个状态,所有节点采取的行动一致。为此,PBFT需要运行三类基本协议,包括一致性协议、检查点协议和视图更换协议。我们主要关注支持系统日常运行的一致性协议。一致性协议至少包含若干个阶段:请求(request)、序号分配(pre-prepare)、相互交互(prepare),序号确认(commit)、响应(reply)。每一个客户端的请求需要经过5个阶段,通过采用两次两两交互的方式在节点达成一致之后再执行客户端的请求。由于客户端不能从节点获得任何节点运行状态的信息,PBFT中主节点是否发生错误只能由节点监测。
PBFT共识运算的基本过程包括:客户端发送请求(request),激活PBFT主节点的服务操作。当PBFT主节点接收请求后,启动三阶段的协议以向各PBFT验证节点广播请求。客户端等待来自不同节点的响应,若有超过预设数量的响应相同,则该响应即为运算的结果。
三阶段的协议包括:序号分配阶段,PBFT主节点给请求赋值一个序列号n,广播序号分配消息和客户端的请求消息m,并将构造pre-prepare消息给各PBFT验证节点;交互阶段,PBFT验证节点接收pre-prepare消息,向其他节点广播prepare消息;序号确认阶段,各节点对视图内的请求和次序进行验证后,广播commit消息,执行收到的客户端的请求并给客户端以响应。三阶段协议增加了commit阶段,保证了最终不会提交和已经commit的消息冲突的消息,即使存在恶意主节点的情况下,也既能保证算法的活性,又能保证算法的安全性。
步骤S108,若达成共识,则将共识结果广播到区块链的所有节点,以进行账本状态同步形成新的区块。
如果未能达成共识,进行新一轮POA选举,重新确定出多个共识节点。也即系统发起提案进行重新一轮的POA,选举出新的四个主次节点进行PBFT共识。在进行新一轮POA选举的步骤之后还可以包括:对PBFT主节点在共识运算中的行为进行识别,判断PBFT主节点为恶意节点或宕机节点;若PBFT主节点为恶意节点,则在POA委员会集合中删除PBFT主节点的地址;若PBFT主节点为宕机节点,则在POA委员会集合中保留PBFT主节点的地址。也即对于恶意节点,则发起移除该节点的投票权,将该节点地址从Extra字段中删除,若为宕机节点则维持现状。
本实施例的区块链共识方法还对授权节点的新增过程进行改进,如果有新增节点需要加入,系统可以获取新增节点通过API发起的加入提议,提议通过复用区块头的提名节点地址(Coinbase)以及提名分类字段(Nonce)进行广播;由授权节点对提议进行投票,在投票赞成比例超过设定比例阈值后,将新增节点加入授权节点。比例阈值可以调整,例如设置为50%、60%或其他数值。
区块的区块头包括以下字段:Coinbase,用于记录被提名的节点的节点地址;Nonce,用于标识提名的分类,包括添加、删除等;Extra,用于存储POA委员会集合;Difficulty,用于标识节点优先级。新增节点需要加入时,可以通过Coinbase和Nonce("0xffffffffffffffff")字段广播给其他节点。授权授权节点对新增节点进行“加入”投票,如果赞成票达到signers总数(委员会内节点总数)的50%,表示同意该新增节点加入。
相类似地,在剔除某一授权节点时,同样由授权节点进行投票,若赞成票比例超过设定比例,则同意该授权节点删除。
图2是根据本发明一个实施例的区块链共识方法中共识流程的示意图。该共识过程在创世区块中指定一组初始授权节点,初始授权节点的创世块Extra字段中。启动系统后,初始授权节点被激活,该组节点开始对生成的区块进行签名并广播。
后续的区块共识流程包括:
步骤S201,根据系统内置优先级算法,在每个区块高度中选举出四个节点作为PBFT节点211,其中优先级最高的节点作为本区块的PBFT主节点PBFT1,其余三个作为PBFT的验证节点PBFT2、PBFT3、PBFT4。系统中创世区块内置PBFT共识映射算法,选举中优先级最高的节点地址映射到PBFT1中充当主节点,其余节点根据优先级算法中的优先级分别映射到PBFT2、PBFT3、PBFT4中;PBFT节点211进行三阶段一致性共识。如果PBFT1主节点出现问题导致共识无法达成,系统首先发起提案进行重新一轮的POA选举出新的四个主次节点进行PBFT共识。
优先级计算公式为:(number%uint64(len(signers)))==uint64(offset),则优先级最高header.Difficulty=1,该节点地址自动映射到PBFT1的地址中充当本轮PBFT共识的主节点;(number%uint64(len(signers)))==uint64(offset)+1、(number%uint64(len(signers)))==uint64(offset)+2及(number%uint64(len(signers)))==uint64(offset)+3的三个节点header.Difficulty=2,同时这三个节点中映射到PBFT节点地址中的三个节点充当本轮PBFT从节点进行二次共识。在上述公式中Number为要生成的区块的块号;Signers为委员会集合,并根据节点的地址进行升序排列,Offset为节点在Signers集合中的位置;
步骤S202,共识结果广播到所有节点进行本地账本213状态同步。
步骤S203,在因PBFT1主节点出现问题无法达成共识的情况下,根据主节点行为判断是否为恶意节点或宕机节点;步骤S203,若为恶意节点发起移除该节点的投票,并通过共识投票将该节点地址从Extra字段中删除,也即从授权节点211中移除PBFT1节点,若为宕机节点则维持现状。
步骤S204,需要加入一个新增节点时,新增节点节点通过API接口发起一个提议,该提议通过复用区块头Coinbase(新节点地址)和Nonce("0xffffffffffffffff")字段广播给其他节点。所有授权节点211对该新增节点进行“加入”投票,如果赞成票超过授权节点的50%(具体比例可以进行调整),表示新增节点同意加入。
上述过程中,在创世区块中会预设智能合约,确定PBFT主从节点。所有节点都必须按照智能合约进行执行,通过计算得出结果一致的四个PBFT主从节点地址,在生成新区块时,通过算法计算出的四个PBFT主从节点自动进行拜占庭容错共识机制。而其他节点等待二次共识结果,进而同步区块数据。
PBFT利用较少的节点(例如上述实施例中的4个节点),运行非常高效,可扩展,利用三阶段的共识,解决了POA共识的恶意节点问题,也即本实施例的方法利用PBFT的弱中心化共识架构改进了现有POA共识机制。
本实施例的方法还提供了一种从传统POA共识切换至上述POA与PBFT融合共识机制的流程。在执行上述POA与PBFT融合共识机制的流程之前,也即在通过POA选举确定出多个共识节点的步骤之前还可以包括:对授权节点的数量进行监听;在授权节点的数量小于设定数量阈值的情况下,按照POA方式进行共识计算;在授权节点超出设定数量阈值后,触发共识切换流程。
共识切换流程具体可以包括:计算参与下一区块共识的授权节点,记为参与节点;判断参与节点是否包括当前以POA方式进行共识计算的主节点;若是,重新计算参与节点,直至参与节点不包括主节点;向参与节点发送切换指令,以使参与节点切换共识机制。在参与节点切换共识机制之后,可以等待主节点完成区块上链后,使全部授权节点切换共识机制。
图3是根据本发明一个实施例的区块链共识方法中切换共识机制的流程示意图。该切换共识机制的过程包括:
步骤S302,对授权节点的数量进行监听;
步骤S304,判断授权节点的数量是否超出设定数量阈值;
步骤S306,在授权节点超出设定数量阈值后,智能合约向授权节点发送共识机制切换触发指令,指示从下一区块开始共识机制切换为POA与PBFT融合共识机制;
步骤S308,根据优先级算法计算下一区块参与PBFT共识的节点,也即计算参与下一区块共识的授权节点,得到参与节点;
步骤S310,判断计算得出的参与节点是否在本轮区块制定中作为POA共识的主节点,若是,则重新返回执行步骤S308,重新计算出下一区块参与PBFT共识的节点,直至计算出参与节点均不作为当前区块进行POA共识的主节点;
步骤S312,向下一区块参与PBFT共识的节点,也即参与节点发出共识切换指令;
步骤S314,下一区块参与PBFT共识的节点收到指令后,除了接收POA共识机制发送的打包区块并上链的模块之外,其他模块迅速切换成为PBFT共识机制模块,从而避免下一区块出块效率;
步骤S316,当前区块上链之后再将未切换为PBFT共识机制的模块全部切换为PBFT共识机制,其他授权节点在当前区块上链之后,将共识机制整体切换为PBFT共识机制,完成POA共识机制向POA、PBFT融合共识机制的切换。
上述将共识机制从传统POA切换至PBFT与POA相结合的改进共识机制的流程,在授权节点超出设定数量阈值后,触发共识切换流程,将参与下一区块共识的授权节点快速切换至PBFT与POA相结合的改进共识机制,一方面不影响正在进行的区块共识,另一方面可以提高下一区块的出块效率。
本实施例还提供了一种计算机可读存储介质。图4是根据本发明一个实施例的机器可读存储介质40的示意框图。该机器可读存储介质40上存储有机器可执行程序410,机器可执行程序410被处理器执行时实现上述任一种的区块链共识方法。
本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质40包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
具备上述可读存储介质40的计算设备可以通过网络互联,其可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等,从而可以通过各种网络连接到其他计算设备。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种区块链共识方法,包括:
通过POA选举从授权节点中确定出多个共识节点;
利用预置的优先级算法从所述多个共识节点中确定出PBFT主节点,并将其余的共识节点作为PBFT验证节点;
利用所述PBFT主节点以及所述PBFT验证节点进行PBFT共识运算;
若达成共识,则将共识结果广播到区块链的所有节点,以进行账本状态同步形成新的区块。
2.根据权利要求1所述的区块链共识方法,其中,
在所述利用所述PBFT主节点以及所述PBFT验证节点进行PBFT共识运算的步骤之后,如果未能达成共识,进行新一轮POA选举,重新确定出多个共识节点。
3.根据权利要求2所述的区块链共识方法,其中,在进行新一轮POA选举的步骤之后还包括:
对所述PBFT主节点在共识运算中的行为进行识别,判断所述PBFT主节点为恶意节点或宕机节点;
若所述PBFT主节点为恶意节点,则在POA委员会集合中删除所述PBFT主节点的地址;
若所述PBFT主节点为宕机节点,则在POA委员会集合中保留所述PBFT主节点的地址。
4.根据权利要求3所述的区块链共识方法,其中,
所述POA集合用于保存所述授权节点的地址,所述授权节点按照地址大小排列,并且所述POA委员会集合存储于区块头的附加字段中。
5.根据权利要求4所述的区块链共识方法,其中,利用预置的优先级算法从所述多个共识节点中确定出PBFT主节点的步骤包括:
获取所述多个共识节点在所述POA委员会集合中的序号以及所述POA委员会集合中授权节点的总数;
使用待产生区块的区块号对所述授权节点的总数进行取余操作,得到余数;
根据所述序号与所述所述余数的相对大小确定出所述PBFT主节点。
6.根据权利要求1所述的区块链共识方法,还包括:
获取新增节点通过API发起的加入提议,所述提议通过复用区块头的提名节点地址以及提名分类字段进行广播;
由所述授权节点对所述提议进行投票,在投票赞成比例超过设定比例阈值后,将所述新增节点加入所述授权节点。
7.根据权利要求1所述的区块链共识方法,其中在所述通过POA选举确定出多个共识节点的步骤之前还包括:
对所述授权节点的数量进行监听;
在所述授权节点的数量小于设定数量阈值的情况下,按照POA方式进行共识计算;
在所述授权节点超出设定数量阈值后,触发共识切换流程。
8.根据权利要求7所述的区块链共识方法,其中所述共识切换流程包括:
计算参与下一区块共识的授权节点,记为参与节点;
判断所述参与节点是否包括当前以POA方式进行共识计算的主节点;
若是,重新计算参与节点,直至参与节点不包括所述主节点;
向所述参与节点发送切换指令,以使所述参与节点切换共识机制。
9.根据权利要求8所述的区块链共识方法,其中
在所述参与节点切换共识机制之后,等待所述主节点完成区块上链后,使全部授权节点切换共识机制。
10.一种计算机可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至9任一项所述的区块链共识方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210001895.5A CN114390068A (zh) | 2022-01-04 | 2022-01-04 | 区块链共识方法及计算机可读存储介质 |
PCT/CN2022/142357 WO2023131002A1 (zh) | 2022-01-04 | 2022-12-27 | 区块链共识方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210001895.5A CN114390068A (zh) | 2022-01-04 | 2022-01-04 | 区块链共识方法及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114390068A true CN114390068A (zh) | 2022-04-22 |
Family
ID=81200731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210001895.5A Pending CN114390068A (zh) | 2022-01-04 | 2022-01-04 | 区块链共识方法及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114390068A (zh) |
WO (1) | WO2023131002A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115567543A (zh) * | 2022-08-31 | 2023-01-03 | 云南电网有限责任公司信息中心 | 基于区块链的边缘侧交易数据的共识方法、装置及设备 |
CN115632800A (zh) * | 2022-12-22 | 2023-01-20 | 广东省电信规划设计院有限公司 | 基于区块链共识的物联网源端数据存储方法及装置 |
WO2023131002A1 (zh) * | 2022-01-04 | 2023-07-13 | 青岛海尔电冰箱有限公司 | 区块链共识方法及计算机可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117082075B (zh) * | 2023-10-13 | 2024-01-26 | 德德市界(深圳)科技有限公司 | 一种基于权重分配计算场景的区块链共识机制处理系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201810707D0 (en) * | 2018-06-29 | 2018-08-15 | Bedrock Capital Ltd | Gospel L |
CN110796547A (zh) * | 2019-10-30 | 2020-02-14 | 桂林电子科技大学 | 一种基于联盟区块链的改进的实用拜占庭容错系统 |
CN113420039B (zh) * | 2021-08-23 | 2021-11-16 | 中国电力科学研究院有限公司 | 一种调控云平台的模型管理方法、系统、设备及介质 |
CN113676355B (zh) * | 2021-08-27 | 2024-04-23 | 浙商银行股份有限公司 | 一种区块链多层级组网方法、设备及存储介质 |
CN114390068A (zh) * | 2022-01-04 | 2022-04-22 | 青岛海尔电冰箱有限公司 | 区块链共识方法及计算机可读存储介质 |
-
2022
- 2022-01-04 CN CN202210001895.5A patent/CN114390068A/zh active Pending
- 2022-12-27 WO PCT/CN2022/142357 patent/WO2023131002A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023131002A1 (zh) * | 2022-01-04 | 2023-07-13 | 青岛海尔电冰箱有限公司 | 区块链共识方法及计算机可读存储介质 |
CN115567543A (zh) * | 2022-08-31 | 2023-01-03 | 云南电网有限责任公司信息中心 | 基于区块链的边缘侧交易数据的共识方法、装置及设备 |
CN115632800A (zh) * | 2022-12-22 | 2023-01-20 | 广东省电信规划设计院有限公司 | 基于区块链共识的物联网源端数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023131002A1 (zh) | 2023-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114390068A (zh) | 区块链共识方法及计算机可读存储介质 | |
CN109886681B (zh) | 区块链共识方法及共识系统 | |
CN110784346B (zh) | 一种基于信誉值的pbft共识系统及方法 | |
CN107105032B (zh) | 节点设备运行方法及节点设备 | |
CN112235379B (zh) | 一种区块链底层共享存储方法 | |
CN113342902B (zh) | 区块链网络的数据处理方法、装置、计算机设备和介质 | |
CN110796547A (zh) | 一种基于联盟区块链的改进的实用拜占庭容错系统 | |
CN107124305B (zh) | 节点设备运行方法及节点设备 | |
CN112118239B (zh) | 区块链共识方法及装置、电子设备、存储介质 | |
CN113141414B (zh) | 一种cnfs协议中区块链节点的分组多链异步共识方法 | |
EP3675416B1 (en) | Consensus process recovery method and related nodes | |
CN110909379B (zh) | 一种存储集群的权限确定方法、装置、设备及存储介质 | |
CN111865608B (zh) | 一种应用于联盟链的共识机制运行方法 | |
CN110830608B (zh) | 一种全局唯一标识符生成方法、装置、设备及存储介质 | |
CN110673914A (zh) | 一种区块链共识的视图切换方法及区块链系统 | |
CN109660545B (zh) | 一种联盟链共识方法及计算机存储介质 | |
CN111935207A (zh) | 基于改进型c4.5算法区块链系统共识方法 | |
CN110460536B (zh) | 用于区块链的数据处理方法和装置、介质和电子设备 | |
CN113132401A (zh) | 基于区块链的数据处理方法和装置 | |
CN112732799B (zh) | 查询Fabric区块链账本数据的方法和装置 | |
CN113259326A (zh) | 基于联盟链网络的共识优化方法、装置和计算机设备 | |
CN116232893A (zh) | 分布式系统的共识方法、装置、电子设备及存储介质 | |
CN114978553A (zh) | 一种联盟链密码算法切换方法、装置及联盟链系统 | |
CN115051808A (zh) | 基于ecdsa签名算法的跨链交易验证系统和方法 | |
CN114362930A (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 |