一种区块链块数据的数据归档方法及电子设备与流程

文档序号:13072808阅读:626来源:国知局
一种区块链块数据的数据归档方法及电子设备与流程

本发明涉及计算机技术领域,特别涉及一种区块链块数据的数据归档方法及电子设备。



背景技术:

区块链是利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全,生成不可篡改和不可伪造的分布式账本,建立互相信任的数据网络。

数据归档是一种保持在线数据库规模大体不变却有能够为用户应用提供稳定的数据库性能的方法,其工作原理是,将在线数据库中长期不使用的数据迁移至历史数据库或文件形式归档,降低了活动数据的规模。

由于已归档的数据可以随时进行备份而不会影响在线数据库的应用,这部分数据一般为长时间不活跃的数据;在线的数据库也因为进行数据归档后而瘦身,备份数据量减少,并从整体减少需要备份的数据总量;同时,在对数据进行同步和恢复的时候,可以在短时间内首先完成在线数据库恢复,之后再进行其他数据的恢复工作,能够提高效率和可用性。

由于区块链中的每个节点都会存储完整数据,随着链高度的增加,每个节点数据一直增加,因此需要对区块链的数据进行数据归档,而目前对于区块链节点块数据没有高效的数据归档方法,经过研究,区块链中存储的数据主要分为状态数据和块数据,块数据访问概率低,数据量大,且不会更改,所以需要提供一种对区块链块数据进行数据归档的方法。



技术实现要素:

为了能够对区块链节点块数据进行归档,降低节点存储的块数据,减少块数据对磁盘的空间占用,提高节点数据备份和恢复效率,本发明实施例提供了一种区块链块数据的数据归档方法及电子设备。所述技术方案如下:

第一方面,提供了一种区块链块数据的数据归档方法,所述方法包括:

周期性地检测区块链节点数据中满足归档条件的块数据,所述归档条件包括块数据高度值和访问频率;

若检测到满足所述归档条件的块数据,则从本地拷贝所述满足归档条件的块数据,进行压缩生成压缩包,并将所述压缩包上传至可靠分布式存储系统;

若上传成功,则获取上传的所述压缩包的文件hash,并将所述压缩包的文件hash与上传的所述块数据高度范围的记录插入归档文件hash表中;

若上传失败,则输出错误日志,并重新上传。

结合第一方面,在第一种可能实现的方式中,所述周期性地检测区块链节点数据中满足归档条件的块数据包括:

查看所述区块链节点本地存储的块数据个数,即最低高度值的块数据与最高高度值的块数据之间的所有块数据个数;

若所述块数据个数大于预设个数,则从所述最低高度值的块数据开始获取所述预设个数的块数据;以及

若每个所述预设个数的块数据的访问频率均小于预设访问频率,则确定所述预设个数的块数据为满足所述归档条件的块数据;

其中,所述周期时间小于达到所述预设个数的块数据的生成时间。

结合第一方面的第一种可能实现的方式,在第二种可能实现的方式中,所述方法还包括:

在每个区块链节点数据库维护一个归档文件hash表,用于持久化保存所述区块链节点已归档的压缩包文件hash与已归档的块数据高度值范围的对应关系。

结合第一方面,在第三种可能实现的方式中,所述重新打包上传包括:

重新对所述压缩包上传一次;

若再次上传失败,则重复执行周期性地检测区块链节点数据中满足归档条件的块数据的步骤;以及

删除产生的冗余数据。

结合第一方面至第一方面的第三种任意一项所述的方法,在第四种可能实现的方式中,对所述归档的块数据进行查询,包括:

获取查询请求,所述查询请求包括所要查询的区块链节点的块数据的高度值;

根据所述高度值判断所述所要查询的块数据是否是已归档数据,若是,则根据所述高度值在所述归档文件hash表中查询,否则,访问本地查询;

若在所述归档文件hash表中查询到对应的文件hash,则在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,若在所述归档文件hash表中没有查询到对应的文件hash,则转发所述查询请求,请求其他节点;

若在本地已经下载的历史数据目录下查询到相同hash名称的文件夹,则访问所述历史数据目录下具有所述相同hash名称的文件夹下的数据库文件查找,若在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹,则从可靠分布式存储系统下载所述文件hash对应的压缩包;

若下载成功,则解压并返回查询结果,若下载失败,则返回错误,并重新查找。

第二方面,提供了一种电子设备,所述设备包括:

检测模块,用于周期性地检测区块链节点数据中满足归档条件的块数据,所述归档条件包括块数据高度值和访问频率;

拷贝模块,用于在所述检测模块检测到满足所述归档条件的块数据时,从本地拷贝所述满足归档条件的块数据;

压缩模块,用于对所述块数据进行压缩生成压缩包;

上传模块,用于对所述压缩包上传至可靠分布式存储系统;

压缩包文件hash获取模块,用于当所述上传模块上传成功时,获取上传的所述压缩包的文件hash;

记录模块,用于将所述压缩包的文件hash与上传的所述块数据高度范围的记录插入归档文件hash表中;

错误输出模块,用于当所述上传模块上传失败时,输出错误日志;

重复上传模块,用于每个预设周期将上传失败的压缩包重新打包上传。

结合第二方面,在第一种可能实现的方式中,所述检测模块包括:

块数据个数查看子模块,用于查看所述区块链节点本地存储的块数据个数,即最低高度值的块数据与最高高度值的块数据之间的所有块数据个数;

预设个数块数据获取子模块,用于当所述块数据个数大于预设个数时,从所述最低高度值的块数据开始获取所述预设个数的块数据;以及

归档块数据确定子模块,当每个所述预设个数的块数据的访问频率均小于预设访问频率时,确定所述预设个数的块数据为满足所述归档条件的块数据;

其中,所述周期时间小于达到所述预设个数的块数据的生成时间。

结合第二方面的第一种可能实现的方式,在第二种可能实现的方式中,所述设备还包括:

归档文件hash表维护模块,用于在在每个区块链节点数据库维护一个归档文件hash表;

所述归档文件hash表用于持久化保存所述区块链节点已归档的压缩包文件hash与已归档的块数据高度值范围的对应关系。

结合第二方面,在第三种可能实现的方式中,所述重新上传模块包括:

重新上传子模块,用于重新对所述压缩包上传一次;

当所述重新上传子模块上传失败,则所述检测模块重复执行周期性地检测区块链节点数据中满足归档条件的块数据的操作;

冗余数据删除子模块,用于删除产生的冗余数据。

结合第二方面至第二方面的第三种任意一种可能实现的方式,在第四种可能实现的方式中,所述设备包括还包括查询模块,所述查询模块具体包括:

查询请求获取子模块,用于获取查询请求,所述查询请求包括所要查询的区块链节点的块数据的高度值;

归档数据判断子模块,用于根据所述高度值判断所述所要查询的块数据是否是已归档数据,当判定是时,hash表中查询子模块根据所述高度值在所述归档文件hash表中查询,否则,本地查询子模块访问本地查询;

当所述hash表中查询子模块在所述归档文件hash表中查询到对应的文件hash时,则历史数据目录下查询子模块在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,当所述hash表中查询子模块在所述归档文件hash表中没有查询对应的文件hash时,则转发子模块转发所述查询请求,请求其他节点;

当所述历史数据目录下查询子模块在本地已经下载的历史数据目录下查询到相同hash名称的文件夹时,则文件夹中查询子模块访问所述历史数据目录下具有所述相同hash名称的文件夹下的数据库文件查找,当所述历史数据目录下查询子模块在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹时,则下载子模块从可靠分布式存储系统下载所述文件hash对应的压缩包;

当所述下载子模块下载成功,则反馈结果子模块解压并返回查询结果,当所述下载子模块下载失败时,则错误反馈子模块用于返回错误,并重新查找。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例提供了一种区块链块数据的数据归档方法,通过周期性地检测区块链节点数据中满足归档条件的块数据,归档条件包括块数据高度值和访问频率,从而对检测到的满足归档条件的块数据进行归档,实现了对区块链节点块数据进行归档的需求,通过对满足归档条件的块数据进行归档,降低了节点存储的块数据,减少了块数据对磁盘的空间占用,提高了节点数据备份和恢复效率;同时,本发明实施例采用的是可靠分布式存储系统,因为可靠分布式存储系统具有不可篡改、不丢失、公开追溯且天然容灾的特性,从而通过该系统存储归档数据,保证了归档数据的安全性;另外,将压缩包的文件hash与上传的块数据高度范围的记录插入归档文件hash表中,方便了对归档数据进行归档记录,同时便于对归档数据进行的查询恢复。

同时,本发明实施例通过获取查询请求,根据查询请求中的高度值判断所述所要查询的块数据是否是已归档数据,若是,则根据高度值在归档文件hash表中查询,当在归档文件hash表中能够查询到对应的文件hash时,在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,从而首先能够从本地已下载的历史数据目录下进行查询,避免直接从可分布式存储系统下载造成的处理资源浪费以及多次下载造成的压缩包等文件积累的问题;当在归档文件hash表中没有查询到对应的文件hash时,更新归档文件hash表,转发查询请求,请求其他节点进行查询,避免查询不到的情况;同时,在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹,再从可靠分布式存储系统下载文件hash对应的压缩包,这样避免了一开始即从可靠分布式存储系统下载所造成的冗余数据积累的问题,从而通过本发明实施例对提供的方法,能够对已归档的块数据进行快速高效查询恢复,且无需每次都进行下载,避免了冗余数据的积累,提高了查询效率及设备使用效率。

附图说明

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

图1是本发明实施例提供的一种区块链块数据的数据归档方法流程图;

图2是本发明实施例提供的一种区块链块数据的数据归档方法中数据查询过程流程图;

图3是本发明实施例提供的一种电子设备结构示意图。

具体实施方式

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

实施例一

本发明实施例提供了一种区块链块数据的数据归档方法,参照图1所示,方法包括:

101、周期性检测区块链节点数据中满足归档条件的块数据,若检测到满足归档条件的块数据,则执行步骤102;若未检测到满足归档条件的块数据,则重复执行步骤101。

其中,归档条件包括块数据高度值和访问频率;

周期性地检测区块链节点数据中满足归档条件的块数据的过程可以包括:

a、查看所述区块链节点本地存储的块数据个数,即最低高度值的块数据与最高高度值的块数据之间的所有块数据个数;

具体的,如本地最低高度值的块数据为h0,最高高度值的块数据为h11,则本地存储的数据块个数为h11-h0+1=11个,即最低高度值到最高高度值之间有11个块数据块。

b、若所述块数据个数大于预设个数,则从所述最低高度值的块数据开始获取所述预设个数的块数据;

具体的,该预设个数可以为m个,对于预设个数的具体数值不加以限定,根据实际应用环境进行配置;

若该m为10个块数据时,以步骤a中为例,当本次存储的最低高度值到最高高度值之间的块数据个数大于预设个数,即11大于10时,则从最低高度值的块数据开始获取到该预设个数的块数据,即h0到h10的块数据。

c、若每个所述预设个数的块数据的访问频率均小于预设访问频率,则确定所述预设个数的块数据为满足所述归档条件的块数据;

具体的,在内存中维护一个列表,用于记录最近一段时间内访问频率超过预设访问频率的块数据以及块数据对应的高度值,预设访问频率可以为n,即访问频率超过n的块数据可以为{t1…t10};

则当该预设个数的块数据,即h0到h10的块数据均不在{t1…t10}内时,确定该h0到h10的块数据为满足归档条件的块数据,即该预设个数的块数据中的每个块数据的访问频率均小于预设访问频率时,确定该预设个数的块数据满足归档条件。

需要说明的是,对预设访问频率值的设定不加以限定,根据实际应用具体设置。

可选的,方法还包括:

设定周期性检测的时间。

具体的,该周期时间小于达到该预设个数的块数据的生成时间。

因为将检测的周期时间设置为小于预设个数的块数据的生成时间,才能在再次生成预设个数的块数据前将已经满足预设个数的块数据进行数据归档,以避免本地满足归档条件的块数据的累积。

其中,该周期性检测可以是实时检测,周期性检测的时间根据实际应用进行设置,本发明实施例对此不加以限定。

可选的,方法还包括:

对热数据通过缓存方式进行存储。

具体的,在本地存储的块数据中,某些块数据在某段时间可能被访问或被多次访问,则为热数据,对该部分数据采取缓存方式,可以加快访问速度;对于热数据当其不被访问满足归档条件时,进行数据归档。

通过对热数据使用缓存方式存储能够加快访问速度以及减少设备处理的压力。

将块数据高度值和访问频率设置为归档条件,因为块数据的高度值和访问频率能够直观的反应区块链节点的块数据是否为长期不使用的数据,因此通过高度值和访问频率对长期不使用的块数据进行检测,能够更加简单、高效的划分不常使用的块数据;且周期性地检测区块链节点数据中满足归档条件的块数据,以对该部分数据进行归档,从而能够降低活跃数据的规模,且只要周期性地检测到有满足归档条件的块数据即进行归档,减少了每次归档的数据量,提高了备份和恢复的效率;同时,对只要有满足对归档条件的块数据进行归档,减少了不常使用的数据对磁盘空间的占用。

102、从本地拷贝满足归档条件的块数据,进行压缩生成压缩包。

具体的,从本地blockstore.db数据库中拷贝满足该归档条件的块数据,并进行压缩,生成压缩包;

从本地拷贝满足归档条件的块数据还包括:

设置拷贝路径;

通过设置的该指定路径从本地拷贝满足归档条件的块数据。

103、将压缩包上传至可靠分布式存储系统,若上传成功,则执行步骤104;若上传失败,则执行步骤105-107。

具体的,该可靠分布式存储系统为具有不可篡改、不丢失、公开追溯且天然容灾特性的分布式存储系统。

通过将压缩包上传至可靠分布式存储系统,因为该分布式存储系统具有不可篡改、不丢失、公开追溯且天然容灾特性,所以通过该系统存储归档数据,保证了归档数据的安全性,不被篡改。

104、获取上传的压缩包的文件hash,并将压缩包的文件hash与上传的块数据高度范围的记录插入归档文件hash表中。

具体的,在该归档文件hash表中可以采用key-value存储方式,其中,用块高度值范围作为key,用上传的文件hash最为value生成记录;示例性的,如1_1000:filehash0这样的一条记录,表示高度1至1000的块数据的压缩包对应的文件hash为filehash0。

通过将上传的压缩包的文件hash与该上传的块数据高度范围作为一条记录插入归档文件hash表中,方便了对归档数据进行记录,同时便于对归档数据进行恢复查询。

可选的,方法还包括:

在每个区块链节点数据库维护一个归档文件hash表,用于持久化保存区块链节点已归档的文件压缩包hash与已归档的块数据高度值范围的对应关系。

需要说明的是,该步骤可以是在步骤101之前执行,也可以是在步骤104之前执行,还可以是使用之前维护的归档文件hash表,本发明实施例对此不加以限定。

105、输出错误日志。

具体的,根据输出的错误日志反馈,更改错误,每个预设周期重复打包上传至上传成功。

106、重新对该压缩包上传一次,若再次上传成功,则执行步骤104;若再次上传失败,则重复执行周期性地检测区块链节点数据中满足归档条件的块数据的步骤,即步骤101,并执行步骤107。

107、删除产生的冗余数据。

删除此次生成的未上传成功的压缩包等冗余数据。

需要说明的是,步骤106至步骤107是重新上传的过程,除了上述方式还可以通过其他方式实现该过程,本发明实施例对该过程不加以限定。

可选的,将压缩包文件的hash与上传的块数据高度范围的记录插入归档文件hash表中之后,即步骤104之后,方法还包括:

108、清除本地冗余数据。

具体的,上传成功将压缩包文件的hash与上传的块数据高度范围的记录插入归档文件hash表中之后,即步骤104之后,清除本地的压缩包、本地已经归档的块数据的冗余数据,以避免冗余数据积累和对磁盘的占用。

可选的,参照图2所示,本发明还包括对归档的块数据进行查询,该过程具体可以包括:

201、获取查询请求。

查询请求包括所要查询的区块链节点的块数据的高度值;

还可以包括其他,本发明实施例对查询请求不加以限定。

具体的,查询请求可以通过客户端发起,用户通过输入高度值进行查询对应高度的块数据。

202、根据高度值判断所要查询的块数据是否是已归档数据,若是,则执行步骤203;否则,访问本地查询。

具体的,根据该高度值是否满足数据归档条件中确定的预设高度值,判断所要查询的块数据是否是已归档数据,若该高度值满足预设高度值,则确定所要查询的块数据是已归档数据,则执行步骤203;否则,访问本地blockstore.db查询。

203、根据高度值在归档文件hash表中查询,若在归档文件hash表中查询到对应的文件hash,则执行步骤204;若在归档文件hash表中没有查询到对应的文件hash,则转发查询请求,请求其他节点。

具体的,当根据高度值在该节点的归档文件hash表中查询到对应的记录时,当查询到对应的记录时,通过匹配算法计算该查询请求对应的文件hash,并执行步骤204;

因为当有新节点加入集群时,在进行归档hash表同步的过程中,有请求访问到该节点,因为归档hash表没有完整同步,存在查询归档文件hash失败的可能性,所以更新归档文件hash表后,携带本节点信息,转发查询请求,请求其他节点进行查询,其查询过程与本实施例所述的方式类似,此处不再加以赘述。

204、在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,若在本地已经下载的历史数据目录下查询到相同hash名称的文件夹,则执行步骤205;若在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹,则执行步骤206。

具体的,根据计算获取的该对应的文件hash,在本地已下载的历史数据目录下查询是否存在与该文件hash具有相同hash名称的文件夹,若有,则执行步骤205;

若没有则执行步骤206。

205、访问历史数据目录下具有相同hash名称的文件夹下的数据库文件查找。

206、从可靠分布式存储系统下载文件hash对应的压缩包,若下载成功,则执行步骤207;若下载失败,则返回错误,并重新查找。

207、解压并返回查询结果。

可选的,从可靠分布式存储系统下载对应的压缩包,若下载成功之后,及步骤207之后,方法还包括:

208、下一个预设周期清理此次产生的多余数据库文件夹和压缩包。

具体的,在设定的清理产生的多余数据库文件夹和压缩包的预设周期的下一个周期对此次产生的进行清理。

该预设周期与周期性地检测区块链节点数据中满足归档条件的块数据的周期时间可以相同,也可以不同,本发明实施例对此不加以限定。

本发明实施例通过获取查询请求,根据查询请求中的高度值判断所述所要查询的块数据是否是已归档数据,若是,则根据高度值在归档文件hash表中查询,当在归档文件hash表中能够查询到对应的文件hash时,在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,从而首先能够从本地已下载的历史数据目录下进行查询,避免直接从可靠分布式存储系统下载造成的处理资源浪费以及多次下载造成的压缩包等文件积累的问题;当在归档文件hash表中没有查询到对应的文件hash时,更新归档文件hash表,转发查询请求,请求其他节点进行查询,避免查询不到的情况;同时,在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹,再从可靠分布式存储系统下载文件hash对应的压缩包,这样避免了一开始即从可靠分布式存储系统下载所造成的冗余数据积累的问题,从而通过本发明实施例对提供的方法,能够对已归档的块数据进行快速高效查询恢复,且无需每次都进行下载,避免了冗余数据的积累,提高了查询效率及设备使用效率。

本发明实施例提供了一种区块链块数据的数据归档方法,通过周期性地检测区块链节点数据中满足归档条件的块数据,归档条件包括块数据高度值和访问频率,从而对检测到的满足归档条件的块数据进行归档,实现了对区块链节点块数据进行归档的需求,通过对满足归档条件的块数据进行归档,减小了节点存储的块数据,减少了块数据对磁盘的空间占用,提高了节点数据备份效率;同时,因为采用可靠分布式存储系统,因为可靠分布式存储系统具有不可篡改、不丢失、公开追溯且天然容灾的特性,从而通过该系统存储归档数据,保证了归档数据的安全性;另外,将压缩包的文件hash与上传的块数据高度范围的记录插入归档文件hash表中,方便了对归档数据进行归档记录,同时便于对归档数据进行的恢复查询。

实施例二

本发明实施例提供了一种电子设备,参照图3所示,该电子设备3包括:

检测模块31,用于周期性地检测区块链节点数据中满足归档条件的块数据,归档条件包括块数据高度值和访问频率;

拷贝模块32,用于在检测模块31检测到满足归档条件的块数据时,从本地拷贝满足归档条件的块数据;

压缩模块33,用于对块数据进行压缩生成压缩包;

上传模块34,用于对压缩包上传至可靠分布式存储系统;

压缩包文件hash获取模块35,用于当上传模块34上传成功时,获取上传的压缩包的文件hash;

记录模块36,用于将压缩包的文件hash与上传的块数据高度范围的记录插入归档文件hash表中;

错误输出模块37,用于当上传模块上传失败时,输出错误日志;

重复上传模块38,用于重新上传。

可选的,检测模块31包括:

块数据个数查看子模块311,用于查看区块链节点本地存储的块数据个数,即最低高度值的块数据与最高高度值的块数据之间的所有块数据个数;

预设个数块数据获取子模块312,用于当块数据个数大于预设个数时,从最低高度值的块数据开始获取预设个数的块数据;以及

归档块数据确定子模块313,当每个预设个数的块数据的访问频率均小于预设访问频率时,确定预设个数的块数据为满足归档条件的块数据;

其中,周期时间小于达到预设个数的块数据的生成时间。

可选的,设备3还包括:

归档文件hash表维护模块39,用于在在每个区块链节点数据库维护一个归档文件hash表;

归档文件hash表用于持久化保存区块链节点已归档的压缩包文件hash与已归档的块数据高度值范围的对应关系。

可选的,重新上传模块38包括:

重新上传子模块381,用于重新对压缩包上传一次;

当重新上传子模块381上传失败,则检测模块31重复执行周期性地检测区块链节点数据中满足归档条件的块数据的操作;

冗余数据删除子模块382,用于删除产生的冗余数据。

可选的,设备3还包括:

清除模块,用于清除本地冗余数据。具体的,用于上传成功后,清除本地的压缩包、本地已经归档的块数据的冗余数据。

可选的,该设备还包括查询模块3010,该查询模块3010包括:

查询请求获取子模块3011,用于获取查询请求,查询请求包括所要查询的区块链节点的块数据的高度值;

归档数据判断子模块3012,用于根据高度值判断所要查询的块数据是否是已归档数据,当判定是时,hash表中查询子模块3013根据高度值在归档文件hash表中查询,否则,本地查询子模块3014访问本地查询;

当hash表中查询子模块3013在归档文件hash表中查询到对应的文件hash时,则历史数据目录下查询子模块3015在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,当hash表中查询子模块3013在归档文件hash表中没有查询对应的文件hash时,则转发子模块3016转发查询请求,请求其他节点;

当历史数据目录下查询子模块3015在本地已经下载的历史数据中查询到相同hash名称的文件夹时,则文件夹中查询子模块3017访问历史数据目录下具有相同hash名称的文件夹下的数据库文件查找,当历史数据目录下查询子模块3015在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹时,则下载子模块3018从可靠分布式存储系统下载文件hash对应的压缩包;

当下载子模块3018下载成功,则反馈结果子模块3019解压并返回查询结果,当下载子模块3018下载失败时,则错误反馈子模块3020用于返回错误,并重新查找。

本发明实施例提供了一种电子设备,该电子设备通过周期性地检测区块链节点数据中满足归档条件的块数据,归档条件包括块数据高度值和访问频率,从而对检测到的满足归档条件的块数据进行归档,实现了对区块链节点块数据进行归档的需求,通过对满足归档条件的块数据进行归档,减小了节点存储的块数据,减少了块数据对磁盘的空间占用,提高了节点数据备份效率;同时,因为采用可靠分布式存储系统,因为可靠分布式存储系统具有不可篡改、不丢失、公开追溯且天然容灾的特性,从而通过该系统存储归档数据,保证了归档数据的安全性;另外,将压缩包的文件hash与上传的块数据高度范围的记录插入归档文件hash表中,方便了对归档数据进行归档记录,同时便于对归档数据进行的恢复查询。

同时,该电子设备可以根据查询请求中的高度值判断所述所要查询的块数据是否是已归档数据,若是,则根据高度值在归档文件hash表中查询,当在归档文件hash表中能够查询到对应的文件hash时,在本地已下载的历史数据目录下查询是否有相同hash名称的文件夹,从而首先能够从本地已下载的历史数据目录下进行查询,避免直接从可靠分布式存储系统下载造成的处理资源浪费以及多次下载造成的压缩包等文件积累的问题;当在归档文件hash表中没有查询到对应的文件hash时,更新归档文件hash表,转发查询请求,请求其他节点进行查询,避免查询不到的情况;同时,在本地已经下载的历史数据目录下没有查询到相同hash名称的文件夹,再从可靠分布式存储系统下载文件hash对应的压缩包,这样避免了一开始即从可靠分布式存储系统下载所造成的冗余数据积累的问题,从而通过本发明实施例对提供的方法,能够对已归档的块数据进行快速高效查询恢复,且无需每次都进行下载,避免了冗余数据的积累,提高了查询效率及设备使用效率。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的电子设备在执行区块链块数据的数据归档方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的电子设备与区块链块数据的数据归档方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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