提案共识执行方法、区块链系统、设备和存储介质技术方案

技术编号:33276174 阅读:16 留言:0更新日期:2022-04-30 23:35
本申请公开了一种提案共识执行方法、区块链系统、设备和存储介质,属于区块链技术领域。该方法包括:若一个提案的聚合投票信息满足提交规则,则提交该提案,且执行该提案;每提交k个提案,根据该k个提案中的第k个提案的执行结果生成该第k个提案的检查信息,将该第k个提案的检查信息存储至本地检查信息集;获取聚合检查信息,聚合检查信息包括多个节点针对同一提案生成的执行结果一致的检查信息;将本地检查信息集与聚合检查信息进行比较,以确定稳定检查信息,稳定检查信息所属的提案的执行结果具有一致性。本申请将共识过程与执行过程完全解耦,通过检查机制单独负责执行结果的验证与一致性保证,从而可确保共识活性,避免处理资源的浪费。的浪费。的浪费。

【技术实现步骤摘要】
提案共识执行方法、区块链系统、设备和存储介质


[0001]本申请涉及区块链
,特别涉及一种提案共识执行方法、区块链系统、设备和存储介质。

技术介绍

[0002]在区块链系统中,共识协议负责对从客户端接收到的交易进行一致性排序,得到排序后的交易序列,状态机只需负责对排序后的交易序列进行执行。从表面来看,共识协议在确定交易序列的一致性后,其共识任务就已经完成了,相同的状态机执行相同的交易序列将会给出相同的执行结果。然而,状态机并非是保证安全的,在软件层面和硬件层面上的问题都有可能导致不同节点运行相同的状态机执行相同的交易序列却得出不同的执行结果。为此,共识协议对执行结果的一致性的验证也是必要的。

技术实现思路

[0003]本申请提供了一种提案共识执行方法、区块链系统、设备和存储介质,可以将共识过程与执行过程完全解耦,通过检查机制单独负责执行结果的验证与一致性保证,从而可以确保共识活性,且避免处理资源的浪费。所述技术方案如下:第一方面,提供了一种提案共识执行方法,应用于区块链系统,所述区块链系统包括多个节点,所述方法包括:所述多个节点中的每个节点执行以下操作:获取在共识过程中生成的一个提案的聚合投票信息,若所述一个提案的聚合投票信息满足提交规则,则提交所述一个提案,且执行所述一个提案,所述提交所述一个提案是指标记所述一个提案的共识已完成;每提交k个提案,根据所述k个提案中的第k个提案的执行结果生成所述第k个提案的检查信息,将所述第k个提案的检查信息存储至本地检查信息集,所述k为正整数;获取聚合检查信息,所述聚合检查信息包括所述多个节点中的至少部分节点针对同一提案生成的执行结果一致的检查信息;将所述本地检查信息集中的检查信息与所述聚合检查信息进行比较,以从所述本地检查信息集中确定稳定检查信息,所述稳定检查信息所属的提案的执行结果具有一致性。
[0004]在本申请中,节点在提案的聚合投票信息满足提交规则时,即可提交这个提案,且执行这个提案。也即,节点在该提案的聚合投票信息满足提交规则时,即可标记该提案的共识已完成,而无需等待该提案的执行结果。节点每提交一定数量的提案后,可根据最新提交的这个提案的执行结果生成这个提案的检查信息并存储至本地检查信息集,之后,将本地检查信息集中的检查信息与聚合检查信息进行比较,来验证本地检查信息集中的检查信息所属的提案的执行结果是否具有一致性,以从本地检查信息集中确定稳定检查信息。这种情况下,通过检查机制单独负责执行结果的验证与一致性保证,保证了提案执行安全性。如此,将共识过程与执行过程完全解耦。由于不需要在共识过程中穿插执行流程,所以共识时
间是可预知的,从而可使用一个恰当的超时阈值来确保共识活性。并且,由于提案提交后才会执行,所以确保了待执行的提案已经共识完毕,此时执行工作不会因共识视图的切换等原因而被抛弃,从而不会浪费处理资源。
[0005]可选地,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述方法还包括:第i轮主节点生成所述第i轮提案,向所述第i轮从节点发送携带有所述第i轮提案的提案消息,所述i为正整数;第i+1轮从节点若确定所述提案消息具备合法性,则向所述第i+1轮主节点发送针对所述第i轮提案的投票;所述第i+1轮主节点根据所述第i+1轮从节点针对所述第i轮提案的投票生成所述第i轮提案的聚合投票信息,生成第i+1轮提案,向所述第i+1轮从节点发送携带有所述第i+1轮提案和所述第i轮提案的聚合投票信息的提案消息。
[0006]可选地,所述获取聚合检查信息,包括:每生成一个检查信息,向其他节点发送最新生成的所述一个检查信息;在获取到属于同一提案的、数量大于或等于第一数量阈值、且执行结果相同的多个检查信息的情况下,根据所述多个检查信息生成所述聚合检查信息。
[0007]可选地,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述获取聚合检查信息,包括:第i+1轮从节点在确定携带有第i轮提案的提案消息具备合法性后,将针对所述第i轮提案的投票和最新生成的检查信息携带于一个消息中发送给所述第i+1轮主节点;所述第i+1轮主节点在获取到属于同一提案的、数量大于或等于第一数量阈值、且执行结果相同的多个检查信息后,根据所述多个检查信息生成所述聚合检查信息,将所述聚合检查信息、所述第i+1轮提案和所述第i轮提案的聚合投票信息均携带于提案消息中发送给所述第i+1轮从节点。
[0008]可选地,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述获取聚合检查信息,包括:第i+1轮从节点每生成一个检查信息,将最新生成的所述一个检查信息发送给第i+j轮主节点,所述j为正整数;所述第i+j轮主节点在获取到属于同一提案的、数量大于或等于第一数量阈值、且执行结果相同的多个检查信息后,根据所述多个检查信息生成所述聚合检查信息,将所述聚合检查信息、所述第i+j轮提案和所述第i+j

1轮提案的聚合投票信息均携带于提案消息中发送给所述第i+j轮从节点。
[0009]可选地,所述第一数量阈值为2f+1,所述f为所述多个节点中恶意节点的数量。
[0010]可选地,所述将所述本地检查信息集中的检查信息与所述聚合检查信息进行比较,包括:若所述本地检查信息集中存在与所述聚合检查信息属于同一提案的目标检查信息,且所述目标检查信息中的执行结果与所述聚合检查信息中的执行结果相同,则将所述目标检查信息设置为最新的所述稳定检查信息。
[0011]可选地,所述将所述本地检查信息集中的检查信息与所述聚合检查信息进行比
较,包括:若所述本地检查信息集中最新的所述稳定检查信息所属的提案的轮次高于所述聚合检查信息所属的提案的轮次,则结束操作;若所述本地检查信息集中不存在与所述聚合检查信息属于同一提案的检查信息,则执行区块同步操作;若所述本地检查信息集中存在与所述聚合检查信息属于同一提案的目标检查信息,且所述目标检查信息中的执行结果与所述聚合检查信息中的执行结果不同,则执行区块回滚操作。
[0012]可选地,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述方法还包括:所述多个节点中的每个节点执行以下操作:在提交的提案为包含有配置区块的第一提案的情况下,根据所述第一提案的执行结果生成所述第一提案的检查信息作为配置检查信息,将所述配置检查信息存储至所述本地检查信息集,所述配置区块是所述主节点在处理共识集群变更交易时构建的;在所述本地检查信息集中的所述配置检查信息未成为所述稳定检查信息的情况下,不提交除内容为空的提案之外的其他提案;在所述本地检查信息集中的所述配置检查信息成为所述稳定检查信息后,以所述配置区块为初始区块继续进行提案共识。
[0013]可选地,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述方法还包括:所述多个节点中的每个节点执行以下操作:在提交的提案为包含有验证区块的第二提案的情况下,根据所述第二提案的执行结果生成所述第二提案的检查信息作为强制检查信息,将所述强制检查信息存储至所述本地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提案共识执行方法,其特征在于,应用于区块链系统,所述区块链系统包括多个节点,所述方法包括:所述多个节点中的每个节点执行以下操作:获取在共识过程中生成的一个提案的聚合投票信息,若所述一个提案的聚合投票信息满足提交规则,则提交所述一个提案,且执行所述一个提案,所述提交所述一个提案是指标记所述一个提案的共识已完成;每提交k个提案,根据所述k个提案中的第k个提案的执行结果生成所述第k个提案的检查信息,将所述第k个提案的检查信息存储至本地检查信息集,所述k为正整数;获取聚合检查信息,所述聚合检查信息包括所述多个节点中的至少部分节点针对同一提案生成的执行结果一致的检查信息;将所述本地检查信息集中的检查信息与所述聚合检查信息进行比较,以从所述本地检查信息集中确定稳定检查信息,所述稳定检查信息所属的提案的执行结果具有一致性。2.如权利要求1所述的方法,其特征在于,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述方法还包括:第i轮主节点生成所述第i轮提案,向所述第i轮从节点发送携带有所述第i轮提案的提案消息,所述i为正整数;第i+1轮从节点若确定所述提案消息具备合法性,则向所述第i+1轮主节点发送针对所述第i轮提案的投票;所述第i+1轮主节点根据所述第i+1轮从节点针对所述第i轮提案的投票生成所述第i轮提案的聚合投票信息,生成第i+1轮提案,向所述第i+1轮从节点发送携带有所述第i+1轮提案和所述第i轮提案的聚合投票信息的提案消息。3.如权利要求1所述的方法,其特征在于,所述获取聚合检查信息,包括:每生成一个检查信息,向其他节点发送最新生成的所述一个检查信息;在获取到属于同一提案的、数量大于或等于第一数量阈值、且执行结果相同的多个检查信息的情况下,根据所述多个检查信息生成所述聚合检查信息。4.如权利要求1所述的方法,其特征在于,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述获取聚合检查信息,包括:第i+1轮从节点在确定携带有第i轮提案的提案消息具备合法性后,将针对所述第i轮提案的投票和最新生成的检查信息携带于一个消息中发送给所述第i+1轮主节点;所述第i+1轮主节点在获取到属于同一提案的、数量大于或等于第一数量阈值、且执行结果相同的多个检查信息后,根据所述多个检查信息生成所述聚合检查信息,将所述聚合检查信息、所述第i+1轮提案和所述第i轮提案的聚合投票信息均携带于提案消息中发送给所述第i+1轮从节点。5.如权利要求1所述的方法,其特征在于,所述多个节点在每一轮共识过程中存在一个主节点和多个从节点,所述获取聚合检查信息,包括:第i+1轮从节点每生成一个检查信息,将最新生成的所述一个检查信息发送给第i+j轮主节点,所述j为正整数;所述第i+j轮主节点在获取到属于同一提案的、数量大于或等于第一数量阈值、且执行结果相同的多个检查信息后,根据所述多个检查信息生成所述聚合检查信息,将所述聚合
检查信息、所述第i+j轮提案和所述第i+j

1轮提案的聚合投票信息均携带于提案消息中发送给所述第i+j轮从节点。6.如权利要求3

5任一所述的方法,其特征在于,所述第一数量阈值为2f+1,所述f为所述多个节点中恶意节点的数量。7.如权利要求1

5任一所述的方法,其特征在于,所述将所述本地...

【专利技术属性】
技术研发人员:邱炜伟黄方蕾张珂杰端豪尚璇
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:

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

1