区块链的数据归档处理方法、装置、设备及存储介质与流程

文档序号:16780410发布日期:2019-02-01 19:05阅读:179来源:国知局
区块链的数据归档处理方法、装置、设备及存储介质与流程

本申请涉及互联网技术领域,尤其涉及一种区块链的数据归档处理方法、装置、设备及存储介质。



背景技术:

随着科学技术的飞速发展,数据安全性也越来越重要,区块链技术由于其防篡改和防伪造等特点随之发挥越来越重要的功能。

现有技术中,处于同一区块链网络中的各区块链节点共同维护一条区块链,用于存储交易数据。

但是,随着区块链的不断增长,区块链系统中存储的相关数据越来越多,需要占用越来越多的系统资源,不仅降低系统运行效率,还会增加成本。



技术实现要素:

本申请提供一种区块链的数据归档处理方法、装置、设备及存储介质,以解决现有技术区块链管理效率低等缺陷。

本申请第一个方面提供一种区块链的数据归档处理方法,包括:

获取归档请求,所述归档请求至少包括区块标识;

将所述区块标识指向的目标区块的第一数据从当前存储区域移动到其他存储区域,其中,所述第一数据是指,所述目标区块对应的数据与其所在区块链上的其他区块对应的数据不同版本的数据。

本申请第二个方面提供一种区块链的数据归档处理装置,包括:

获取模块,用于获取归档请求,所述归档请求至少包括区块标识;

处理模块,用于将所述区块标识指向的目标区块的第一数据从当前存储区域移动到其他存储区域,其中,所述第一数据是指,所述目标区块对应的数据与其所在区块链上的其他区块对应的数据不同版本的数据。

本申请第三个方面提供一种区块链节点,包括:至少一个处理器和存储器;

所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的方法。

本申请第四个方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的方法。

本申请提供的区块链的数据归档处理方法、装置、设备及存储介质,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的区块链系统的结构示意图;

图2为本申请一实施例提供的区块链的数据归档处理方法的流程示意图;

图3为本申请另一实施例提供的区块链的数据归档处理方法的流程示意图;

图4为本申请一实施例提供的区块链与merkle树及键值数据的关系示意图;

图5为本申请一实施例提供的区块链的数据归档处理装置的结构示意图;

图6为本申请一实施例提供的区块链节点的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

首先对本申请所涉及的名词进行解释:

操作类型:是指交易数据、merkle树、或区块中包含的信息的类型,比如一笔交易数据中包括具体的交易信息、账户信息、验证信息等类型,账户信息可以包括区块链地址、公钥、证书、身份等信息。merkle树包括根节点、中间节点、叶子节点等类型,区块中可以包括区块头信息、区块主体信息等类型,或者区块头信息中包括时间戳信息、随机数信息、对应的merkle树的根节点的哈希值等等,操作类型可以根据实际需求进行设置,具体划分粒度也可以根据实际需求进行设置,本申请不做限定。

数据项:是指根据操作类型分解成的每个粒度数据,比如具体的交易信息、账户信息、验证信息等等,每个数据项可以对应一种操作类型,不同的数据项可能对应同一种操作类型。因为每提交一次交易数据生成区块链的过程都会包含上述各操作类型,都能分解成对应的数据项。

merkle树:merkletree,通常也被称作hashtree,顾名思义,就是存储hash(哈希)值的一棵树。merkle树的叶子(或称叶子节点)是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。本申请实施例中,merkle树的叶子节点是细粒度化后的待处理交易数据的每个粒度数据的hash值。

创世区块:是指生成区块链时生成的第一个区块,即区块链最首个区块。

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

本申请实施例提供的区块链的数据归档处理方法,适用于以下场景:如图1所示,为本申请实施例提供的区块链系统的结构示意图。该区块链系统可以包括多个区块链节点,各区块链节点共同形成区块链网络。在实际应用中,用户可以通过终端向区块链网络中的区块链节点发起交易请求,提交待处理交易数据,该区块链节点根据待处理交易数据进行相应的数据处理,比如请求其他区块链节点对待处理交易数据进行共识处理、生成区块、存储数据等等。

实施例一

本实施例提供一种区块链的数据归档处理方法,用于将区块链区块链系统中的数据根据需求进行归档,移动到系统资源之外的冷存储区域。本实施例的执行主体为区块链的数据归档处理装置,该装置可以设置在区块链节点中。

如图2所示,为本实施例提供的区块链的数据归档处理方法的流程示意图,该方法包括:

步骤101,获取归档请求,归档请求至少包括区块标识。

步骤102,将区块标识指向的目标区块的第一数据从当前存储区域移动到其他存储区域,其中,第一数据是指,目标区块对应的数据与其所在区块链上的其他区块对应的数据不同版本的数据。

具体的,随着区块链的不断增长,每个区块记录了对应的时刻区块链对应的数据的状态,其中可能存在同一种数据的不同版本,即后面区块记录的是对其前面的区块的数据(本申请各实施例中区块的数据即是指区块对应的数据,既可以包括写入区块的数据,也可以包括未写入该区块而存储在本地的相关数据,以下不再解释)的更改,其是同一种数据在不同时刻体现的不同状态,例如对产品的升级前后的两个版本、同一客户将电话号码进行了更换、或者同一客户将地址信息进行了变更等等。随着时间的积累,一些历史版本的数据在以后可能用到的机会非常小,但是却在区块链系统中占用着一定的资源,影响了区块链系统的运行效率,因此用户可能需要将那些不再常用的历史版本的数据进行归档冷存储,解除其对区块链系统的资源占用。当用户需要进行归档时,可以通过终端向区块链节点发送归档请求,区块链节点则可以从终端获取归档请求,比如用户可以通过终端界面设置归档请求中需要包括的待归档的区块标识,对于其在界面的具体展示方式不做限定,比如以区块编号的形式、区块名称的形式等用户可识别的形式进行展示,只要能够使用户清楚地知道是哪个区块即可,终端可以根据区块编号或区块名称获取到对应的区块标识。

或者也可以是进行定期归档,即可以在区块链节点设置相应的模块,预先设置好触发机制,比如每隔一定时间则进行一次归档,比如用户通过终端向区块链节点进行归档订阅,则相当于区块链节点每隔一定时间就可以获取到归档请求,对于归档请求中包括的区块标识,可以约定为当前区块链上最新区块之前与创世区块之后的任一个或任意多个区块的区块标识,比如在到达预定时间时,先判断当前区块链上的最新区块,并根据预设规则获取当前最新区块之前的一个区块或多个区块的区块标识,并生成归档请求。

归档请求实质上可以认为就是一种触发机制,可以由用户触发,也可以设置按规则自动触发,具体触发机制不做限定。

区块链节点在获取到归档请求时,根据归档请求,将区块标识指向的目标区块的第一数据从当前存储区域移动到其他存储区域。为了维护区块链系统数据的逻辑完整性以及区块链系统能够正常运行,所移动的第一数据可以是那些有多个版本的数据中的历史版本的数据,即目标区块对应的数据中,与目标区块所在区块链上的其他区块所对应的数据不同版本的数据,而保留最新的一个版本或多个版本的数据。将历史版本的数据从区块链系统的存储区域移动到区块链系统外进行冷存储,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。目标区块对应的数据包括了交易数据、merkle树及目标区块的区块信息等相关数据,可以是上链了的信息数据也可以是未上链而在本地存储的数据,比如在区块中记录交易数据对应的merkle树的哈希值,而将交易数据存储在本地,数据的具体内容或类型不做限定。

可选地,归档请求中可以包括一个区块标识,也可以包括多个(两个或两个以上)区块标识,多个区块标志若是对应连续的多个区块,也相当于包括的是区块范围,即从一个区块到另一个区块。对于一个区块标识的情况,是将该区块标识指向的目标区块对应的数据与其前一区块和后一区块对应的数据进行对比,得到目标区块数据中与其他区块数据不同版本的数据作为第一数据进行归档。

本申请实施例中,归档即是指从区块链系统的存储区域中移除,移动到区块链系统资源外的存储区域。这里的区块对应的数据(包括目标区块对应的数据、其他区块对应的数据)可以是任意操作类型的数据,操作类型是指交易数据、merkle树、或区块中包含的信息的类型,比如一笔交易数据中包括具体的交易信息、账户信息、验证信息等类型,账户信息可以包括区块链地址、公钥、证书、身份等信息。merkle树包括根节点、中间节点、叶子节点等类型,区块中可以包括区块头信息、区块主体信息等类型,或者区块头信息中包括时间戳信息、随机数信息、对应的merkle树的根节点的哈希值等等,操作类型可以根据实际需求进行设置,具体划分粒度也可以根据实际需求进行设置,本申请不做限定。

示例性的,区块链系统中的具体交易信息、merkle树、及区块信息、区块链信息等都按照操作类型划分成数据项进行存储,而在区块中只记录各数据项对应的merkle树的根节点的哈希值,不需要存储具体的数据,使得区块占用资源非常小。对于一个区块来说,其对应的数据可能包括了多个数据项当前时刻的版本,在后续的某个时刻,对该区块对应的数据中某个数据项中的部分内容进行了更新,比如上述的客户地址的变更,那么对于变更后的区块对应产生了与变更前区块中不同的数据项,客户地址不同,而且变更前的地址已成为无效的地址,因此变更前区块中的数据项即可认为是历史版本的数据,可以进行归档冷存储。

可选地,归档请求中还可以包括区块标识对应的目标区块所在的区块链的标识,使区块链节点可以更快地找到相应的区块链以进一步找到目标区块,本实施例不做限定。

可选地,若区块链系统中有多个区块链(即多个账本),还可以同时对多个区块链上的区块进行归档,本实施例不限定归档的区块数量及区块链数量。

本实施例提供的区块链的数据归档处理方法,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。

实施例二

本实施例对实施例一提供的方法做进一步补充说明。

如图3所示,为本实施例提供的区块链的数据归档处理方法的流程示意图。

作为一种可实施的方式,在上述实施例一的基础上,可选地,步骤102具体可以包括:

步骤1021,根据区块标识获取目标区块对应的第一数据项集,并获取目标区块的前一区块对应的第二数据项集,以及目标区块的后一区块对应的第三数据项集。

步骤1022,将第一数据项集与第四数据项集的差集所包括的目标数据项作为第一数据,第四数据项集为第二数据项集和第三数据项集的并集。

步骤1023,将第一数据从当前存储区域移动到其他存储区域。

具体的,区块链相关数据根据不同种类的操作类型分解为数据项进行存储,包括用户通过终端提交的交易数据、根据交易数据分解成的各数据项生成的merkle树,以及生成的区块,还有整个过程中其他的一些相关数据,都以数据项进行存储。则对于一个区块来说,其会对应多个数据项,并且由于区块要引用其前一区块,因此该区块对应的数据项还可能包括之前的数据项。区块链节点根据归档请求中包括的区块标识,可以获取到目标区块对应的第一数据项集(为了与后续的前一区块和后一区块的数据项集区分,称为第一数据项项集),为了维护区块链的逻辑及区块链系统的正常运行,需要将第一数据项集中与前一区块和后一区块相关的数据项剔除,而只归档目标区块独立增加的数据项,因此,还需要获取目标区块的前一区块对应的第二数据项集,以及目标区块的后一区块对应的第三数据项集,这些之中由于前后引用的关系,存在一些交叉的数据项,需要将第一数据项集与第二数据项集的差集,再与第三数据项集做差,也即将第二数据项集和第三数据项集的并集作为第四数据项集,将第一数据项集与第四数据项项集的差集作为第一数据进行归档。

本申请实施例中的数据项集(包括第一数据项集、第二数据项集、第三数据项集等等),仅仅表示一组数据项的集合,并不表示其数据的体现形式是集合的形式,这里的差集表示从第一数据项集中去除与第四数据项集中相同的数据项。并集是表示合并第二数据项集与第三数据项集中的数据项,相同的数据项保留一个即可。

对于区块链中各数据项可以是以键值对的形式进行分布式存储。其中,根据交易数据的各数据项对应的键值对生成merkle树的叶子节点,并进一步根据各叶子节点生成merkle树的根节点,将根节点的哈希值记录在新区块中。比如将merkle树的根节点的哈希值与父区块的哈希值、时间戳、随机数等相关信息一起生成新区块的区块头信息。具体生成新区块的过程可以与现有技术相同,区块中记录的信息不同。生成的merkle树的各节点也以键值对的形式存储,生成的新区块信息也以键值对形式存储。总之把区块链相关数据都可以键值对形式分布式存储,提高数据管理效率。

那么,第一数据项集、第二数据项集、第三数据项集等中包括的是各键值对。

示例性的,如图4所示,为本实施例提供的区块链与merkle树及键值数据的关系示意图。其中,k表示key,v表示value,根据一个k可以确定一个或多个版本的v。g0-g3分别表示各区块对应的根节点,y表示叶子节点,m表示中间节点,为了区分为其增加了编号。v41和v42表示同一个k4的两个版本的value,即对某一v41进行更改后变成v42。根据kv数据结构的属性,在一个键值对k-v创建时,即自动为其编制了版本号,在对该键值对中的v更新时,版本号增长,k不变,从而每个k对应的v可以是一个或多个不同的版本,具体key-value关联关系为现有技术,在此不再赘述。每个区块对应一个merkle树的根节点,随着区块的不断增加,前一区块所对应的根节点可能成为其相邻的后一区块的的子节点,因此,merkle树随着区块的增加不断增长,以这种方式维护区块链数据的完整性,并方便地维护区块与交易数据划分后的每个数据项的关系,比如,从区块中可以获取其对应的根节点的哈希值、从该根节点的哈希值中可以获取该根节点下两个子节点(可能为中间节点)的哈希值、从子节点的哈希值中可以获取子节点下的二级子节点的哈希值,直至获取到叶子节点的哈希值,从叶子节点的哈希值中则可以获取每个数据项的哈希值,比如一个键值对kv的哈希值,从而可以从该键值对的哈希值中获取该键值对,也即可以获取一个数据项。

以图4所示的区块链为例,若请求对区块1进行归档,获取到的第一数据项集包括k1-v1、k2-v2、k3-v3、k4-v41,以及merkle树节点g1、g0、m1、y1、y2、y3、y4对应的键值对,还包括区块1的区块信息的键值对t1(比如区块头信息键值对)等;获取到的第二数据项集包括:k1-v1、k2-v2,以及merkle树节点g0、y1、y2对应的键值对,以及区块0的区块信息的键值对t0等,获取到的第三数据项集包括k1-v1、k2-v2、k3-v3、k4-v42,以及merkle树节点g2、g0、m2、y1、y2、y3、y5对应的键值对(以下就以各节点来表示),以及区块2的区块信息的键值对t2等,那么第四数据项集即第二数据项集与第三数据项集的并集即为(k1-v1、k2-v2、g0、y1、y2、t0、k3-v3、k4-v42、g2、m2、y3、y5、t2),而第一数据项集为(k1-v1、k2-v2、k3-v3、k4-v41、g1、g0、m1、y1、y2、y3、y4、t1),第一数据项集与第四数据项集的差集为(k4-v41、g1、m1、y4、t1),即为第一数据,可以从该区块链系统的存储区域移动到区块链系统外进行归档冷存储。综上,对于每个区块,以该区块+该区块对应的merkle树(根节点及根节点下所有中间节点与叶子节点)、merkle树每个叶子节点对应的键值对为一个整体与其前一区块和后一区块进行去同。最终剩下与其他区块都不相关的键值对进行归档。

可选地,为了维护区块链的逻辑完整性,被归档的区块不能是区块链上最新的一个区块,对于被归档的区块,可以在区块链数据中保留其区块标识,也可以不保留。如此,由于被归档的仅是某一k的历史版本,因此并不影响区块链系统的运行。

可选地,归档请求包括多个区块标识,根据区块标识获取目标区块对应的第一数据项集,包括:

对于每个区块标识,获取区块标识指向的目标区块对应的第五数据项集;将各第五数据项集的并集作为第一数据项集。

具体的,用户可以对区块链上的多个目标区块进行归档,若指定了区块范围,比如对区块1到区块6(包括区块1和区块6)进行归档,则将区块1-6这6个区块作为一个整体形成第一数据项集,与上述过程相同,仍然需要与其前一区块(区块0)和后一区块(区块7)进行去同,具体过程不再赘述。

可选地,归档请求还包括目标区块所在区块链的区块链标识;根据区块标识获取目标区块对应的第一数据项集,包括:

根据区块链标识,确定目标区块所在的区块链;根据区块标识,从目标区块所在的区块链上获取目标区块中包含的目标索引信息,目标索引信息为第一数据项集中包括的各第一数据项的地址信息;根据目标索引信息,获取目标区块对应的各第一数据项,形成第一数据项集。

具体的,在归档请求中还可以指定对哪个区块链进行归档,使区块链节点可以快速找到待归档的目标区块。由于目标区块中记录有其对应的merkle树的根节点的哈希值,可以根据根节点的哈希值获取根节点的值,根节点的值又是其子节点的哈希值,如此逐级可以获取到叶子节点对应的键值对、以及各节点对应的键值对。

作为另一种可实施的方式,在上述实施例的基础上,可选地,在将区块标识指向的目标区块的第一数据从当前存储区域移动到其他存储区域之后,方法还包括:

记录归档信息,归档信息至少包括区块标识。

具体的,被归档的数据由于被移出了区块链系统,那么在该区块链系统中不能再被检索到,若用户还希望后续被归档的数据项还能被找回,可以在进行归档后,记录归档信息,归档信息中可以包括被归档的目标区块的区块标识,或者还可以包括区块链标识,还可以包括被归档数据的新的地址信息等相关信息,以使用户能够知道这些数据被移动到了哪里,采取一定的方式再找回来即可。

由于这些数据项以键值对形式存储,其各数据项之间本身就具有一定的关联关系,只要在移动这些数据项时,不破坏这些数据项的结构形式,就可以方便地移动回来投入到区块链系统使用。可以理解地,为了节省归档存储的空间,可以采用压缩等不破坏数据项结构的技术来存储被归档的数据项,本实施例不做限定。

需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。

本实施例提供的区块链的数据归档处理方法,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。并且通过以数据项结合merkle树结构维护区块链数据的完整性,在结合记录归档信息,以后再需要用到被归档的数据时,可以通过一定的方式方便地将被归档的数据融入到区块链系统中,使得这些数据在区块链系统中可检索追溯。

实施例三

本实施例提供一种区块链的数据归档处理装置,用于执行上述实施例一的方法。

如图5所示,为本实施例提供的区块链的数据归档处理装置的结构示意图。该区块链的数据归档处理装置30包括获取模块31和处理模块32。

其中,获取模块31用于获取归档请求,归档请求至少包括区块标识;处理模块32用于将区块标识指向的目标区块的第一数据从当前存储区域移动到其他存储区域,其中,第一数据是指,目标区块对应的数据与其所在区块链上的其他区块对应的数据不同版本的数据。

关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

根据本实施例提供的区块链的数据归档处理装置,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。并且通过以数据项结合merkle树结构维护区块链数据的完整性,在结合记录归档信息,以后再需要用到被归档的数据时,可以通过一定的方式方便地将被归档的数据融入到区块链系统中,使得这些数据在区块链系统中可检索追溯。

实施例四

本实施例对上述实施例三提供的装置做进一步补充说明。

在上述实施例三的基础上,可选地,处理模块,具体用于:

根据区块标识获取目标区块对应的第一数据项集,并获取目标区块的前一区块对应的第二数据项集,以及目标区块的后一区块对应的第三数据项集;将第一数据项集与第四数据项集的差集所包括的目标数据项作为第一数据,第四数据项集为第二数据项集和第三数据项集的并集;将第一数据从当前存储区域移动到其他存储区域。

可选地,归档请求包括多个区块标识,处理模块,具体用于:

对于每个区块标识,获取区块标识指向的目标区块对应的第五数据项集;将各第五数据项集的并集作为第一数据项集。

可选地,归档请求还包括目标区块所在区块链的区块链标识;处理模块,具体用于:

根据区块链标识,确定目标区块所在的区块链;根据区块标识,从目标区块所在的区块链上获取目标区块中包含的目标索引信息,目标索引信息为第一数据项集中包括的各第一数据项的地址信息;根据目标索引信息,获取目标区块对应的各第一数据项,形成第一数据项集。

作为另一种可实施的方式,在上述实施例的基础上,可选地,处理模块,还用于记录归档信息,归档信息至少包括区块标识。

关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。

根据本实施例的区块链的数据归档处理装置,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。并且通过以数据项结合merkle树结构维护区块链数据的完整性,在结合记录归档信息,以后再需要用到被归档的数据时,可以通过一定的方式方便地将被归档的数据融入到区块链系统中,使得这些数据在区块链系统中可检索追溯。

实施例五

本实施例提供一种区块链节点,用于执行上述实施例提供的方法。

如图6所示,为本实施例提供的区块链节点的结构示意图。该区块链节点50包括:至少一个处理器51和存储器52;

存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的方法。

根据本实施例的区块链节点,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。并且通过以数据项结合merkle树结构维护区块链数据的完整性,在结合记录归档信息,以后再需要用到被归档的数据时,可以通过一定的方式方便地将被归档的数据融入到区块链系统中,使得这些数据在区块链系统中可检索追溯。

实施例六

本实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的方法。

根据本实施例的计算机可读存储介质,通过将区块链系统中历史版本的数据进行归档,从区块链系统的存储区域移动到其他存储区域,而保留最新的一个版本或多个版本的数据,可以降低对区块链系统资源的占用,在保证区块链系统运行效率的情况下,还可以降低成本。并且通过以数据项结合merkle树结构维护区块链数据的完整性,在结合记录归档信息,以后再需要用到被归档的数据时,可以通过一定的方式方便地将被归档的数据融入到区块链系统中,使得这些数据在区块链系统中可检索追溯。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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