共识方法、计算机设备和存储介质技术

技术编号:29531550 阅读:18 留言:0更新日期:2021-08-03 15:19
本发明专利技术提供一种共识方法、计算机设备和存储介质,该方法包括:响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点;在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;将第二临时区块广播给投票节点;在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点。本申请降低共识耗时。

【技术实现步骤摘要】
共识方法、计算机设备和存储介质
本申请涉及区块链
,具体涉及一种共识方法、计算机设备和存储介质。
技术介绍
在现有的多阶段共识投票的共识方法中,由于所有高度的区块都经历完整的共识流程,并且频繁切换提议节点,共识所耗费的时间在较长,影响整个区块链系统的TPS。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种降低共识耗时的共识方法、计算机设备和存储介质。第一方面,本专利技术提供一种适用于区块链节点的共识方法,上述方法包括:响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点,以供对第一临时区块进行两阶段投票;在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;将第二临时区块广播给投票节点,以供:预执行第二临时区块的各交易,生成第一区块哈希,验证第一区块哈希与第二临时区块中的第二区块哈希是否相同:否,则对第二临时区块生成反对票信息并广播;在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点。第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的共识方法。第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的共识方法。本专利技术诸多实施例提供的共识方法、计算机设备和存储介质通过响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点,以供对第一临时区块进行两阶段投票;在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;将第二临时区块广播给投票节点,以供:预执行第二临时区块的各交易,生成第一区块哈希,验证第一区块哈希与第二临时区块中的第二区块哈希是否相同:否,则对第二临时区块生成反对票信息并广播;在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点的方法,降低共识耗时。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术一实施例提供的一种共识方法的流程图。图2为本专利技术一实施例提供的一种计算机设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。在现有技术中,两阶段共识包含Prevote(预投票)和Precommit(预提交)两轮投票,所有高度的区块都需要经过这两轮投票才能达成共识。在Prevote阶段,投票节点一般仅验证交易的签名信息是否正确以生成同意票信息或反对票信息,在Precommit阶段,投票节点一般执行区块中的各交易以生成区块哈希,在所生成的区块哈希与区块中自带的区块哈希相同时生成同意票信息。图1为本专利技术一实施例提供的一种共识方法的流程图。如图1所示,在本实施例中,本专利技术提供一种适用于区块链节点的共识方法,上述方法包括:S11:响应于获得第一临时区块的提议权,生成第一临时区块,并将第一临时区块广播给投票节点,以供对第一临时区块进行两阶段投票;S13:在第一临时区块通过两阶段投票共识成功时将第一临时区块确定为第一区块,并生成第一区块的高度加一的第二临时区块;S15:将第二临时区块广播给投票节点,以供:预执行第二临时区块的各交易,生成第一区块哈希,验证第一区块哈希与第二临时区块中的第二区块哈希是否相同:否,则对第二临时区块生成反对票信息并广播;S17:在第二临时区块通过投票共识成功时将第二临时区块确定为第二区块,并生成第二区块的高度加一的第三临时区块;S19:将第三临时区块确定为第二临时区块,并返回将第二临时区块广播给投票节点。具体地,假设区块链网络有区块链节点node1~node10,第一临时区块为block(100)_临;以当前节点为node1为例;响应于获得block(100)_临的提议权,node1执行步骤S11,生成block(100)_临,并将block(100)_临广播给node2~node10;node1~node10对以block(100)_临进行两阶段投票;node1执行步骤S13,在block(100)_临通过两阶段投票共识成功时,将block(100)_临确定为block(100),并生成block(101)_临;node1执行步骤S15,将block(101)_临广播给node2~node10;node1~node10预执行block(101)_临的各交易,生成区块哈希blockhash(block(101)_临);本领域技术人员应当理解,由于此时仅有一轮投票,则此处的预执行表示验证交易签名并预执行交易;node1~node10验证blockhash(block(101)_临)与block(101)_临中的区块哈希blockhash(block(101)_临)'是否相同:假设node10验证出blockhash(block(101)_临)与blockhash(block(101)_临)'不同,node10对block(101)_临生成反对票信息并广播;其它节点验证出blockhash(block(101)_临)与blockhash(block(101)_临)'相同,其它节点对block(101)_临生成同意票信息并广播;node1~node10均可收集到node10生成的反对票信息和node1~node9生成的同意票信息,block(101)_临投票共识成功;node1执行步骤S17,将block(101)_临确定为block(101),并生成block(102)_临;node1执行步骤S19,返回S15,将block(102)_临广播给node2~node10。在更多实施例中,投票节点可以只生成同意票信息,即,在验证第一区块哈希与第二区块哈希不同时,结束,则后续节点只收集同意票信息,在同意票信息的数量充足时,临时区块共识成功;类似的,投票节点也可以只生成反对票信息,即,在验证第一区块哈希与第二区块哈希相同时,结束,则后续节点只收集反对票信息,在反对票信息的数量不充足时,本文档来自技高网...

【技术保护点】
1.一种共识方法,其特征在于,所述方法适用于区块链节点,所述方法包括:/n响应于获得第一临时区块的提议权,生成第一临时区块,并将所述第一临时区块广播给投票节点,以供对所述第一临时区块进行两阶段投票;/n在所述第一临时区块通过两阶段投票共识成功时将所述第一临时区块确定为第一区块,并生成所述第一区块的高度加一的第二临时区块;/n将所述第二临时区块广播给所述投票节点,以供:/n预执行所述第二临时区块的各交易,生成第一区块哈希,验证所述第一区块哈希与所述第二临时区块中的第二区块哈希是否相同:/n否,则对所述第二临时区块生成反对票信息并广播;/n在所述第二临时区块通过投票共识成功时将所述第二临时区块确定为第二区块,并生成所述第二区块的高度加一的第三临时区块;/n将所述第三临时区块确定为所述第二临时区块,并返回所述将所述第二临时区块广播给所述投票节点。/n

【技术特征摘要】
1.一种共识方法,其特征在于,所述方法适用于区块链节点,所述方法包括:
响应于获得第一临时区块的提议权,生成第一临时区块,并将所述第一临时区块广播给投票节点,以供对所述第一临时区块进行两阶段投票;
在所述第一临时区块通过两阶段投票共识成功时将所述第一临时区块确定为第一区块,并生成所述第一区块的高度加一的第二临时区块;
将所述第二临时区块广播给所述投票节点,以供:
预执行所述第二临时区块的各交易,生成第一区块哈希,验证所述第一区块哈希与所述第二临时区块中的第二区块哈希是否相同:
否,则对所述第二临时区块生成反对票信息并广播;
在所述第二临时区块通过投票共识成功时将所述第二临时区块确定为第二区块,并生成所述第二区块的高度加一的第三临时区块;
将所述第三临时区块确定为所述第二临时区块,并返回所述将所述第二临时区块广播给所述投票节点。


2.根据权利要求1所述的方法,其特征在于,所述生成第一临时区块包括:
生成第一序号为0的第一临时区块;
所述生成所述第一区块的高度加一的第二临时区块包括:
将所述第一序号加一以更新所述第一序...

【专利技术属性】
技术研发人员:曹平袁海雷王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司南京本链信息科技有限公司
类型:发明
国别省市:浙江;33

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

1