状态数据软件版本切换方法、区块链节点和区块链系统技术方案

技术编号:38218319 阅读:15 留言:0更新日期:2023-07-25 11:29
一种区块链中状态数据软件版本切换方法、区块链节点和区块链系统,所述区块链包括第一节点和多个第二节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,所述方法由所述第一节点执行,包括:将所述M个区块的第一状态数据发送给各个所述第二节点;向各个所述第二节点发送软件配置信息,所述软件配置信息中包括待启用的所述第一版本的状态数据软件的版本标识。版本的状态数据软件的版本标识。版本的状态数据软件的版本标识。

【技术实现步骤摘要】
状态数据软件版本切换方法、区块链节点和区块链系统


[0001]本说明书实施例属于区块链
,尤其涉及一种区块链中的状态数据软件版本切换方法、区块链节点和区块链系统。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

技术实现思路

[0003]本专利技术的目的在于提供一种区块链中的状态数据软件版本切换方案,以提高区块链的可用性。
[0004]本说明书第一方面提供一种区块链中状态数据软件版本切换方法,所述区块链包括第一节点和多个第二节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,所述方法由所述第一节点执行,包括:
[0005]将所述M个区块的第一状态数据发送给各个所述第二节点;
[0006]向各个所述第二节点发送软件配置信息,所述软件配置信息中包括所述第一版本的版本标识,作为待启用的状态数据软件的版本标识。
[0007]本说明书第二方面提供一种区块链中状态数据软件版本切换方法,所述区块链包括第一节点和多个第二节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,所述方法由所述第二节点执行,包括:
[0008]从所述第一节点接收所述M个区块的第一状态数据;
[0009]从所述第一节点接收配置信息,所述软件配置信息中包括所述第一版本的版本标识,作为待启用的状态数据软件的版本标识;
[0010]根据所述第一版本的版本标识更新状态数据软件的配置。
[0011]本说明书第三方面提供一种区块链中的第一节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,所述区块链还包括多个第二节点,各个第二节点中包括所述M个区块的第二状态数据,所述第一节点包括:
[0012]第一发送单元,用于将所述M个区块的第一状态数据发送给各个所述第二节点;
[0013]第二发送单元,用于向各个所述第二节点发送软件配置信息,所述软件配置信息
中包括所述第一版本的版本标识,作为待启用的状态数据软件的版本标识。
[0014]本说明书第四方面提供一种区块链中的第二节点,所述区块链包括第一节点和多个第二节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,所述第二节点包括:
[0015]接收单元,用于从所述第一节点接收所述M个区块的第一状态数据;从所述第一节点接收配置信息,所述软件配置信息中包括所述第一版本的版本标识,作为待启用的状态数据软件的版本标识;
[0016]更新单元,用于根据所述第一版本的版本标识更新状态数据软件的配置。
[0017]本说明书第五方面提供一种区块链系统,包括第一节点和多个第二节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,
[0018]所述第一节点用于将所述M个区块的第一状态数据发送给各个所述第二节点;向各个所述第二节点发送软件配置信息,所述软件配置信息中包括所述第一版本的版本标识,作为待启用的状态数据软件的版本标识;
[0019]所述第二节点用于根据所述第一版本的版本标识更新状态数据软件的配置。
[0020]本说明书第六方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面所述的方法。
[0021]本说明书第七方面提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面所述的方法。
[0022]在本说明书实施例提供的方案中,通过在区块链中的一个节点中同时存储版本A的状态数据和版本B的状态数据,使得当版本B的状态数据出现预设的分叉情况时,从该节点将版本A的状态数据同步至区块链中的其他节点,并指示其他节点切换状态数据软件,从而区块链可基于版本A的状态数据软件继续运行,提高了区块链的可用性。
附图说明
[0023]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1为一实施例中的区块链架构图;
[0025]图2是一个区块链数据存储的结构示意图;
[0026]图3为PBFT共识算法中的共识过程示意图;
[0027]图4为本说明书实施例中的区块链中存储的状态数据示意图;
[0028]图5为本说明书实施例中区块执行的方法流程图;
[0029]图6为本说明书实施例中的在区块链中切换状态数据软件版本的方法流程图;
[0030]图7为本说明书实施例中的区块链节点中存储的状态数据的示意图;
[0031]图8为本说明书实施例中的一种区块链中的第一节点的架构图;
[0032]图9为本说明书实施例中的一种区块链中的第二节点的架构图。
具体实施方式
[0033]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0034]图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中包括N个节点,图1中示意示出节点1

节点8。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,所述连接例如可以为TCP连接等,用于在节点之间传输数据。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链中状态数据软件版本切换方法,所述区块链包括第一节点和多个第二节点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,所述方法由所述第一节点执行,包括:将所述M个区块的第一状态数据发送给各个所述第二节点;向各个所述第二节点发送软件配置信息,所述软件配置信息中包括所述第一版本的版本标识,作为待启用的状态数据软件的版本标识。2.根据权利要求1所述的方法,所述软件配置信息还包括所述第二版本的版本标识,作为维持使用的状态数据软件的版本标识。3.根据权利要求1或2所述的方法,所述软件配置信息中还将所述第一版本的版本标识作为待共识的状态数据的版本标识。4.根据权利要求3所述的方法,所述软件配置信息中还包括第一区块的标识,作为开始进行状态数据软件版本切换的区块的区块标识,所述第一区块为所述M个区块之后的区块。5.根据权利要求4所述的方法,所述第一区块为所述M个区块中的最新区块的下一个区块,所述方法还包括:执行所述第一区块;根据所述第一区块的执行结果生成所述第一区块的第一状态数据和第二状态数据;与区块链中的其他节点对所述第一区块的第二状态数据进行共识;当在共识过程中确定区块链中各个节点生成的所述第一区块的第二状态数据出现预设分叉情况时,中止对所述第一区块的处理;所述将所述M个区块的第一状态数据发送给各个所述第二节点包括:在中止对所述第一区块的处理之后,将所述M个区块的第一状态数据发送给各个所述第二节点。6.根据权利要求5所述的方法,还包括:在中止对所述第一区块的处理之后,更新状态数据软件的配置,所述配置中包括第一版本的版本标识,作为待共识的状态数据的版本标识;根据所述更新的状态数据软件的配置,基于所述第一区块的第一状态数据生成所述第一区块的区块头;在确定各个所述第二节点根据所述软件配置信息完成对状态数据软件的配置的更新之后,与其他节点进行对所述第一区块的区块头的共识;在对所述第一区块的区块头的共识达成的情况下,存储所述第一区块的区块头。7.根据权利要求6所述的方法,所述中止对所述第一区块的处理包括:中止对所述区块链的平台软件的运行,所述方法还包括:在确定各个所述第二节点根据所述软件配置信息完成对状态数据软件的配置的更新之后,重启对所述平台软件的运行,将在所述平台软件停止运行期间接收的交易提供给所述平台软件作为待执行的交易。8.根据权利要求1所述的方法,其中,所述M个区块的所述第二状态数据经过共识,所述M个区块的第一状态数据中包括多个存储对象的多个状态值,所述M个区块的第二状态数据中包括所述多个存储对象的所述多个状态值。9.一种区块链中状态数据软件版本切换方法,所述区块链包括第一节点和多个第二节
点,所述第一节点中包括M个区块的第一状态数据和第二状态数据,所述第一状态数据通过第一版本的状态数据软件生成,所述第二状态数据通过第二版本的状态数据软件生成,各个第二节点中包括所述M个区块的第二状态数据,所述方法由所述第二节点执行,包括:从所述第一节点接收所述M个区块的第一状态数据;从所述第一节点接收软件配置信息,所述软件配置信息中包括所述第一版本的版本标识,作为待启用的状态数据软...

【专利技术属性】
技术研发人员:顾佳昊卓海振
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1