区块链系统的版本升级方法、系统、及装置与流程

文档序号:21407310发布日期:2020-07-07 14:41阅读:665来源:国知局
区块链系统的版本升级方法、系统、及装置与流程

本申请涉及区块链技术领域,特别涉及一种区块链系统的版本升级方法、系统、及装置。



背景技术:

区块链是基于共识机制的分布式、去中心化的数据库。当区块链系统的版本进行周期性更新,或存在缺陷需要被修复时,需要对区块链系统进行升级。若升级前后两个版本之间的差异性较大,升级会存在较高的风险。



技术实现要素:

本说明书一个方面提供一种区块链系统的版本升级方法,所述方法包括以下操作。获取区块链系统的待更新版本对应的第一版本号;基于第一版本号确定所述待更新版本是否为目标版本;若是,则对所述区块链系统的待更新版本进行版本升级时,指定与所述第一版本号相隔第一预设数字区间的第二版本号作为经过升级的版本对应的升级版本号。

本说明书另一个方面提供一种区块链系统的版本升级系统,所述系统包括第一获取模块、第一确定模块、以及第一升级模块。所述第一获取模块用于获取区块链系统的待更新版本对应的第一版本号。所述第一确定模块用于基于第一版本号确定所述待更新版本是否为目标版本。若所述待更新版本为目标版本,所述第一升级模块用于对所述区块链系统的待更新版本进行版本升级时,指定与所述第一版本号相隔第一预设数字区间的第二版本号作为经过升级的版本对应的升级版本号。

本说明书另一个方面提供一种区块链系统的版本升级装置,包括至少一个存储介质和至少一个处理器;所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行以上所述的区块链系统的版本升级方法。

本说明书一个方面提供一种区块链系统的版本升级方法,所述方法包括以下操作。获取区块链系统的待更新版本对应的第一版本号;确定所述区块链系统的待更新版本是否需要升级;若是,升级所述区块链系统的待更新版本,并指定与所述第一版本号相隔第二预设数字区间的第六版本号作为经过升级的区块链系统的版本对应的版本号。

本说明书另一个方面提供一种区块链系统的版本升级系统,所述系统包括第二获取模块、第二确定模块、以及第二升级模块。所述第二获取模块用于获取区块链系统的待更新版本对应的第一版本号。所述第二确定模块用于确定所述区块链系统的待更新版本是否需要升级。若所述区块链系统的待更新版本需要升级,所述第二升级模块用于升级所述区块链系统的待更新版本,并指定与所述第一版本号相隔第二预设数字区间的第六版本号作为经过升级的区块链系统的版本对应的版本号。

本说明书另一个方面提供一种区块链系统的版本升级装置,包括至少一个存储介质和至少一个处理器;所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行以上所述的区块链系统的版本升级方法。

本说明书另一个方面提供一种区块链系统的版本升级方法。所述方法包括以下操作。获取区块链系统的当前版本对应的当前版本号;基于所述当前版本号,确定所述区块链系统的升级版本的升级版本号;将所述区块链系统升级为所述升级版本号对应的升级版本。

本说明书另一个方面提供一种区块链系统的版本升级系统,所述系统包括第一获取模块、第一确定模块、以及第一升级模块。所述第三获取模块用于获取区块链系统的当前版本对应的当前版本号。所述第三确定模块用于基于所述当前版本号确定所述区块链系统的升级版本的升级版本号。所述第三升级模块用于将所述区块链系统升级为所述升级版本号对应的升级版本。

本说明书另一个方面提供一种区块链系统的版本升级装置,包括至少一个存储介质和至少一个处理器;所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行以上所述的区块链系统的版本升级方法。

本说明书另一个方面提供一种区块链系统的版本升级方法。所述方法包括以下操作。获取区块链系统的当前版本对应的当前版本号;将所述区块链系统的当前版本升级为与所述当前版本号相隔第四预设数字区间的第十二版本号对应的版本。

本说明书另一个方面提供一种区块链系统的版本升级系统。所述系统包括第四获取模块、以及第四升级模块。所述第四获取模块用于获取区块链系统的当前版本对应的当前版本号。所述第四升级模块用于将所述区块链系统的当前版本升级为与所述当前版本号相隔第四预设数字区间的第十二版本号对应的版本。

本说明书另一个方面提供一种区块链系统的版本升级装置,包括至少一个存储介质和至少一个处理器;所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行以上所述的区块链系统的版本升级方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的区块链系统的版本升级方法的示例性流程图;

图2是根据本说明书一些实施例所示的区块链系统的版本修复方法的示例性流程图;

图3是根据本说明书一些实施例所示的区块链系统的版本升级系统的示例性框图;

图4是根据本说明书一些实施例所示的另一示例性区块链系统的版本升级方法的示例性流程图;

图5是根据本说明书一些实施例所示的另一区块链系统的版本升级系统的示例性框图;

图6是根据本说明书一些实施例所示的另一示例性区块链系统的版本升级方法的示例性流程图;

图7是根据本说明书一些实施例所示的另一区块链系统的版本升级系统的示例性框图;

图8是根据本说明书一些实施例所示的另一示例性区块链系统的版本升级方法的示例性流程图;

图9是根据本说明书一些实施例所示的另一区块链系统的版本升级系统的示例性框图;

图10a及图10b是根据本说明书一些实施例所示的版本号变更示意图;

图11a及图11b是根据本说明书一些实施例所示的另一版本号变更示意图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

区块链是一种分布式账本,或是分布式数据库,其以数学、密码学、互联网、计算机编程等多种方式保证了存储于其中的数据的不可伪造以及不可篡改。由于区块链的分布式特性,它并不依赖于某一个中心化的“服务器”存在,而是由多个分布式的“服务器”组成。例如,btc是由分布于全球的千万个“服务器”(例如,矿机,智能手机、平板电脑等)组成。这些“服务器”可以被称为区块链的节点。当某个“服务器”上安装并运行支持区块链的处理组件(例如区块链客户端比如软件程序、智能合约,或可执行文件、执行代码等),该“服务器”就可以作为节点接入区块链。例如,下载有加密货币(例如,bitcoin、ether、monero)的客户端的计算机,可以是作为加密货币对应的区块链中的一个节点。

在本说明书中,节点上的安装的支持区块链的处理组件可以被称为区块链系统。随着区块链技术的不断发展,区块链系统也在不停的迭代更新。例如,区块链系统可以进行升级以支持更多的功能。各种升级后的区块链系统,可以通过版本号进行区分,例如,从最初发布的v1版本到升级一次v2版本,到升级n次的vn版本。在一些实施例中,可以由某一节点生成更新后的区块链系统版本,并上传(或发布)至区块链以被区块链中的各节点存储,从而完成更新后版本的部署。当某一版本的区块链系统被部署在区块链中的各个节点上后,各个节点在达成共识后可以对部署于其上的区块链系统进行版本升级。

区块链的行为可以版本号来进行定义。例如,当区块链中生成一个区块时,写入区块中的数据可以包括有区块链系统的版本号,以指示区块中的数据是由节点使用达成共识的版本号对应的区块链系统进行数据处理(例如,验证、读取等)的结果。

在当前,区块链系统的版本迭代更新的速度较快(例如,半个月升级一次,同时发布新版本的区块链系统),其维护与升级成本也越来越高。同时,当区块链上已部署有稳定运行一段时间的某一版本的区块链系统时,往往链上的节点不会去进行版本升级。因为此时节点上运行的区块链系统的版本,可能与最新的版本之间的差异较大,若升级至最新的版本则存在一定的未知的风险。但是,若节点上运行的区块链系统的版本在后续过程中被发现存在缺陷,不得不进行缺陷修复时,则此时节点上运行的区块链系统的版本也需要升级到最新的版本。同样地,由于两个版本之间的差异可能较大,基于缺陷修复的版本升级同样会有较大的风险。

本说明书所披露的区块链系统的版本升级方法,在对某一版本的区块链系统(例如,可以稳定运行较长时间)进行升级时,会对版本号进行预留。这样针对后续的版本修复问题,可以使用预留的版本号,而不必须升级到最新的版本。

图1是根据本说明书一些实施例所示的区块链系统的版本升级方法的示例性流程图。在一些实施例中,流程100可以由发布更新版本的区块链节点执行。例如,流程100可以以程序或指令的形式存储在存储装置(如节点的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程100。在一些实施例中,流程100可以由区块链系统版本升级系统300执行。如图1所示,流程100可以包括下述步骤。

步骤102,获取区块链系统的待更新版本对应的第一版本号。具体地,该步骤102可以由第一获取模块310执行。

在一些实施例中,所述区块链系统的待更新版本,可以是指自区块链系统最开始发布的初始版本,也可以是最开始发布的初始版本经过一次或多次升级或更新得到最新版本。在一些实施例中,待更新版本可以是区块链节点使用的当前版本,也可以是之前的某一版本。待更新版本对应的版本号称为第一版本号。在一些实施例中,区块链系统的版本号可以是以任意数字形式表示,例如,小数比如1.1、2.3等,整数如1、2、3等。出于方便,本说明书中的区块链版本号以整数数字为例进行说明。作为历史,假定区块链系统最开始发布的初始版本记为第一版,则经过一次升级或更新后得到的版本为第二版,经过两次升级或更新后得到的版本为第三版,经过n-1次升级或更新得到的现有的最新版本为第n版。所述区块链系统的待更新版本则可以是第1、2、3、…、或n版,相应的,所述第一版本号可以使用第n版,或vn表示,n为整数。

步骤104,基于第一版本号确定所述待更新版本是否为目标版本。具体地,该步骤104可以由第一确定模块320执行。

在一些实施例中,所述目标版本可以是在能够在节点上长期且稳定运行的某一版区块链系统。例如,该版本的区块链系统可以是支持区块链比如联盟链的核心功能,且能稳定运行。区块链系统某一版本是否被指定为目标版本可以是预先确定的。例如,由区块链管理者或发布更新版本的节点确定。作为示例,当某一区块链被构建,最先发布的一版区块链系统可以被指定为目标版本。或是对最先发布的一版区块链系统进行了某些修复和/或升级的第二版区块链系统可以被指定为目标版本,或者是在运行一段时间后进行了重大升级或重要功能添加的某一版本的区块链系统可以被指定为目标版本。

区块链系统可以是有规律的进行升级的,比如区块链管理者可以每隔一段预设时间段比如半个月、一个月等发布一个新版本的区块链系统。每一个新发布的新版本的区块链系统,可以是基于前一版本的区块链系统新增某一项或多项功能得到。在一些实施例中,区块链管理者也可以基于用户的需求对区块链系统的版本进行升级。

在一些实施例中,第一确定模块320可以通过比较所述第一版本和所述目标版本,以确定两者是否相同,并进一步确定所述待更新版本是否为目标版本。在一些实施例中,第一确定模块320可以直接基于第一版本号判断待更新版本是否为目标版本。若所述待更新版本为目标版本,则执行步骤106,否则执行步骤108。

步骤106,对所述区块链系统的待更新版本进行版本升级时,指定与所述第一版本号相隔第一预设数字区间的第二版本号作为经过升级的版本对应的升级版本号。具体地,该步骤106可以由第一升级模块330执行。

在本说明书中,版本升级可以是指对区块链系统进行代码改进以添加新功能,和/或对原有功能进行改进等。一般的,当区块链系统的某一版本进行升级后,升级后的版本的版本号也需要进行变更(因为版本号被用于定义区块链行为,比如各个节点约定使用哪一个版本的区块链系统处理数据)。例如,v1版本进过一次升级可以得到v2版本。每经过一次升级,区块链系统的版本号将变更一次。一种方式是版本号依次递增。例如,按排序从v1版本、v2版本、v3版本一直到到vn版本。各个版本之间不会预留空隙。在本说明书又一些实施例中,当作为目标版本的所述区块链系统的待更新版本需要升级时,第一升级模块330可以对升级完成的区块链系统的版号执行跳跃式改变。例如,从v2版本经过升级后变成v7版本。这种跳跃式的间隔,可以由第一预设数字区间限定。所述第一预设数字区间可以是包含预定个数的数字的一段区间。例如,所述第一预设数字区间可以包含有3个数字的一段区间。所述第一预设数字区间中所包含的数字的个数也可以被称为所述第一预设数字区间的长度。例如,上述举例中第一预设数字区间的长度为3。在一些实施例中,所述第一预设数字区间中包含的数字可以是与区块链系统的待更新版本的版本号相关。例如,假定所述第一预设数字区间的长度为3,区块链系统的待更新版本的版本号为v2,则所述第一预设数字区间中所包含的数字可以是3、4、以及5。参考图10a,图10a是根据本说明书的一些实施例所述的示例性的版本号变更示意图。如图10a所示,第一预设数字区间的长度为3,区块链系统的待更新版本的版本号(即,第一版本号)为v2。则v6是与第一版本号相隔第一预设数字区间的第二版本号。升级完毕后,作为目标版本的所述区块链系统的待更新版本的升级版本号可以被指定为v6。

步骤108,对所述区块链系统的待更新版本进行版本升级时,指定与所述第一版本号相邻的第三版本号作为升级的版本对应的升级版本号。具体地,该步骤108可以由第一升级模块330执行。

在一些实施例中,与第一版本号相邻的第三版本号是可以是指按数字大小序列排列,位于第一版本号的后方且与第一版本号相邻接的版本号。继续参考图10a,假定区块链系统的待更新版本对应的第一版本号为v7,那么第三版本号可以是v8。若区块链系统的待更新版本不是目标版本,则经过升级后区块链系统的待更新版本对应的升级版本号可以被指定为v8。

本说明书所披露的区块链系统的版本升级方法,对于升级时版本号变更进行了改进。对于某些版本的区块链系统进行了版本号预留。预留的版本号可以用于后续的这些版本的其他变更(比如,版本修复等,参见图2中的描述)。这样所带来的变更风险将被降低。

应当注意的是,上述有关流程100的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程100进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图2是根据本说明书一些实施例所示的示例性区块链系统的目标版本的版本修复方法的示例性流程图。在一些实施例中,流程200可以由发布更新版本的节点执行。例如,流程200可以以程序或指令的形式存储在存储装置(如节点的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。在一些实施例中,流程200可以由区块链系统版本升级系统300的修复模块340执行。当区块链系统的待更新版本为目标版本时,流程200可以被执行。如图2所示,流程200可以包括下述步骤。

步骤202,确定所述区块链系统的待更新版本是否存在缺陷需要修复。

在一些实施例中,所述缺陷可以是指所述区块链系统的待更新版本不够完备的地方,例如支持既有功能的代码漏洞,其会给区块链系统带来负面影响,例如影响稳定性以及数据处理速度、或会被攻击者利用进行安全攻击。可以理解的,即便区块链系统的版本一直在迭代升级,但部署于区块链节点上的区块链系统的版本可能存在着不会随着升级而消除的缺陷,且随着系统的运行一段时间后,这些缺陷才会暴露。因为迭代更新所发布的升级版本,可能是未经过长时间测试的非稳定版本,即便其中添加了某些新功能。因此,当出现目标版本的区块链系统存在缺陷,而这个版本的区块链系统已部署于节点上时,则需要对其进行缺陷修复,比如代码的修改、补充或优化等。

步骤204,修复所述区块链系统的待更新版本,并同时更新修复后的版本对应的版本号。

示例性的区块链系统的版本修复,可以是发布更新版本的节点对待更新版本中的缺陷进行补救。例如,对支持某一功能的代码漏洞进行替换/更改,以使该功能恢复正常。修复后的版本发布后,各节点可以对其上的相关文件(例如,支持区块链系统的二进制文件)进行替换后,所有节点基于共识后同时将部署于其上的区块链版本更新到修复后的版本。

在一些实施例中,修复后的版本对应的版本号同时也将更改。该更改后的版本号可以为处于所述第一预设数字区间内的,且与所述第一版本号相邻的第四版本号。参考图10b,作为目标版本的区块链系统的待更新版本的版本号(即,第一版本号)为v2。当发现缺陷进行修复后,修复后的版本的版本号(即,第四版本号)可以被指定为v3。v3为所述第一预设数字区间中,与“2”相邻的数字“3”表示的版本号。

在对作为目标版本的区块链系统的待更新版本进行升级时,所预留的版本号段(例如,第一预设数字区间)可以用来作为版本修复后的区块链系统的版本号。区块链系统的版本升级,一般都是基于前一版本的基础进行,例如添加新功能后发布的新一版也包含了前一版的所有功能。由于区块链的特性,版本号也对应了区块链系统的特性。例如,假定最初发布的区块链系统支持功能1,而后升级得到的第二版添加了功能2,则第二版的版本号显示了该版本的区块链系统支持功能1和功能2。这是一个相当于累加的过程。若每一次升级都添加一个新功能,当出现第n版的版本号时,则该版本号显示了对应的区块链系统支持所有的功能,比如功能1到功能n。这样,对于目标版本的区块链系统来说,若发现了缺陷必须修复,如果在之前的过程中(例如,版本升级以及版本赋号),版本号是依次递增的,那目标版本只能进行全盘升级,例如,图10b中所示的从v2版本升级到v83版本。此时,两个版本之间的差异由于多次升级已变得非常巨大,升级后的版本出现问题的风险过高。而本说明书中所披露的方法,可以使用预留的版本号段,只需从v2版本更新到v3版本(图10b中所示),无需基于后续的版本之间的差异进行更新,由于v3版本仅是对待更新版本v2中存在的缺陷进行修复,而未过多增加新的功能,这样更新后的版本出现问题的风险则变得较小。而且,排在v3版本之后的v6版本同样包含了v3版本中的全部功能,这维护了基于区块链系统版本号的规律,为后续区块链系统版本的管理提供了便利。

在一些实施例中,第一修复模块340在对作为目标版本的区块链系统的待更新版本进行修复后,可以同时对所述区块链系统的最新升级版本进行修复。由于最新升级版本的区块链系统同样是基于目标版本的区块链系统进行升级至少一次得到的,也必然会存在有相同的缺陷。第一修复模块340可以基于作为目标版本的区块链系统的待更新版本中所存在的缺陷对最新版本的区块链系统进行修复,并且同时更新修复后的最新升级版本对应的版本号。修复后的最新升级版本对应的版本号为与最新升级版本对应的版本号相邻的第五版本号。类似的,相邻可以是指位于最新升级版本对应的版本号之后的邻接版本号。继续参考图10b,区块链系统的最新升级版本对应的版本号为v82,与其相邻的第五版本号为v83。则修复后的最新升级版本对应的版本号为v83。

应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图3是根据本说明书的一些实施例所示的示例性的区块链系统的版本升级系统的示例性框图。如图3所示,区块链系统版本升级系统300可以包括第一获取模块310、第一确定模块320、第一升级模块330、以及第一修复模块340。

第一获取模块310可以用于获取区块链系统的待更新版本对应的第一版本号。所述区块链系统的待更新版本,可以是指自区块链系统最开始发布的初始版本,也可以是最开始发布的初始版本经过一次或多次升级或更新得到最新版本。在一些实施例中,区块链系统的版本号可以是以整数数字表示。例如,所述区块链系统的待更新版本可以是第1、2、3、…、或n版,相应的,所述第一版本号可以使用第n版,或vn表示,n为整数。

第一确定模块320可以用于基于第一版本号确定所述待更新版本是否为目标版本。所述目标版本可以是在能够在节点上长期且稳定运行的某一版区块链系统。区块链系统某一版本是否被指定为目标版本可以是预先确定的。第一确定模块320可以通过比较所述第一版本和所述目标版本,以确定两者是否相同,并进一步确定所述待更新版本是否为目标版本。

第一升级模块330可以用于对区块链系统的待更新版本进行升级。版本升级可以是指对区块链系统进行代码改进以添加新功能,和/或重新定义区块数据大小等。当所述区块链系统的待更新版本是目标版本时,第一升级模块330可以对升级完成的区块链系统的版号执行跳跃式改变。例如,从v2版本经过升级后变成v7版本。当所述区块链系统的待更新版本不是目标版本时,第一升级模块330可以指定与所述第一版本号相邻的第三版本号作为升级的版本对应的升级版本号。例如,从v8版本经过升级后变成v9版本。

第一修复模块340可以用于对区块链系统的进行缺陷修复。当区块链系统的待更新版本为目标版本时,第一修复模块340在修复区块链系统同时,也可以同时更新修复后的版本对应的版本号。更改后的版本号可以为处于所述第一预设数字区间内的,且与所述第一版本号相邻。第一修复模块340还可以在对作为目标版本的区块链系统的待更新版本进行修复后,可以同时对所述区块链系统的最新升级版本进行修复。

关于模块的其他描述可以参考流程图部分,例如,图1至图2。

图4是根据本说明书一些实施例所示的另一示例性区块链系统的版本升级方法的示例性流程图。在一些实施例中,流程400可以由发布更新版本的节点执行。例如,流程400可以以程序或指令的形式存储在存储装置(如节点的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程400。在一些实施例中,流程400可以由区块链系统版本升级系统500执行。如图4所示,流程400可以包括下述步骤。

步骤402,获取区块链系统的待更新版本对应的第一版本号。具体地,该步骤402可以由第二获取模块510执行。

步骤402与步骤102相同或类似,具体描述可以参考步骤102相关部分。

步骤404,确定区块链系统的待更新版本是否需要升级。具体地,该步骤504可以由第二确定模块520执行。

在一些实施例中,升级可以是指对区块链系统进行代码改进以添加新功能,和/或对原有功能进行改进等。区块链系统的版本升级,可以是定时的迭代升级,具有一个固定的升级周期。例如,可以是每个一段预设时间比如半个月、一个月等升级一次。第二确定模块520可以根据上一次区块链系统的版本升级时间(即,由某一版本升级到待升级版本的时间)确定是否需要升级。又或者,第二确定模块520可以基于是否需要向区块链系统中添加新的功能来确定待更新版本是否需要升级。区块链系统的版本升级,也可以是根据区块链的管理者或开发者根据区块链的用户的需求来确定。

步骤406,升级所述区块链系统的待更新版本,并指定与所述第一版本号相隔第二预设数字区间的第六版本号作为经过升级的区块链系统的待更新版本对应的版本号。具体地,该步骤406可以由第二升级模块530执行。

步骤406可以与步骤106相似,可以参考步骤106的相关描述。

与本说明书其他部分(例如,图1)的描述不同的是,第二升级模块530可以对区块链系统的每一次的版本(包括目标版本或其他普通版本)升级,进行版本号预留。参考图11a,图11a是根据是本说明书的一些实施例所述的示例性的版本号变更示意图。当区块链系统的待更新版本对应的第一版本号为v1时,经过升级后,与v1相隔第二预设数字区间(与所述第一预设数字区间类似,为长度为3的数字区间)的v5作为经过升级的区块链系统的待更新版本对应的版本号。v5即为所述第五版本号。类似的,当区块链系统的待更新版本对应的第一版本号为v5时,经过升级后,与v5相隔第二预设数字区间的v9作为经过升级的区块链系统的待更新版本对应的版本号。

在一些实施例中,区块链系统版本升级系统500(或第二修复模块540)可以确定所述区块链系统的待更新版本是否存在缺陷需要修复。确定步骤可以与步骤202相同或类似,具体描述可以参考步骤202相关部分。若区块链系统的待更新版本需要修复,第二修复模块540可以修复所述待更新版本,并同时更新修复后的区块链系统的待更新版本对应的版本号。同样地,描述参考步骤204。若区块链系统的待更新版本经过修复,修复后的区块链系统的版本对应的版本号为处于所述第二预设数字区间内的,且与所述第一版本号相邻的第七版本号。参考图10b,如图10b所示,假定区块链系统的待更新版本的版本号为v1,则经过修复后的区块链系统的待更新版本对应的版本号为长度为3的第二预设数字区间内,与v1相邻的v2。v2即为所述第七版本号。同样的,假定区块链系统的待更新版本的版本号为v5,则经过修复后的区块链系统的待更新版本对应的版本号为长度为3的第二预设数字区间内,与v5相邻的v6。v6即为所述第七版本号。

在一些实施例中,第二修复模块540在对区块链系统的待更新版本进行修复后,可以同时对所述区块链系统的最新升级版本进行修复。与步骤204中的描述类似,第二修复模块540在对区块链系统的最新升级版本进行修复后,同样可以同时更新修复后的最新升级版本对应的版本号。修复后的最新升级版本对应的版本号为与最新升级版本对应的版本号相邻的版本号。相邻,可以是指位于最新升级版本对应的版本号之后的邻接版本号。继续参考图11b,区块链系统的最新升级版本对应的版本号为v81,与其相邻的版本号为v82。则修复后的最新升级版本对应的版本号为v82。

应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程400进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图5是根据本说明书的一些实施例所示的另一示例性的区块链系统的版本升级系统的示例性框图。如图5所示,区块链系统版本升级系统500可以包括第二获取模块510、第二确定模块520、第二升级模块530、以及第二修复模块540。

第二获取模块510可以用于,获取区块链系统的待更新版本对应的第一版本号。所述区块链系统的待更新版本,可以是指自区块链系统最开始发布的初始版本,也可以是最开始发布的初始版本经过一次或多次升级或更新得到最新版本。在一些实施例中,区块链系统的版本号可以是以整数数字表示。例如,所述区块链系统的待更新版本可以是第1、2、3、…、或n版,相应的,所述第一版本号可以使用第n版,或vn表示,n为整数。

第二确定模块520可以用于确定区块链系统的待更新版本是否需要升级。区块链系统的版本升级,可以是定时的迭代升级,具有一个固定的升级周期。例如,可以是每个一段预设时间比如半个月、一个月等升级一次。第二确定模块520可以根据上一次区块链系统的版本升级时间(即,由某一版本升级到待升级版本的时间)确定是否需要升级。又或者,第二确定模块520可以基于是否需要向区块链系统中添加新的功能来确定待更新版本是否需要升级。区块链系统的版本升级,也可以是根据区块链的管理者或开发者根据区块链的用户的需求来确定。

第二升级模块530可以用于升级所述区块链系统的待更新版本,并指定与所述第一版本号相隔第二预设数字区间的第六版本号作为经过升级的区块链系统的待更新版本对应的版本号。第二升级模块530可以对区块链系统的每一次的版本(包括目标版本或其他普通版本)升级,进行版本号预留。例如,假定区块链系统的待更新版本对应的第一版本号为v1时,经过升级后,与v1相隔第二预设数字区间(与所述第一预设数字区间类似,为长度为3的数字区间)的v5作为经过升级的区块链系统的版本对应的版本号。

第二修复模块540可以用于可以确定所述区块链系统的待更新版本是否存在缺陷需要修复。当需要修复时,第二修复模块540可以修复所述待更新版本,并同时更新修复后的区块链系统的待更新版本对应的版本号。修复后的区块链系统的版本对应的版本号为处于所述第二预设数字区间内的,且与所述第一版本号相邻的。在一些实施例中,第二修复模块540在对区块链系统的待更新版本进行修复后,可以同时对所述区块链系统的最新升级版本进行修复。修复后的最新升级版本对应的版本号为与最新升级版本对应的版本号相邻。

关于模块的其他描述可以参考流程图部分,例如,图4。

图6是根据本说明书一些实施例所示的区块链系统的版本升级方法的示例性流程图。在一些实施例中,流程600可以由区块链上的用户节点执行。例如,流程800可以以程序或指令的形式存储在存储装置(如节点的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程600。在一些实施例中,流程600可以由区块链系统版本升级系统700执行。如图6所示,流程600可以包括下述步骤。

步骤602,获取区块链系统的当前版本对应的当前版本号。具体地,该步骤602可以由第三获取模块710执行。

在一些实施例中,所述区块链系统的当前版本,可以是部署于区块链的用户节点上的区块链系统的版本,或者是用户节点上当前使用的区块链系统的版本。当前版本对应的版本号可以被称为所述当前版本号。可以理解,区块链系统可以存在有多个版本(例如,从最初发布的初始版本到经过多次升级的多个升级版本),所述区块链系统的当前版本,可以是这其中的一个。在一些实施例中,区块链系统的版本号可以是以任意数字形式表示,例如,小数比如1.1、2.3等,整数如1、2、3等。本流程中以整数进行说明。例如,区块链系统的当前版本可以是最开始发布的初始版本(可以记为第一版),或经过一次升级或更新后得到的第二个版本(可以记为第二版),经过两次升级或更新后得到的第三个版本(可以记为第三版),经过n-1次升级或更新得到的现有的最新版本的第n版本(可以记为第n版)。则所述区块链系统的当前版本则可以是第1、2、3、…、或n版,相应的,所述当前版本号可以使用第n版,或vn表示,n为整数。

步骤604,基于所述当前版本号,确定所述区块链系统的升级版本的升级版本号。基于第一版本号确定所述待更新版本是否为目标版本。具体地,该步骤604可以由第三确定模块720执行。

在一些实施例中,当区块链系统被发布后,其可以是不断的进行升级的,例如,添加新功能。每添加一个或多个新功能,区块链系统的版本可以认为是经过一次升级。参考步骤602中的示例,相对于最开始发布的初始版本,后续经过升级或更新的任一个版本,都可以被称为是一个升级版本。同样的,升级版本对应的版本号可以被称为升级版本号。

在一些实施例中,为确定所述升级版本号,第三确定模块720可以确定所述当前版本号是否为目标版本号。所述目标版本号可以是区块链系统的目标版本对应的版本号。所述目标版本可以是在能够在节点上长期且稳定运行的某一版区块链系统。例如,该版本的区块链系统可以是支持区块链比如联盟链的核心功能,且能稳定运行。区块链系统某一版本是否被指定为目标版本可以是预先确定的。例如,由区块链管理者或发布更新版本的节点确定。作为示例,当某一区块链被构建,最先发布的一版区块链系统可以被指定为目标版本。或是对最先发布的一版区块链系统进行了某些修复和/或升级的第二版区块链系统可以被指定为目标版本,或者是在运行一段时间后进行了重大升级或重要功能添加的某一版本的区块链系统可以被指定为目标版本。由于区块链系统的版本号可以以数字表示,第三确定模块720可以通过比较表示所述目标版本号与所述当前版本号的数字直接确定所述当前版本号是否为目标版本号。

在一些实施例中,若所述当前版本号是目标版本号,第三确定模块720可以确定与所述当前版本号相隔第三预设数字区间的第八版本号为所述升级版本号。所述第三预设数字区间可以与所述第一预设数字区间以及所述第二数字预设区间类似,可以是包含预定个数的数字的一段区间。例如,包含有3个整数的区间。所包含的数字的个数可以被称为所述第三预设数字区间的长度。作为示例,假定所述当前版本号为v2,所述第三预设数字区间的长度为3(包含3、4、及5),则第三确定模块720可以确定第八版本号(v6)为升级版本号。若所述当前版本号不是目标版本号,则第三确定模块720可以定所述升级版本号为与所述当前版本号相邻的第九版本号为所述升级版本号。例如,将与v7相邻的v8作为所述升级版本号。

步骤606,将所述区块链系统升级为所述升级版本号对应的升级版本。具体地,该步骤606可以由第三升级模块730执行。

在一些实施例中,第三升级模块730可以基于升级版本号获取对应的升级版本的文件,并对区块链版本进行升级。

在一些实施例中,对于区块链系统的版本升级,升级后的版本可以是由部署所述区块链系统的用户节点的使用者指定的。例如,用户节点的使用者可以指定将所述区块链系统升级为发布过的多个版本的中的任一一个。

在一些实施例中,区块链版本升级系统700(例如,第三修复模块740)可以确定所述区块链系统的当前版本是否存在缺陷需要修复。所述缺陷可以是指所述区块链系统的当前版本不够完备的地方,例如支持既有功能的代码漏洞,其会给区块链系统带来负面影响,例如影响稳定性以及数据处理速度、或会被攻击者利用进行安全攻击。可以理解的,即便区块链系统的版本一直在迭代升级,但部署于区块链节点上的区块链系统的当前版本可能存在着不会随着升级而消除的缺陷,且随着系统的运行一段时间后,这些缺陷才会暴露。因为迭代更新所发布的升级版本,可能是未经过长时间测试的非稳定版本,即便其中添加了某些新功能。因此,当出现某一版本的区块链系统存在缺陷,而这个版本的区块链系统已部署于节点上时,则需要对其进行缺陷修复,比如代码的修改、补充或优化等。

在一些实施例中,若所述区块链系统的当前版本需要修复,第三修复模块740可以基于所述当前版本号,确定所述区块链系统的修复版本的修复版本号,并将所述区块链系统修复为所述更新版本号对应的修复版本。所述修复版本可以是对缺陷进行了补救过后的版本,其对应的版本号可以是所述修复版本号。为确定所述修复版本号,第三修复模块740可以确定所述当前版本号是否为目标版本号。若是,第三修复模块740可以确定处于所述第三预设数字区间内的,且与所述当前版本号相邻的第十版本号为所述修复版本号。例如,假定所述当前版本号为v2,所述第三预设数字区间的长度为3(包含3、4、及5),则第三修复模块740可以确定第十版本号(v3)为修复版本号。若所述当前版本号不是目标版本号,则第三确定模块720可以定所述升级版本号为与所述当前版本号相邻的第十一版本号为所述升级版本号。例如,将与v8相邻的v9作为所述修复版本号。在确定修复版本号后,第三修复模块740可以获取修复版本对应的修复版本的文件,并对区块链系统进行修复。

应当注意的是,上述有关流程600的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程600进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图7是根据本说明书的一些实施例所示的另一示例性的区块链系统的版本升级系统的示例性框图。如图7所示,区块链系统版本升级系统700可以包括第三获取模块710、第三确定模块720、第三升级模块730、以及第三修复模块740。

第三获取模块710可以用于获取区块链系统的当前版本对应的当前版本号。所述区块链系统的当前版本,可以是部署于区块链的用户节点上的区块链系统的版本,或者是用户节点上当前使用的区块链系统的版本。当前版本对应的版本号可以被称为所述当前版本号。

第三确定模块720可以用于基于所述当前版本号,确定所述区块链系统的升级版本的升级版本号。相对于最开始发布的初始版本,后续经过升级或更新的任一个版本,都可以被称为是一个升级版本。同样的,升级版本对应的版本号可以被称为升级版本号。为确定所述升级版本号,第三确定模块720可以确定所述当前版本号是否为目标版本号。所述目标版本号可以是区块链系统的目标版本对应的版本号。所述目标版本可以是在能够在节点上长期且稳定运行的某一版区块链系统。若所述当前版本号是目标版本号,第三确定模块720可以确定与所述当前版本号相隔第三预设数字区间的第八版本号为所述升级版本号。若所述当前版本号不是目标版本号,则第三确定模块720可以定所述升级版本号为与所述当前版本号相邻的第九版本号为所述升级版本号。

第三升级模块730可以用于将所述区块链系统升级为所述升级版本号对应的升级版本。

第三修复模块740可以用于确定所述区块链系统的当前版本是否存在缺陷需要修复。所述缺陷可以是指所述区块链系统的当前版本不够完备的地方,例如支持既有功能的代码漏洞,其会给区块链系统带来负面影响,例如影响稳定性以及数据处理速度、或会被攻击者利用进行安全攻击。若所述区块链系统的当前版本需要修复,第三修复模块740可以基于所述当前版本号,确定所述区块链系统的修复版本的修复版本号,并将所述区块链系统修复为所述更新版本号对应的修复版本。为确定所述修复版本号,第三修复模块740可以确定所述当前版本号是否为目标版本号。若是,第三修复模块740可以确定处于所述第三预设数字区间内的,且与所述当前版本号相邻的第十版本号为所述修复版本号。若所述当前版本号不是目标版本号,则第三确定模块720可以定所述升级版本号为与所述当前版本号相邻的第十一版本号为所述升级版本号。

关于模块的其他描述可以参考本说明书流程图部分,例如,图6。

图8是根据本说明书一些实施例所示的区块链系统的版本升级方法的示例性流程图。在一些实施例中,流程800可以由区块链上的用户节点执行。例如,流程800可以以程序或指令的形式存储在存储装置(如节点的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程800。在一些实施例中,流程600可以由区块链系统版本升级系统700执行。如图8所示,流程800可以包括下述步骤。

步骤802,获取区块链系统的当前版本对应的当前版本号。具体地,该步骤802可以由第四获取模块910执行。

步骤802与步骤602相同或类似,具体描述可以参考步骤602相关部分。

步骤804,将所述区块链系统的当前版本升级为与所述当前版本号相隔第四预设数字区间的第十二版本号对应的版本。具体地,该步骤804可以由第四升级模块920执行。

步骤804可以与步骤604以及步骤606相似,可以参考步骤604以及步骤606的相关描述。

在一些实施例中,对于任一一个区块链系统的当前版本,当需要升级时,升级后的版本的版本号与当前版本都会有一定的间隔。作为示例,当区块链系统的当前版本对应的当前版本号为v1时,第四升级模块920对区块链系统升级后,与v1相隔第四预设数字区间(与所述第一预设数字区间、第二预设数字区间、或第三预设数字区间类似,假定为长度为3的数字区间)的v5作为经过升级的区块链系统的版本对应的版本号。v5即为所述第十二版本号。

在一些实施例中,区块链系统版本升级系统900(或第四修复模块930)可以确定所述区块链系统的当前版本是否存在缺陷需要修复。确定步骤可以与步骤606相同或类似,具体描述可以参考步骤606相关部分。若区块链系统的当前版本需要修复,第四修复模块930可以将所述区块链系统的当前版本修复为处于所述第四预设数字区间内的,且与所述当前版本号相邻的第十三版本号对应的版本。作为示例,假定区块链系统的当前版本号为v1,则经过修复后的区块链系统的修复版本对应的版本号为长度为3的第四预设数字区间内,与v1相邻的v2。v2即为所述第十三版本号。

应当注意的是,上述有关流程800的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程800进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图9是根据本说明书的一些实施例所示的另一示例性的区块链系统的版本升级系统的示例性框图。如图9所示,区块链系统版本升级系统900可以包括第四获取模块910、第四升级模块920、以及第四修复模块930。

第四获取模块910可以用于获取区块链系统的当前版本对应的当前版本号。

第四升级模块920可以用于将所述区块链系统的当前版本升级为与所述当前版本号相隔第四预设数字区间的第十二版本号对应的版本。

第四修复模块930可以用于确定所述区块链系统的当前版本是否存在缺陷需要修复。若区块链系统的当前版本需要修复,第四修复模块930可以将所述区块链系统的当前版本修复为处于所述第四预设数字区间内的,且与所述当前版本号相邻的第十三版本号对应的版本。

关于模块的其他描述可以参考本说明书流程图部分,例如,图8。

应当理解,图3、图5、图7、以及图9所示的设备及其模块可以利用各种方式来实现。例如,设备及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的设备及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于区块链系统版本升级系统300、区块链系统版本升级系统500、区块链系统版本升级系统700、以及区块链系统版本升级系统900的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例可能带来的有益效果包括但不限于:在区块链系统的版本升级中,针对目标版本的区块链系统进行升级时预留版本号,可以用于之后的版本缺陷修复,减小了版本差距过大导致的缺陷修复风险。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1