区块链系统中的共识方法和装置与流程

文档序号:34306207发布日期:2023-05-31 18:59阅读:110来源:国知局
区块链系统中的共识方法和装置与流程

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


背景技术:

1、分布式系统集群设计中面临着一个不可回避的问题,即一致性问题,而共识算法是为了实现分布式一致性协议而产生的一系列流程与规则。对于系统中的多个服务节点,通过给定一系列操作,可以使全局对局部处理结果达成某种程度的一致,以确保各个主机达到安全可靠的状态共识。

2、pbft(practical byzantine fault tolerance,实用拜占庭容错)算法是联盟链中被广泛应用的一种共识算法,采用三阶段共识设计,可以有效地保证可靠性。其中,联盟链只针对特定某个群体的成员和有限的第三方,往往被用于银行、保险、商业协会、集团企业及上下游企业等群体。

3、然而,当节点数量过多时,该算法过程中的三段式消息转发会大幅降低效率,使得每一次的共识流程时间倍增,从而导致在实际运行过程中整个分布式系统的共识过程效率较低,因此如何改进pbft共识算法从而提高分布式系统的共识效率是需要解决的技术问题。


技术实现思路

1、为了解决现有技术中的上述技术问题,本申请提供了一种区块链系统中的共识方法,其中所述区块链系统用于执行智能合约,所述区块链系统包括主节点和多个备份节点,所述主节点和所述备份节点的总数量为m,其中包括f个问题节点,其中f = 0, 1, 2, 3,...,m为正整数,所述方法包括:所述主节点接收客户端发送的请求消息,其中所述请求消息包括所述智能合约中的待执行操作;所述主节点根据所述请求消息生成预准备消息并向所有所述备份节点广播所述预准备消息,其中所述预准备消息包括所述请求消息和所述请求消息的序号和摘要;每个备份节点根据所述预准备消息生成准备消息并向所述主节点和除所述备份节点之外的所有其他备份节点广播所述准备消息,其中所述准备消息包括所述请求消息的所述序号和所述摘要;响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息,其中所述一致准备消息是指其包含的请求消息的序号和摘要与所述主节点或所述备份节点的所述预准备消息中的所述序号和所述摘要一致的准备消息,所述视图切换发生在所述主节点被替换时。

2、在一个实施例中,所述响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息包括:响应于接收到至少2f个一致准备消息,所述主节点或所述备份节点进入准备完成状态;处于所述准备完成状态的所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送所述答复消息。

3、在一个实施例中,所述方法还包括:响应于所述主节点发生所述视图切换,尚未进入所述准备完成状态的备份节点停止接收其他备份节点广播的准备消息,并仅接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息;响应于接收到至少2f个一致准备消息,所述备份节点进入所述准备完成状态。

4、在一个实施例中,所述接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息包括:计算处于所述准备完成状态的所述主节点或所述备份节点的优先度;优先接收优先度较高的所述主节点或备份节点广播的准备消息。

5、在一个实施例中,所述主节点或所述备份节点的优先度为,

6、

7、其中,为第i个处于所述准备完成状态下的节点所对应的优先度,为当前与所述节点完成共识的其他节点的总数量,为所述节点从接收到所述预准备消息开始到进入所述准备完成状态所花费的时间,>0,>0。

8、在一个实施例中,所述方法还包括:已经处于所述准备完成状态的所述节点继续接收其他尚未进入所述准备完成状态的备份节点所发送的准备消息,以提高所述节点的优先度。

9、在一个实施例中,所述主节点接收客户端发送的请求消息包括:所述主节点接收多个客户端发送的多个请求消息;所述主节点将所述多个请求消息存储至消息队列中并生成每个请求消息的序号。

10、在一个实施例中,所述主节点根据所述请求消息生成预准备消息包括:所述主节点从所述消息队列按照先入先出的方式拉取特定数量的请求消息;所述主节点根据所述请求消息的序号依次为所述特定数量的请求消息生成预准备消息。

11、在一个实施例中,所述请求消息中还包括所述客户端的交易数据,其中所述交易数据包括所述客户端的签名、合约调用权限和合约有效性,所述方法还包括:验证所述请求消息中的所述交易数据是否正确;响应于验证所述请求消息中的所述交易数据正确,预执行所述待执行操作以获得预执行结果,并预计算所述交易数据的哈希值;将所述预执行结果、所述交易数据和所述交易数据的所述哈希值存储至交易表中,其中所述交易表是针对所述智能合约预配置的。

12、根据本申请的第二方面,还提供了一种区块链系统中的共识装置,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述计算机可执行指令在被所述处理器执行时,实现根据本申请第一方面所述的区块链系统中的共识方法。

13、本申请的技术方案具有以下有益技术效果:

14、本申请的技术方案通过对pbft算法的三个共识阶段进行合并优化,实现仅通过两个共识阶段即可实现三个共识阶段的功能,从而有效减少多个共识阶段存在而产生的节点交互效率较低的情况,提高了分布式系统在应用pbft算法过程中的共识效率;同时,通过将部分共识过程操作前置化处理,减少共识过程的时间花费,降低超时概率,从而进一步提高分布式系统的共识效率。



技术特征:

1. 一种区块链系统中的共识方法,其中所述区块链系统用于执行智能合约,所述区块链系统包括主节点和多个备份节点,所述主节点和所述备份节点的总数量为m,其中包括f个问题节点,其中f = 0, 1, 2, 3, ...,m为正整数,其特征在于,所述方法包括:

2.根据权利要求1所述的区块链系统中的共识方法,其特征在于,所述响应于接收到至少2f个一致准备消息且未发生视图切换,所述主节点或所述备份节点执行所述待执行操作并向所述客户端发送答复消息包括:

3.根据权利要求2所述的区块链系统中的共识方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的区块链系统中的共识方法,其特征在于,所述接收处于所述准备完成状态的所述主节点或所述备份节点广播的准备消息包括:

5.根据权利要求3所述的区块链系统中的共识方法,其特征在于,所述主节点或所述备份节点的优先度为,

6.根据权利要求5所述的区块链系统中的共识方法,其特征在于,所述方法还包括:已经处于所述准备完成状态的所述节点继续接收其他尚未进入所述准备完成状态的备份节点所发送的准备消息,以提高所述节点的优先度。

7.根据权利要求1所述的区块链系统中的共识方法,其特征在于,所述主节点接收客户端发送的请求消息包括:

8.根据权利要求7所述的区块链系统中的共识方法,其特征在于,所述主节点根据所述请求消息生成预准备消息包括:

9.根据权利要求8所述的区块链系统中的共识方法,其特征在于,所述请求消息中还包括所述客户端的交易数据,其中所述交易数据包括所述客户端的签名、合约调用权限和合约有效性,所述方法还包括:

10.一种区块链系统中的共识装置,包括存储器和处理器,所述存储器上存储有计算机可执行指令,其特征在于,所述计算机可执行指令在被所述处理器执行时,实现根据权利要求1至9中任一项所述的区块链系统中的共识方法。


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

技术研发人员:王宏志,张浩伟,王骁,陶伟,王婷婷,顾佳俊,韩高阳,许高锋,呼源招,孟立宝,卢雪辉
受保护的技术使用者:新疆河润科技有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1