联盟链共识达成方法、设备及计算机可读存储介质技术

技术编号:19352721 阅读:18 留言:0更新日期:2018-11-07 17:42
本发明专利技术公开了一种联盟链共识达成方法,该方法包括:侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件;在当前共识轮次满足预设的联盟链共识算法所对应的共识达成条件时,获取所述当前共识轮次的已共识信息;获取已有的联盟链参与机构信息,根据所述当前共识轮次的已共识信息和已有的联盟链参与机构信息,调用预设的共识增强合约,以判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件;若是,则判定所述当前共识轮次的共识达成。本发明专利技术还公开了一种联盟链共识达成设备和一种计算机可读存储介质。本发明专利技术能够实现对基于联盟链场景下的多机构共识方案进行增强,从而满足某些业务场景的共识要求。

【技术实现步骤摘要】
联盟链共识达成方法、设备及计算机可读存储介质
本专利技术涉及区块链
,尤其涉及联盟链共识达成方法、设备及计算机可读存储介质。
技术介绍
联盟链是一种应用于机构间的区块链,其各个节点通常有与之对应的实体机构组织,如银行、保险、证券、商业协会等,各机构组织组成利益相关的联盟,共同维护区块链的健康运转。现有技术中,联盟链大多沿用区块链中较为常见的共识算法,如PBFT(PracticalByzantineFaultTolerance,拜占庭容错)算法和RAFT算法(一种分布式一致性算法),以达成联盟链中各个节点之间的共识。然而,在现有的区块链共识算法模型中,无论是PBFT或是RAFT的算法模型,都是假定参与共识的节点功能是对等的,即节点是不会具有特殊的业务性质,这种假定前提导致在联盟链中的共识并不能满足一些业务场景的实际需求。例如:在一个10(3f+1=10,f代表PBFT模型中的恶意节点个数)个节点组件的联盟链场景中,使用PBFT共识算法进行共识,这10个节点分别由A,B,C三个机构持有,A机构有4个节点,B机构有3个节点,C机构有3个节点;根据PBFT的性质,达成共识只需要7个节点就足够了(2f+1=7),因为PBFT对于所有节点都是平等的,所以只需要10个节点中的任意7个达成共识即可,如果一次投票中的7个节点全部都是A机构和B机构的节点,那么就相当于C机构没有参加共识但是共识还是通过了,这种情况无法满足某些业务层面上的共识要求。
技术实现思路
本专利技术的主要目的在于提出一种联盟链共识达成方法、设备及计算机可读存储介质,旨在实现对基于联盟链场景下的多机构共识方案进行增强,从而满足某些业务场景的共识要求。为实现上述目的,本专利技术提供一种联盟链共识达成方法,所述联盟链共识达成方法包括如下步骤:侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件;在当前共识轮次满足预设的联盟链共识算法所对应的共识达成条件时,获取所述当前共识轮次的已共识信息;获取已有的联盟链参与机构信息,根据所述当前共识轮次的已共识信息和已有的联盟链参与机构信息,调用预设的共识增强合约,以判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件;若是,则判定所述当前共识轮次的共识达成。优选地,所述侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件的步骤包括:当预设的联盟链共识算法为拜占庭容错PBFT共识算法时,判断当前共识轮次中,所述PBFT共识算法是否处于commit阶段;若是,则判定当前共识轮次满足所述PBFT共识算法所对应的共识达成条件。优选地,所述侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件的步骤包括:当预设的联盟链共识算法为非拜占庭容错RAFT共识算法时,判断当前共识轮次中,所述RAFT共识算法的Leader是否处于心跳收集阶段且至少收集到RAFT集群中超过半数的心跳;若是,则判定当前共识轮次满足所述RAFT共识算法所对应的共识达成条件。优选地,所述侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件的步骤之前,还包括:创建用于达成多机构共识的共识增强合约;接收设置指令,根据所述设置指令在所述共识增强合约中设置相应的共识增强条件。优选地,所述获取所述当前共识轮次的已共识信息的步骤包括:获取当前共识轮次中,由联盟链各节点发送的共识包;识别发送所述共识包的节点所属的机构,以生成已参与共识的机构列表并进行缓存;将所述已参与共识的机构列表作为所述当前共识轮次的已共识信息。优选地,所述判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件的步骤包括:判断所述已参与共识的机构列表中是否存在预设的联盟链参与机构;若是,则判定所述已共识信息满足所述共识增强合约所规定的共识增强条件。优选地,所述将所述已参与共识的机构列表作为所述当前共识轮次的已共识信息的步骤之前,还包括:统计所述已参与共识的机构列表中各机构发送共识包的节点数量并进行缓存;所述将所述已参与共识的机构列表作为所述当前共识轮次的已共识信息的步骤包括:将所述已参与共识的机构列表和统计的所述节点数量作为所述当前共识轮次的已共识信息。优选地,所述判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件的步骤包括:判断所述已参与共识的机构列表中是否存在预设的联盟链参与机构;若所述已参与共识的机构列表中存在预设的联盟链参与机构,则判断所述预设的联盟链参与机构中,发送共识包的节点数量是否达到预设值;若所述预设的联盟链参与机构中,发送共识包的节点数量达到预设值,则判定所述已共识信息满足所述共识增强合约所规定的共识增强条件。此外,为实现上述目的,本专利技术还提供一种联盟链共识达成设备,所述联盟链共识达成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联盟链共识达成程序,所述联盟链共识达成程序被所述处理器执行时实现如上所述的联盟链共识达成方法的步骤。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有联盟链共识达成程序,所述联盟链共识达成程序被处理器执行时实现如上所述的联盟链共识达成方法的步骤。本专利技术提供的联盟链共识达成方法,通过在共识流程中调用预设的共识增强合约,能够实现在现有的联盟链共识算法上增加新的规则判断,使得整个联盟链的共识流程不仅仅需要满足现有的联盟链共识算法,还需要满足共识增强合约中指定的规则才能达成机构间的最终共识,从而本专利技术能够满足一些特定场景下的机构间的共识达成需求。附图说明图1是本专利技术实施例方案涉及的硬件运行环境的终端结构示意图;图2为本专利技术联盟链共识达成方法第一实施例的流程示意图;图3为图2中步骤S10的细化步骤示意图;图4为图2中步骤S10的另一细化步骤示意图;图5为本专利技术联盟链共识达成方法第二实施例的流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例的主要解决方案是:侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件;在当前共识轮次满足预设的联盟链共识算法所对应的共识达成条件时,获取所述当前共识轮次的已共识信息;获取已有的联盟链参与机构信息,根据所述当前共识轮次的已共识信息和已有的联盟链参与机构信息,调用预设的共识增强合约,以判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件;若是,则判定所述当前共识轮次的共识达成。现有技术中,联盟链大多沿用区块链中较为常见的共识算法,如PBFT算法和RAFT算法,以达成联盟链中各个节点之间的共识,然而,这些共识算法并不能满足联盟链中一些业务场景的实际需求。本专利技术提供的联盟链共识达成方法,通过在共识流程中调用预设的共识增强合约,能够实现在现有的联盟链共识算法上增加新的规则判断,使得整个联盟链的共识流程不仅仅需要满足现有的联盟链共识算法,还需要满足共识增强合约中指定的规则才能达成机构间的最终共识,从而本专利技术能够满足一些特定场景下的机构间的共识达成需求。如图1所示,图1是本专利技术实施例方案涉及的硬件运行环境的设备结构示意图。本专利技术实施例联盟链共识达成设备可以是服务器、P本文档来自技高网...

【技术保护点】
1.一种联盟链共识达成方法,其特征在于,所述联盟链共识达成方法包括如下步骤:侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件;在当前共识轮次满足预设的联盟链共识算法所对应的共识达成条件时,获取所述当前共识轮次的已共识信息;获取已有的联盟链参与机构信息,根据所述当前共识轮次的已共识信息和已有的联盟链参与机构信息,调用预设的共识增强合约,以判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件;若是,则判定所述当前共识轮次的共识达成。

【技术特征摘要】
1.一种联盟链共识达成方法,其特征在于,所述联盟链共识达成方法包括如下步骤:侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件;在当前共识轮次满足预设的联盟链共识算法所对应的共识达成条件时,获取所述当前共识轮次的已共识信息;获取已有的联盟链参与机构信息,根据所述当前共识轮次的已共识信息和已有的联盟链参与机构信息,调用预设的共识增强合约,以判断所述已共识信息是否满足所述共识增强合约所规定的共识增强条件;若是,则判定所述当前共识轮次的共识达成。2.如权利要求1所述的联盟链共识达成方法,其特征在于,所述侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件的步骤包括:当预设的联盟链共识算法为拜占庭容错PBFT共识算法时,判断当前共识轮次中,所述PBFT共识算法是否处于commit阶段;若是,则判定当前共识轮次满足所述PBFT共识算法所对应的共识达成条件。3.如权利要求1所述的联盟链共识达成方法,其特征在于,所述侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件的步骤包括:当预设的联盟链共识算法为非拜占庭容错RAFT共识算法时,判断当前共识轮次中,所述RAFT共识算法的Leader是否处于心跳收集阶段且至少收集到RAFT集群中超过半数的心跳;若是,则判定当前共识轮次满足所述RAFT共识算法所对应的共识达成条件。4.如权利要求1所述的联盟链共识达成方法,其特征在于,所述侦测当前共识轮次是否满足预设的联盟链共识算法所对应的共识达成条件的步骤之前,还包括:创建用于达成多机构共识的共识增强合约;接收设置指令,根据所述设置指令在所述共识增强合约中设置相应的共识增强条件。5.如权利要求1至4中任一项所述的联盟链共识达成方法,其特征在于,所述获取所述当前共识轮次的已共识信息的步骤包括:获取当前共识轮次中,由联盟链各节点发送的共识包;识别发送所述...

【专利技术属性】
技术研发人员:金程鑫李辉忠张开翔范瑞彬
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

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

1