一种自动切换区块链共识协议的方法、系统和装置制造方法及图纸

技术编号:25809238 阅读:24 留言:0更新日期:2020-09-29 18:44
本说明书的实施例公开了一种自动切换区块链共识协议的方法、系统和装置,所述方法由区块链节点执行,包括:接收与共识协议切换相关的交易请求,并基于交易请求调用共识协议切换的智能合约,将智能合约中共识协议切换的触发条件和目标共识协议的标识写入账本;根据账本判断当前环境是否满足共识协议切换的触发条件,当判断结果为满足时,调用目标共识协议;基于目标共识协议执行交易的共识。

【技术实现步骤摘要】
一种自动切换区块链共识协议的方法、系统和装置
本说明书涉及区块链领域,特别涉及一种自动切换区块链共识协议的方法、系统和装置。
技术介绍
区块链是基于共识协议的分布式、去中心化的数据库。区块链平台在运行过程中,需要根据运行环境(节点数量、网络环境、账户安全等)的改变对共识协议进行灵活的切换和升级,同时保证基于不同共识协议生产的历史区块的兼容性。因此,希望提供一种自动切换区块链共识协议的方法、系统和装置。
技术实现思路
本说明书实施例的一个方面提供一种自动切换区块链共识协议的方法,包括:接收与共识协议切换相关的交易请求,并基于交易请求调用共识协议切换的智能合约,将智能合约中共识协议切换的触发条件和目标共识协议的标识写入账本;根据账本判断当前环境是否满足所述共识协议切换的触发条件,当判断结果为满足时,调用目标共识协议;基于目标共识协议执行交易的共识。本说明书实施例的另一个方面提供一种自动切换区块链共识协议的系统,所述系统位于区块链节点上。所述系统包括:记录模块,用于接收与共识协议切换相关的交易请求,并基于交易请求调用共识协议切换的智能合约,将智能合约中共识协议切换的触发条件和目标共识协议的标识写入账本;调用模块,用于根据账本判断当前环境是否满足所述共识协议切换的触发条件,当判断结果为满足时,调用目标共识协议;执行模块,用于基于目标共识协议执行交易的共识。本说明书另一个方面提供一种自动切换区块链共识协议的装置,包括处理器,所述处理器用于执行实现自动切换区块链共识协议的方法。附图说明本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:图1是根据本说明书一些实施例所示的自动切换区块链共识协议的系统的应用场景示意图;图2是根据本说明书一些实施例所示的自动切换区块链共识协议的方法的示例性流程图;图3是根据本说明书一些实施例所示的共识协议切换的智能合约的示意图;图4是根据本说明书一些实施例所示的已经标准化的共识协议的示意图;图5是根据本说明书一些实施例所示的节点调用已经标准化的目标共识协议的示意图;图6是根据本说明书一些实施例所示的新节点对区块链进行验证的方法的示例性流程图。具体实施方式为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。图1是根据本说明书一些实施例所示的自动切换区块链共识协议的系统的应用场景示意图。区块链本质上是一种去中心化的分布式账本,一条完整的区块链通常由多方节点共同维护,每个节点享有对等或不对等的权利,节点间通过共识协议进行交互,共识协议是区块链的核心构成要素,通过共识协议可以起到数据、状态同步、防止节点作恶等重要作用。在实际场景中,线上平台在运行过程中可能会遇到由于运行环境改变需要更改共识协议的情况,例如,节点数量、网络环境、安全等情况,需要对共识协议进行灵活的切换和升级。示例的,联盟中的节点数目不断增加,已经超过了当前共识协议能够高效运行所支持的最大节点数。当前,切换正在运行中的区块链的共识协议存在以下特点:(1)需要停止服务来进行程序或配置的升级;(2)未记录共识协议切换时的相关信息,当在区块链系统中加入新节点时,新节点从其他节点同步区块时无法获知校验同步区块的共识协议;(3)共识协议切换的交易被写入区块链就不可撤销,必然会在下一区块立刻生效,没有为共识协议切换预留一个缓冲时间以应对突发的情况和事件,灵活性不够高。如图1所示,应用场景图100可以包括区块链,区块链包括若干个区块链节点(例如,110-1、110-2、110-3和110-4)、网络(120)和用户终端(例如,130-1和130-2)。自动切换区块链共识协议的系统部署在节点上。在一些实施例中,若干个节点110-1、110-2、110-3、110-4通过网络120相连,构成区块链。在一些实施例中,可以将一方的计算设备、一方的服务器或者一个具有计算和存储能力的系统等作为一个节点。在一些实施例中,节点可以接收调用智能合约的交易请求。在一些实施例中,节点可以存储数据,其中,数据存储于节点中的区块和/或账本中。例如,节点可以将交易数据存储在区块中。又例如,节点可以将执行智能合约的结果数据写入账本中。节点可以将存储的数据在众多其它节点上同步记录。在一些实施例中,节点可以通过查询账本中存储的数据,切换共识协议。在一些实施例中,网络120可促进数据和/或信息的交换,数据或信息可以包括节点设备输入的数据内容、存储的数据内容等。在一些实施例中,自动切换区块链共识协议的系统中的一个或多个节点(例如,110-1、110-2、110-3、110-4、…)可通过网络120发送数据和/或信息给区块链系统中的其他节点。在一些实施例中,网络120可是任意类型的有线或无线网络。例如,网络120可包括缆线网络、有线网络、光纤网络、电信网络、内部网络、网际网络、区域网络(LAN)、广域网络(WAN)、无线区域网络(WLAN)、都会区域网络(MAN)、公共电话交换网络(PSTN)、蓝牙网络、ZigBee网络、近场通讯(NFC)网络等或以上任意组合。在一些实施例中,网络120可包括一个或多个网络进出点。例如,网络120可包含有线或无线网络进出点,如基站和/或网际网络交换点120-1、120-2、…,通过这些进出点,自动切换区块链共识协议的系统中的若干个个节点可连接到网络120上以交换数据和/或信息。用户终端指用户所使用的一个或多个终端设备或软件。在一些实施例中,使用用户终端的可以是一个或多个用户,可以包括直接使用服务的用户,也可以包括其他相关用户。在一些实施例中,用户终端与节点通过网络120相连。在一些实施例中,一个节点(例如,节点本文档来自技高网...

【技术保护点】
1.一种自动切换区块链共识协议的方法,所述方法由区块链节点执行,其包括:/n接收与共识协议切换相关的交易请求,并基于所述交易请求调用共识协议切换的智能合约,将所述智能合约中共识协议切换的触发条件和目标共识协议的标识写入账本;/n根据所述账本判断当前环境是否满足所述共识协议切换的触发条件,当判断结果为满足时,调用所述目标共识协议;/n基于所述目标共识协议执行交易的共识。/n

【技术特征摘要】
1.一种自动切换区块链共识协议的方法,所述方法由区块链节点执行,其包括:
接收与共识协议切换相关的交易请求,并基于所述交易请求调用共识协议切换的智能合约,将所述智能合约中共识协议切换的触发条件和目标共识协议的标识写入账本;
根据所述账本判断当前环境是否满足所述共识协议切换的触发条件,当判断结果为满足时,调用所述目标共识协议;
基于所述目标共识协议执行交易的共识。


2.根据权利要求1所述的方法,所述方法还包括:
当所述共识协议切换完成后,在所述账本中记录切换成所述目标共识协议的切换参数。


3.根据权利要求1所述的方法,所述目标共识协议为已经标准化的共识协议,所述已经标准化的共识协议包括:
创建模块,所述创建模块用于创建区块;
填充模块,所述填充模块用于将交易填充至所述区块并完成所述区块的打包;
广播模块,所述广播模块用于确定具有广播资格的节点,所述具有广播资格的节点将生成的所述区块广播给其他节点;
验证模块,所述验证模块用于验证所述区块。


4.根据权利要求1所述的方法,所述将所述智能合约中共识协议切换的触发条件和目标共识协议的标识写入账本,包括:
基于原始共识协议,对所述交易请求进行共识;
当所述交易请求完成共识后,将所述共识协议切换的触发条件和所述目标共识协议的标识写入所述账本。


5.根据权利要求1所述的方法,所述当前环境至少反映以下一种或多种信息:
当前区块的块高、当前时间、当前所述区块链中至少一个账户的账户金额、当前所述区块链中节点数量和当前所述区块链中至少一个节点对切换的投票结果。


6.根据权利要求5所述的方法,所述当前环境包括当前所述区块链中至少一个节点对切换的投票结果,
所述根据所述账本判断当前环境是否满足共识协议切换的触发条件,包括:
获取投票将所述原始共识协议切换为所述目标共识协议相关的投票交易请求;
调用投票的智能合约,确定将所述原始共识协议切换为所述目标共识协议的投票结果;
判断所述投票结果是否满足所述触发条件。


7.根据权利要求2所述的方法,所述方法还包括:
在所述区块链中加入新节点,所述新节点对所述区块进行验证,包括:
从所述新节点的账本中读取所述目标共识协议切换的切换参数;
基于生成所述区块时的相关信息和所述切换参数,确定验证所述区块的共识协议。


8.根据权利要求3所述的方法,所述当判断结果为满足时,调用所述目标共识协议,包括:
发起所述目标共识协议的调用请求,所述调用请求对应于所述创建模块、所述填充模块、所述广播模块和所述验证模块中一个或多个;
基于至少一个接口,根据所述调用请求调用对应的模块,以及获取所述对应的模块执行的结果。


9.一种自动切换区块链共识协议...

【专利技术属性】
技术研发人员:李翰林
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1