区块链系统中的共识方法和装置制造方法及图纸

技术编号:37701776 阅读:7 留言:0更新日期:2023-06-01 23:47
本申请涉及一种区块链系统中的共识方法和装置。所述方法包括:主节点接收客户端发送的请求消息;所述主节点根据所述请求消息生成预准备消息并向所有所述备份节点广播所述预准备消息;每个备份节点根据所述预准备消息生成准备消息并向所述主节点和除所述备份节点之外的所有其他备份节点广播所述准备消息;响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息。通过本申请的技术方案,能够提高分布式系统的共识效率。率。率。

【技术实现步骤摘要】
区块链系统中的共识方法和装置


[0001]本申请一般地涉及区块链
,尤其涉及一种区块链系统中的共识方法和装置。

技术介绍

[0002]分布式系统集群设计中面临着一个不可回避的问题,即一致性问题,而共识算法是为了实现分布式一致性协议而产生的一系列流程与规则。对于系统中的多个服务节点,通过给定一系列操作,可以使全局对局部处理结果达成某种程度的一致,以确保各个主机达到安全可靠的状态共识。
[0003]PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)算法是联盟链中被广泛应用的一种共识算法,采用三阶段共识设计,可以有效地保证可靠性。其中,联盟链只针对特定某个群体的成员和有限的第三方,往往被用于银行、保险、商业协会、集团企业及上下游企业等群体。
[0004]然而,当节点数量过多时,该算法过程中的三段式消息转发会大幅降低效率,使得每一次的共识流程时间倍增,从而导致在实际运行过程中整个分布式系统的共识过程效率较低,因此如何改进PBFT共识算法从而提高分布式系统的共识效率是需要解决的技术问题。

技术实现思路

[0005]为了解决现有技术中的上述技术问题,本申请提供了一种区块链系统中的共识方法,其中所述区块链系统用于执行智能合约,所述区块链系统包括主节点和多个备份节点,所述主节点和所述备份节点的总数量为m,其中包括f个问题节点,其中f = 0, 1, 2, 3, ...,m为正整数,所述方法包括:所述主节点接收客户端发送的请求消息,其中所述请求消息包括所述智能合约中的待执行操作;所述主节点根据所述请求消息生成预准备消息并向所有所述备份节点广播所述预准备消息,其中所述预准备消息包括所述请求消息和所述请求消息的序号和摘要;每个备份节点根据所述预准备消息生成准备消息并向所述主节点和除所述备份节点之外的所有其他备份节点广播所述准备消息,其中所述准备消息包括所述请求消息的所述序号和所述摘要;响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息,其中所述一致准备消息是指其包含的请求消息的序号和摘要与所述主节点或所述备份节点的所述预准备消息中的所述序号和所述摘要一致的准备消息,所述视图切换发生在所述主节点被替换时。
[0006]在一个实施例中,所述响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息包括:响应于接收到至少2f个一致准备消息,所述主节点或所述备份节点进入准备完成状态;处于所述准备完成状态的所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送
所述答复消息。
[0007]在一个实施例中,所述方法还包括:响应于所述主节点发生所述视图切换,尚未进入所述准备完成状态的备份节点停止接收其他备份节点广播的准备消息,并仅接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息;响应于接收到至少2f个一致准备消息,所述备份节点进入所述准备完成状态。
[0008]在一个实施例中,所述接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息包括:计算处于所述准备完成状态的所述主节点或所述备份节点的优先度;优先接收优先度较高的所述主节点或备份节点广播的准备消息。
[0009]在一个实施例中,所述主节点或所述备份节点的优先度为,其中,为第i个处于所述准备完成状态下的节点所对应的优先度,为当前与所述节点完成共识的其他节点的总数量,为所述节点从接收到所述预准备消息开始到进入所述准备完成状态所花费的时间,>0,>0。
[0010]在一个实施例中,所述方法还包括:已经处于所述准备完成状态的所述节点继续接收其他尚未进入所述准备完成状态的备份节点所发送的准备消息,以提高所述节点的优先度。
[0011]在一个实施例中,所述主节点接收客户端发送的请求消息包括:所述主节点接收多个客户端发送的多个请求消息;所述主节点将所述多个请求消息存储至消息队列中并生成每个请求消息的序号。
[0012]在一个实施例中,所述主节点根据所述请求消息生成预准备消息包括:所述主节点从所述消息队列按照先入先出的方式拉取特定数量的请求消息;所述主节点根据所述请求消息的序号依次为所述特定数量的请求消息生成预准备消息。
[0013]在一个实施例中,所述请求消息中还包括所述客户端的交易数据,其中所述交易数据包括所述客户端的签名、合约调用权限和合约有效性,所述方法还包括:验证所述请求消息中的所述交易数据是否正确;响应于验证所述请求消息中的所述交易数据正确,预执行所述待执行操作以获得预执行结果,并预计算所述交易数据的哈希值;将所述预执行结果、所述交易数据和所述交易数据的所述哈希值存储至交易表中,其中所述交易表是针对所述智能合约预配置的。
[0014]根据本申请的第二方面,还提供了一种区块链系统中的共识装置,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令在被所述处理器执行时,实现根据本申请第一方面所述的区块链系统中的共识方法。
[0015]本申请的技术方案具有以下有益技术效果:本申请的技术方案通过对PBFT算法的三个共识阶段进行合并优化,实现仅通过两个共识阶段即可实现三个共识阶段的功能,从而有效减少多个共识阶段存在而产生的节点交互效率较低的情况,提高了分布式系统在应用PBFT算法过程中的共识效率;同时,通过将部分共识过程操作前置化处理,减少共识过程的时间花费,降低超时概率,从而进一步提高分布式系统的共识效率。
附图说明
[0016]通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:图1是现有PBFT算法的三阶段共识过程的示意图;图2是根据本申请实施例的区块链系统中的共识方法的流程图;图3是根据本申请实施例的区块链系统中的共识方法的两阶段共识过程的示意图;图4是根据本申请实施例的区块链系统中的共识装置的示意框图。
具体实施方式
[0017]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0018]应当理解,当本申请的权利要求、说明书及附图使用术语“第一”、“第二”等时,其仅是用于区别不同对象,而不是用于描述特定顺序。本申请的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0019]根据本申请的第一方面,本申请提供了一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1. 一种区块链系统中的共识方法,其中所述区块链系统用于执行智能合约,所述区块链系统包括主节点和多个备份节点,所述主节点和所述备份节点的总数量为m,其中包括f个问题节点,其中f = 0, 1, 2, 3, ...,m为正整数,其特征在于,所述方法包括:所述主节点接收客户端发送的请求消息,其中所述请求消息包括所述智能合约中的待执行操作;所述主节点根据所述请求消息生成预准备消息并向所有所述备份节点广播所述预准备消息,其中所述预准备消息包括所述请求消息和所述请求消息的序号和摘要;每个备份节点根据所述预准备消息生成准备消息并向所述主节点和除所述备份节点之外的所有其他备份节点广播所述准备消息,其中所述准备消息包括所述请求消息的所述序号和所述摘要;响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息,其中所述一致准备消息是指其包含的请求消息的序号和摘要与所述主节点或所述备份节点的所述预准备消息中的所述序号和所述摘要一致的准备消息,所述视图切换发生在所述主节点被替换时。2.根据权利要求1所述的区块链系统中的共识方法,其特征在于,所述响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息包括:响应于接收到至少2f个一致准备消息,所述主节点或所述备份节点进入准备完成状态;处于所述准备完成状态的所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送所述答复消息。3.根据权利要求2所述的区块链系统中的共识方法,其特征在于,所述方法还包括:响应于所述主节点发生所述视图切换,尚未进入所述准备完成状态的备份节点停止接收其他备份节点广播的准备消息,并仅接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息;响应于接收到至少2f个一致准备消息,所述备份节点进入所述准备完成状态。4.根据权利要求3所述的区块链系统中的共识方法,其特征在于,所述接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息包括:计算处...

【专利技术属性】
技术研发人员:王宏志张浩伟王骁陶伟王婷婷顾佳俊韩高阳许高锋呼源招孟立宝卢雪辉
申请(专利权)人:新疆河润科技有限公司
类型:发明
国别省市:

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

1