一种共识方法、区块链节点技术

技术编号:39040852 阅读:13 留言:0更新日期:2023-10-10 11:53
本说明书一个或多个实施例提供一种共识方法、区块链节点,该方法应用于区块链系统中的任一目标共识节点,包括:接收由区块链系统中的共识节点广播发送的第一消息或者第二消息;其中,第一消息包含共识节点提议的交易列表;第二消息用于声明发送第二消息的共识节点在本轮共识中不提议交易列表;确定区块链系统中符合预设条件的共识节点的数量;其中,预设条件包括共识节点提议的交易列表已共识通过;或者,已接收到共识节点发送的第二消息;如果区块链系统中符合预设条件的共识节点的数量达到预设阈值,则广播第三消息至其它共识节点;其中,第三消息用于声明不再接受符合预设条件的共识节点以外的其它共识节点提议的交易列表。易列表。易列表。

【技术实现步骤摘要】
一种共识方法、区块链节点


[0001]本说明书实施例属于区块链
,尤其涉及一种共识方法、区块链节点。

技术介绍

[0002]区块链系统中,不同参与方通过部署的节点(Node)可以建立一个分布式的区块链网络。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,并将交易及执行结果打包生成区块。
[0003]当前主流的共识协议包括:工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,蜜獾拜占庭容错(HoneyBadgerBFT)算法等。
[0004]其中,以上列举的各种共识协议中,既包括异步共识协议,也包括非异步共识协议。例如,PBFT协议就属于半同步(partial synchronous)协议,而HoneyBadgerBFT算法属于一种异步(asynchronous)协议。
[0005]由于异步协议适用于异步网络,也就是这个网络中节点间的消息可以被任意延迟,但最终会达到,因此目前异步共识协议相对于非异步共识协议而言应用更加广泛。

技术实现思路

[0006]本说明书提出一种区块链系统中的共识方法,应用于所述区块链系统中的任一目标共识节点,包括:
[0007]接收由所述区块链系统中的共识节点广播发送的第一消息或者第二消息;其中,所述第一消息包含所述共识节点提议的交易列表;所述第二消息用于声明发送所述第二消息的共识节点在本轮共识中不提议交易列表;
[0008]确定所述区块链系统中符合预设条件的共识节点的数量;其中,所述预设条件包括所述共识节点提议的交易列表已共识通过;或者,已接收到所述共识节点发送的所述第二消息;
[0009]如果所述区块链系统中符合所述预设条件的共识节点的数量未达到预设阈值,对接收到的所述第一消息中包含的所述交易列表进行共识处理;如果所述区块链系统中符合所述预设条件的共识节点的数量达到所述预设阈值,则广播第三消息至其它共识节点;其中,所述第三消息用于声明不再接受符合所述预设条件的共识节点以外的其它共识节点提议的交易列表。
[0010]本说明书还提出一种区块链系统,包括:
[0011]接收由所述区块链系统中的共识节点广播发送的第一消息或者第二消息;其中,所述第一消息包含所述共识节点提议的交易列表;所述第二消息用于指示发送所述第二消息的共识节点在本轮共识中不提议交易列表;
[0012]确定所述区块链系统中符合预设条件的共识节点的数量;其中,所述预设条件包括所述共识节点提议的交易列表已共识通过;或者,已接收到所述共识节点发送的所述第二消息;
[0013]如果所述区块链系统中符合所述预设条件的共识节点的数量未达到预设阈值,对接收到的本轮共识中提议的交易列表进行共识处理;反之,如果所述区块链系统中符合所述预设条件的共识节点的数量达到所述预设阈值,则广播第三消息至其它共识节点;其中,所述第三消息用于声明不再接受所述预设条件的共识节点以外的其它共识节点提议的交易列表。
[0014]上述实施例中,通过在共识协议的交易提议阶段,允许让共识节点向其它共识节点广播发送一个第二消息,来声明在本轮共识中自身没有需要提议的交易,使得那些没有交易需要提议的共识节点在交易提议阶段可以不再需要提议空的提案,从而可以避免算力和带宽等资源的浪费。而且,由于在一轮共识中,已接收到其发送的所述第二消息的共识节点的数量,也将会作为共识协议的pass机制的触发条件,因此通过这种方式,可以让那些没有交易需要提议的共识节点不再提议空的提案的情况下,仍然能够继续推动针对共识提议的pass机制,而不影响该共识协议的活性。
附图说明
[0015]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本说明书一实施例中实用拜占庭容错算法常规阶段的示意图;
[0017]图2是本说明书一实施例中实用拜占庭容错算法视图切换阶段的示意图;
[0018]图3是本说明书一实施例中蜜獾拜占庭容错算法的示意图;
[0019]图4是本说明书一实施例中的一种区块链系统中的共识方法的流程图;
[0020]图5是本说明书一实施例中共识算法的示意图;
[0021]图6是本说明书一实施例中共识算法的示意图;
[0022]图7是本说明书一实施例中共识算法的示意图;
[0023]图8是本说明书一实施例中共识算法的示意图。
具体实施方式
[0024]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0025]目前主流的共识协议中,通常可以包括异步共识协议和非异步共识协议两类。
[0026]例如,PBFT协议就属于半同步(partial synchronous)协议,而HoneyBadgerBFT算法属于一种异步(asynchronous)协议。
[0027]以PBFT为例,在PBFT算法中,所有的副本(replica)在一个被称为视图(View)的轮换过程(succession of configuration)中运行。在某个视图中,一个副本作为主节点(primary),其他的副本作为备份节点(backups)。视图是连续编号的整数。主节点由公式p=v mod|R|计算得到,这里v是视图编号,p是副本编号,|R|是副本集合的个数。该算法中假设,当最多存在f个副本(即节点)失效时,如果存在总数为至少3f+1个副本,就能保证在异步系统中提供安全性和活性。为了能够确保所有副本的数据一致性要求和容错要求,需要的一定数量副本的集合,一般是分布式系统中的大多数节点构成的集合,构成大多数(Quorum)。例如在总节点数n为3f+1(n=3f+2或n=3f的情况一般不会对容错效果带来提升)的情况下,Quorum为2f+1。这样,对于包含四个节点的分布式系统,任意三个节点可以构成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统中的共识方法,应用于所述区块链系统中的任一目标共识节点,包括:接收由所述区块链系统中的共识节点广播发送的第一消息或者第二消息;其中,所述第一消息包含所述共识节点提议的交易列表;所述第二消息用于声明发送所述第二消息的共识节点在本轮共识中不提议交易列表;确定所述区块链系统中符合预设条件的共识节点的数量;其中,所述预设条件包括所述共识节点提议的交易列表已共识通过;或者,已接收到所述共识节点发送的所述第二消息;如果所述区块链系统中符合所述预设条件的共识节点的数量未达到预设阈值,对接收到的所述第一消息中包含的所述交易列表进行共识处理;如果所述区块链系统中符合所述预设条件的共识节点的数量达到所述预设阈值,则广播第三消息至其它共识节点;其中,所述第三消息用于声明不再接受符合所述预设条件的共识节点以外的其它共识节点提议的交易列表。2.如权利要求1所述的方法,所述第二消息携带签名;所述方法还包括:对接收到的由所述区块链系统中的共识节点发送的所述第二消息的签名进行验证;如果针对所述第二消息的签名验证通过,进一步将所述第二消息广播发送至所述区块链系统中的其它共识节点。3.如权利要求2所述的方法,在确定本地交易池中不存在待提议的交易时,向所述区块链系统中的其它共识节点广播发送所述第二消息,包括:在接收到述区块链系统中的其它共识节点广播发送的所述第一消息,并且确定本地交易池不存在待提议的交易时,向所述区块链系统中的其它共识节点广播发送所述第二消息。4.如权利要求1所述的方法,所述预设阈值为可配置的阈值。5.如权利要求4所述的方法,所述区块链系统支持在保守模式和乐观模式之间进行切换;其中,如果所述区块链系统切换为乐观模式,所述S的取值范围为[1,f];如果所述区块链系统切换为保守模式,所述S的取值范围为[f+1,n

f];其中,所述f表示所述区块链系统采用的共识协议所支持的容错节点数;所述n表示所述区块链系统中的共识节点的总数量。6.如权利要求3所述的方法,所述区块链系统采用的共识协议为基于区块标识进行交易提议的共识协议;所述第一消息包含待共识的目标区块的区块标识;以及,所述共识节点针对该目标区块提议的所述交易列表;所述第二消息包含所述目标区块的区块标识,用于指示发送所述第二消息的共识节点针对所述目标区块不提议交易列表;所述预设条件包括所述共识节点针对所述目标区块提议的交易...

【专利技术属性】
技术研发人员:徐文博
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1