基于区块链的大文件管理系统及方法与流程

文档序号:15492607发布日期:2018-09-21 20:55阅读:261来源:国知局

本发明涉及大文件处理技术领域,具体地说,涉及一种基于区块链的大文件管理系统及方法。



背景技术:

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式,区块链技术也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。

目前,区块链技术的应用尚处于开发阶段,现有技术中尚无一种利用区块链技术对大文件进行较佳处理的方案。



技术实现要素:

本发明提供了一种基于区块链的大文件管理系统,其能够克服现有技术的某种或某些缺陷。

根据本发明的基于区块链的大文件管理系统,其包括由多个区块链存储节点构成的存储层,由多个区块链查询节点构成的查询层,以及应用客户端,存储层用于对大文件数据进行存储,查询层用于对于存储层进行管理以及对大文件元数据进行存储,应用客户端用于通过查询层以实现对大文件数据的存储、下载及查询。

本发明中,存储层和查询层的设置,使得能够将大文件数据和大文件元数据进行分离存储。通过大文件数据和大文件元数据的两级存储,能够较佳地降低耦合性,从而较佳地提升大文件数据和大文件元数据间的独立性。且查询层处能够对存储层中所有存储的大文件数据的大文件元数据进行存储,从而使得使用者能够较佳地对所需的大文件数据进行较高效率的查询。另外,通过应用客户端的设置,使得使用者能够较佳地对大文件数据进行如下载、上传、查询等操作。

另外,区块链存储节点和区块链查询节点均能够由互联网内的pc端构建,从而能够有效地搭建存储层和查询层,进而能够有效地对资源进行整合,且借助区块链技术独特的特点,能够较佳地保证数据的安全性。

作为优选,任一区块链存储节点至少包括存储空间管理模块、存储服务模块和下载服务模块;

存储空间管理模块用于在相应区块链存储节点处生成存储仓库文件、仓库存储列表文件和仓库空闲位置列表文件,存储仓库文件用于提供存储大文件数据的空间,仓库存储列表文件用于记载所存储大文件数据的存储信息,仓库空闲位置列表文件用于记载存储仓库文件的剩余存储空间信息;

存储服务模块用于向查询层提供大文件数据的存储接口服务,下载服务模块用于向查询层提供大文件数据的数据读取接口服务;

任一区块链查询节点至少包括存储控制模块、存储索引管理模块、查询服务模块和下载控制模块;

存储控制模块能够实时更新存储层中所有区块链存储节点的可用存储空间信息,以用于给所接收的大文件数据分配合适的区块链存储节点;存储索引管理模块用于记载所有区块链存储节点中所存储大文件数据的大文件元数据;查询服务模块用于通过存储索引管理模块查询大文件数据的相关信息,下载控制模块用于通过查询服务模块定位至存储相关大文件数据的区块链存储节点以实现大文件数据的下载;

应用客户端至少包括上传模块和下载模块,上传模块用于调用相应区块链查询节点处的存储控制模块,下载模块用于调用相应区块链查询节点处的下载控制模块。

本发明中,存储空间管理模块能够在相应区块链存储节点处生成3个不可随意更改的存储仓库文件、仓库存储列表文件和仓库空闲位置列表文件。

其中,存储仓库文件能够具有固定的容量大小,该固定的容量大小与相应区块链存储节点提供者所提供的空闲空间大小相适应,进而能够有效地防止相应区块链存储节点提供者对所提供空闲空间大小进行更改,进而能够有效地防止他人对区块链存储节点中的数据进行更改、窃取等操作,从而有效地保证了该大文件管理系统的有效运行。

其中,仓库存储列表文件能够记载所存储大文件数据的存储信息,如与相应大文件数据一一对应的大文件数据哈希值、在存储仓库文件中的起始位置、数据大小等,从而使得通过仓库存储列表文件即可较佳地对相应大文件数据进行定位,从而能够便于使用者进行下载操作。

其中,仓库空闲位置列表文件能够记载存储仓库文件的剩余存储空间信息,如存储仓库文件中剩余存储空间的起始位置、大小等信息,从而使得使用者在对大文件数据进行存储时,能够根据仓库空闲位置列表文件获取存储的起始位置,进而能够较佳地对相关大文件数据进行存储。

本发明中,存储服务模块能够向查询层提供大文件数据的存储接口服务,从而使得在需要对大文件数据进行存储时,能够通过存储服务模块接收相关大文件数据,且能够根据仓库空闲位置列表文件获取存储的起始位置,从而能够较佳地将相关大文件数据写入存储仓库文件中。且在上述操作完成后,存储服务模块还能够对仓库存储列表文件和仓库空闲位置列表文件进行更新,从而能够有效地保证仓库存储列表文件和仓库空闲位置列表文件的实时性。

本发明中,下载服务模块能够向查询层提供大文件数据的数据读取接口服务。从而使得在需要对相关大文件数据进行下载时,能够通过相关大文件数据的如哈希值等获取相关大文件数据的下载信息。

本发明中,存储控制模块能够实时更新存储层中所有区块链存储节点的可用存储空间信息。这使得在有新的大文件数据需要进行存储时,存储控制模块能够接收相关的大文件数据,之后能够所设定的相关规则,分配与所需存储大文件数据大小相匹配的区块链存储节点并将相关大文件数据发送给该区块链存储节点的存储服务模块,从而能够较佳地实现对大文件数据的存储。

本发明中,存储控制模块能够根据相关大文件数据上传者的描述和智能抓取,生成相关大文件数据的大文件元数据,大文件元数据能够包括如文件标题、文件描述、文件上传者、文件大小、上传时间、文件存储位置(存储该文件的区块链存储节点)等信息。存储控制模块在完成相关大文件数据的存储时,能够将相关大文件数据的大文件元数据更新至存储索引管理模块中。从而使得存储索引管理模块能够较佳地记载所有区块链存储节点中所存储大文件数据的大文件元数据,这使得通过存储索引管理模块中的信息即可较佳地查询到所需大文件数据的相关信息,并能够较佳地定位到相关大文件数据的存储位置(相应区块链存储节点)。

此外,存储控制模块还能够对每个大文件数据进行哈希运算,从而能够获取与该大文件数据一一对应的大文件数据哈希值,该大文件数据哈希值能够包含在相关大文件元数据中,还能够记载在相应区块链存储节点的仓库存储列表文件中,从而使得使用者能够较佳地根据大文件数据哈希值查找到对应的大文件数据。

本发明中,查询服务模块能够通过存储索引管理模块查询大文件数据的相关信息,从而便于使用者对所需的大文件数据进行查询。

本发明中,下载控制模块能够通过查询服务模块定位至存储相关大文件数据的区块链存储节点,从而能够较佳地实现对相关大文件数据的下载。

本发明中,上传模块的设置,能够较佳地便于使用者向相应区块链查询节点的存储控制模块处上传所需存储的大文件数据。下载模块的设置能够较佳地便于使用者下载相应的大文件数据。

作为优选,应用客户端处还具有查询模块,查询模块用于调用相应区块链查询节点处的查询服务模块。查询模块能够向使用者提供查询操作界面,从而便于使用者对相关大文件数据进行查询。

作为优选,任一区块链存储节点处还具有存储智能合约管理模块。

本发明中,通过存储智能合约管理模块能够制定在区块链存储节点的提供者与使用者之间的大文件数据存储契约,如存储单价、存储费用支付方式、支付时间、违约费用等信息。这些信息能够与该区块链存储节点的可用存储空间信息一起实时更新至存储控制模块中,从而使得存储控制模块在为所需存储大文件数据分配区块链存储节点时,能够从相关区块链存储节点的剩余存储空间是否满足、收费是否满足等多方面进行筛选,通过该种分配规则,能够为使用者较佳分配到合适的区块链存储节点。

本发明还提供了一种基于区块链的大文件管理方法,其包括以下步骤:

一、采用由多个区块链存储节点构成的存储层和由多个区块链查询节点构成的查询层搭建双层区块链网络;

二、通过应用客户端将大文件数据存储于存储层中、将大文件元数据存储于查询层中,并通过查询层对存储层进行管理。

通过本发明的一种基于区块链的大文件管理方法,能够在对大文件数据存储时,将大文件数据和大文件原数据进行分离存储,从而能够较佳地实现对大文件数据的上传、下载和查询等操作。

作为优选,在任一区块链存储节点处至少设置存储空间管理模块、存储服务模块和下载服务模块;

利用存储空间管理模块在相应区块链存储节点处生成存储仓库文件、仓库存储列表文件和仓库空闲位置列表文件,利用存储仓库文件提供存储大文件数据的空间,利用仓库存储列表文件记载所存储大文件数据的存储信息,利用仓库空闲位置列表文件记载存储仓库文件的剩余存储空间信息;

利用存储服务模块用于向查询层提供大文件数据的存储接口服务,利用下载服务模块向查询层提供大文件数据的数据读取接口服务;

在任一区块链查询节点处至少设置存储控制模块、存储索引管理模块、查询服务模块和下载控制模块;

利用存储控制模块实时更新存储层中所有区块链存储节点的可用存储空间信息,并给所接收的大文件数据分配合适的区块链存储节点;利用存储索引管理模块记载所有区块链存储节点中所存储大文件数据的大文件元数据;利用查询服务模块通过存储索引管理模块查询大文件数据的相关信息,利用下载控制模块通过查询服务模块定位至存储相关大文件数据的区块链存储节点以对大文件数据进行下载;

在应用客户端处至少设置上传模块和下载模块,利用上传模块调用相应区块链查询节点处的存储控制模块,利用下载模块调用相应区块链查询节点处的下载控制模块。

从而能够较佳地实现对大文件数据的上传和下载。

作为优选,在应用客户端处还设置查询模块,利用查询模块调用相应区块链查询节点处的查询服务模块。从而能够较佳地实现对大文件数据的查询。

作为优选,在任一区块链存储节点处还设置存储智能合约管理模块。从而能够较佳地在区块链存储节点的提供者与使用者之间制定大文件数据存储契约。

附图说明

图1为实施例1中的一种基于区块链的大文件管理系统的结构框图;

图2为采用实施例1中一种基于区块链的大文件管理方法对大文件数据进行上传存储的流程示意图;

图3为采用实施例1中一种基于区块链的大文件管理方法对大文件数据进行备份的流程示意图;

图4为采用实施例1中一种基于区块链的大文件管理方法对大文件数据进行下载的流程示意图。

具体实施方式

为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。

实施例1

如图1所示,本实施例提供了一种基于区块链的大文件管理系统,其包括由多个区块链存储节点构成的存储层,由多个区块链查询节点构成的查询层,以及应用客户端,存储层用于对大文件数据进行存储,查询层用于对于存储层进行管理以及对大文件元数据进行存储,应用客户端用于通过查询层以实现对大文件数据的存储、下载及查询。

本实施例中,存储层和查询层的设置,使得能够将大文件数据和大文件元数据进行分离存储。通过大文件数据和大文件元数据的两级存储,能够较佳地降低耦合性,从而较佳地提升大文件数据和大文件元数据间的独立性。且查询层处能够对存储层中所有存储的大文件数据的大文件元数据进行存储,从而使得使用者能够较佳地对所需的大文件数据进行较高效率的查询。另外,通过应用客户端的设置,使得使用者能够较佳地对大文件数据进行如下载、上传、查询等操作。

另外,区块链存储节点和区块链查询节点均能够由互联网内的pc端构建,从而能够有效地搭建存储层和查询层,进而能够有效地对资源进行整合,且借助区块链技术独特的特点,能够较佳地保证数据的安全性。

本实施例中,任一区块链存储节点均包括存储空间管理模块、存储服务模块和下载服务模块。存储空间管理模块用于在相应区块链存储节点处生成存储仓库文件、仓库存储列表文件和仓库空闲位置列表文件,存储仓库文件用于提供存储大文件数据的空间,仓库存储列表文件用于记载所存储大文件数据的存储信息,仓库空闲位置列表文件用于记载存储仓库文件的剩余存储空间信息。存储服务模块用于向查询层提供大文件数据的存储接口服务,下载服务模块用于向查询层提供大文件数据的数据读取接口服务。

本实施例中,存储空间管理模块能够在相应区块链存储节点处生成3个不可随意更改的存储仓库文件、仓库存储列表文件和仓库空闲位置列表文件。

其中,存储仓库文件能够具有固定的容量大小,该固定的容量大小与相应区块链存储节点提供者所提供的空闲空间大小相适应,进而能够有效地防止相应区块链存储节点提供者对所提供空闲空间大小进行更改,进而能够有效地防止他人对区块链存储节点中的数据进行更改、窃取等操作,从而有效地保证了该大文件管理系统的有效运行。

其中,仓库存储列表文件能够记载所存储大文件数据的存储信息,如与相应大文件数据一一对应的大文件数据哈希值、在存储仓库文件中的起始位置、数据大小等,从而使得通过仓库存储列表文件即可较佳地对相应大文件数据进行定位,从而能够便于使用者进行下载操作。

其中,仓库空闲位置列表文件能够记载存储仓库文件的剩余存储空间信息,如存储仓库文件中剩余存储空间的起始位置、大小等信息,从而使得使用者在对大文件数据进行存储时,能够根据仓库空闲位置列表文件获取存储的起始位置,进而能够较佳地对相关大文件数据进行存储。

本实施例中,存储服务模块能够向查询层提供大文件数据的存储接口服务,从而使得在需要对大文件数据进行存储时,能够通过存储服务模块接收相关大文件数据,且能够根据仓库空闲位置列表文件获取存储的起始位置,从而能够较佳地将相关大文件数据写入存储仓库文件中。且在上述操作完成后,存储服务模块还能够对仓库存储列表文件和仓库空闲位置列表文件进行更新,从而能够有效地保证仓库存储列表文件和仓库空闲位置列表文件的实时性。

本实施例中,下载服务模块能够向查询层提供大文件数据的数据读取接口服务。从而使得在需要对相关大文件数据进行下载时,能够通过相关大文件数据的如哈希值等获取相关大文件数据的下载信息。

本实施例中,任一区块链查询节点至少包括存储控制模块、存储索引管理模块、查询服务模块和下载控制模块。存储控制模块能够实时更新存储层中所有区块链存储节点的可用存储空间信息,以用于给所接收的大文件数据分配合适的区块链存储节点;存储索引管理模块用于记载所有区块链存储节点中所存储大文件数据的大文件元数据;查询服务模块用于通过存储索引管理模块查询大文件数据的相关信息,下载控制模块用于通过查询服务模块定位至存储相关大文件数据的区块链存储节点以实现大文件数据的下载。

本实施例中,存储控制模块能够实时更新存储层中所有区块链存储节点的可用存储空间信息。这使得在有新的大文件数据需要进行存储时,存储控制模块能够接收相关的大文件数据,之后能够所设定的相关规则,分配与所需存储大文件数据大小相匹配的区块链存储节点并将相关大文件数据发送给该区块链存储节点的存储服务模块,从而能够较佳地实现对大文件数据的存储。

本实施例中,存储控制模块能够根据相关大文件数据上传者的描述和智能抓取,生成相关大文件数据的大文件元数据,大文件元数据能够包括如文件标题、文件描述、文件上传者、文件大小、上传时间、文件存储位置(存储该文件的区块链存储节点)等信息。存储控制模块在完成相关大文件数据的存储时,能够将相关大文件数据的大文件元数据更新至存储索引管理模块中。从而使得存储索引管理模块能够较佳地记载所有区块链存储节点中所存储大文件数据的大文件元数据,这使得通过存储索引管理模块中的信息即可较佳地查询到所需大文件数据的相关信息,并能够较佳地定位到相关大文件数据的存储位置(相应区块链存储节点)。

此外,存储控制模块还能够对每个大文件数据进行哈希运算,从而能够获取与该大文件数据一一对应的大文件数据哈希值,该大文件数据哈希值能够包含在相关大文件元数据中,还能够记载在相应区块链存储节点的仓库存储列表文件中,从而使得使用者能够较佳地根据大文件数据哈希值查找到对应的大文件数据。

本实施例中,查询服务模块能够通过存储索引管理模块查询大文件数据的相关信息,从而便于使用者对所需的大文件数据进行查询。

本实施例中,下载控制模块能够通过查询服务模块定位至存储相关大文件数据的区块链存储节点,从而能够较佳地实现对相关大文件数据的下载。

本实施例中,应用客户端至少包括上传模块和下载模块,上传模块用于调用相应区块链查询节点处的存储控制模块,下载模块用于调用相应区块链查询节点处的下载控制模块。

本实施例中,上传模块的设置,能够较佳地便于使用者向相应区块链查询节点的存储控制模块处上传所需存储的大文件数据。下载模块的设置能够较佳地便于使用者下载相应的大文件数据。

本实施例中,应用客户端处还具有查询模块,查询模块用于调用相应区块链查询节点处的查询服务模块。查询模块能够向使用者提供查询操作界面,从而便于使用者对相关大文件数据进行查询。

本实施例中,任一区块链存储节点处还具有存储智能合约管理模块。

本实施例中,通过存储智能合约管理模块能够制定在区块链存储节点的提供者与使用者之间的大文件数据存储契约,如存储单价、存储费用支付方式、支付时间、违约费用等信息。这些信息能够与该区块链存储节点的可用存储空间信息一起实时更新至存储控制模块中,从而使得存储控制模块在为所需存储大文件数据分配区块链存储节点时,能够从相关区块链存储节点的剩余存储空间是否满足、收费是否满足等多方面进行筛选,通过该种分配规则,能够为使用者较佳分配到合适的区块链存储节点。

本实施例中,任一区块链存储节点处还能够具有动态存储管理模块。

使用者在存储大文件数据时可能会有将该大文件数据备份多份的需求,基于该方面因素的考虑,本实施例能够通过动态存储管理模块的设置,来满足使用者的该方面需求。

本实施例中,使用者在上传大文件数据时,能够设定所需备份数。相应区块链存储节点处的动态存储管理模块能够实时地对该节点新增的大文件数据进行监控,通过与该大文件数据相关联的大文件数据哈希值,能够对存储层中存储了该大文件数据的区块链存储节点的数量进行查询。在该数量达到设定所需备份数时,则无需进行处理。在该数量未达到设定所需备份数时,动态存储管理模块能够向未存储该大文件数据且满足存储该大文件数据要求的区块链存储节点发起文件同步请求,相关区块链存储节点在对同步请求进行验证后,能够将相应大文件数据存至本地。之后,被同步的区块链存储节点处的动态存储管理模块重复上述过程,直至相关大文件数据在存储层内的存储数达到设定所需备份数。

通过上述构造,能够较佳地实现对大文件数据的按需备份。

另外,由于动态存储管理模块的设置,使用者能够将大文件数据至少存储一份在存储层内。基于此,在对相关大文件数据进行下载时,区块链查询节点中的下载控制模块能够通过查询服务模块定位到数据存储节点集(包含所有存储了该大文件数据的区块链存储节点),并能够筛选出在线的、能够提供下载服务的下载节点集。根据下载节点集的数量n,能够将大文件数据切分为n份,之后自每个节点处下载一部分数据,并在应用客户端整合成一个完整的大文件数据。通过上述构造,能够多节点多线程地对大文件数据进行下载,从而能够较佳地提升数据下载的速率。

本实施例中,任一区块链存储节点和任一区块链查询节点处还均能够具有节点管理模块。

本实施例中,通过节点管理模块能够在每个节点(包括区块链存储节点和区块链查询节点)处开启一个端口监听网络中其它节点发送的消息,任一节点的节点管理模块在收到新的消息时,能够首先判断该消息的发送方是否在本节点的网络路由表中,若不在则将其加入到本节点的网络路由表中。从而能够较佳地实现存储层和查询层中新节点的加入。

另外,任一节点均能够向其它节点发送节点查找消息,消息接收节点能够向消息发送节点返回其网络路由表中的部分邻近节点,邻近节点是指离消息发送节点较近的节点,之后消息发送节点能够依次向返回的邻近节点发送节点查找消息,从而能够获取更多的邻近节点并加入到更多的网络路由表中。通过该构造,任一节点处均能够形成一个按序排列的邻近节点列表。通过该邻近节点列表,使得动态存储管理模块在进行文件同步时,能够优先选择较邻近节点,从而大大地降低了文件同步的成本,提升了文件同步的效率。

并且,任一节点均能够向其网络路由表中的所有节点发送消息,根据消息回复结果,能够对消息接收节点的在线情况进行判断。即,节点管理模块能够定时循环地对邻近节点列表中的所有节点发送消息,根据其返回值能够找出不在线或长时间无应答的邻近节点,并将这些节点排在邻近节点列表的最后,当有其它活跃节点加入时,优先对这些节点进行替代。这一方面使得,动态存储管理模块在进行文件同步时能够较佳地便于动态存储管理模块进行择优同步;另一方面还使得,在某一节点下线时,尤其是区块链存储节点下线时,能够及时的对相关节点中的数据进行转移,从而能够有效地保证大文件数据的备份数。

基于本实施例的一种基于区块链的大文件管理系统,本实施例还提供了一种基于区块链的大文件管理方法,其包括以下步骤:

一、采用由多个区块链存储节点构成的存储层和由多个区块链查询节点构成的查询层搭建双层区块链网络;

二、通过应用客户端将大文件数据存储于存储层中、将大文件元数据存储于查询层中,并通过查询层对存储层进行管理。

通过本实施例的一种基于区块链的大文件管理方法,能够在对大文件数据存储时,将大文件数据和大文件原数据进行分离存储,从而能够较佳地实现对大文件数据的上传、下载和查询等操作。

本实施例的基于区块链的大文件管理方法中,在任一区块链存储节点处至少设置存储空间管理模块、存储服务模块和下载服务模块。利用存储空间管理模块在相应区块链存储节点处生成存储仓库文件、仓库存储列表文件和仓库空闲位置列表文件,利用存储仓库文件提供存储大文件数据的空间,利用仓库存储列表文件记载所存储大文件数据的存储信息,利用仓库空闲位置列表文件记载存储仓库文件的剩余存储空间信息。利用存储服务模块用于向查询层提供大文件数据的存储接口服务,利用下载服务模块向查询层提供大文件数据的数据读取接口服务。

本实施例的基于区块链的大文件管理方法中,在任一区块链查询节点处至少设置存储控制模块、存储索引管理模块、查询服务模块和下载控制模块。利用存储控制模块实时更新存储层中所有区块链存储节点的可用存储空间信息,并给所接收的大文件数据分配合适的区块链存储节点;利用存储索引管理模块记载所有区块链存储节点中所存储大文件数据的大文件元数据;利用查询服务模块通过存储索引管理模块查询大文件数据的相关信息,利用下载控制模块通过查询服务模块定位至存储相关大文件数据的区块链存储节点以对大文件数据进行下载。

本实施例的基于区块链的大文件管理方法中,在应用客户端处至少设置上传模块和下载模块,利用上传模块调用相应区块链查询节点处的存储控制模块,利用下载模块调用相应区块链查询节点处的下载控制模块。

从而能够较佳地实现对大文件数据的上传和下载。

本实施例的基于区块链的大文件管理方法中,在应用客户端处还设置查询模块,利用查询模块调用相应区块链查询节点处的查询服务模块。从而能够较佳地实现对大文件数据的查询。

本实施例的基于区块链的大文件管理方法中,在任一区块链存储节点处还设置存储智能合约管理模块。从而能够较佳地在区块链存储节点的提供者与使用者之间制定大文件数据存储契约。

如图2所示,采用本实施例的基于区块链的大文件管理方法对大文件数据进行上传存储时,包括以下步骤。

首先,通过应用客户端处的上传模块,使用者能够调用任一区块链查询节点的存储控制模块,从而将大文件数据上传至该存储控制模块中。

使用者在上传大文件数据时,能够同时对该大文件数据进行相关描述,且能够设置所需备份数。

之后,存储控制模块接收到该大文件数据时,能够根据使用者的要求和该大文件数据的大小,分配合适的区块链存储节点,并将该大文件数据发送给相应的区块链存储节点。同时存储控制模块还能够对该大文件数据进行哈希运算,从而获取与该大文件数据一一对应的大文件数据哈希值。

在此步骤中,存储控制模块能够根据使用者对相关大文件数据的描述、智能抓取等,形成相应的大文件元数据,大文件元数据能够包括如文件标题、文件描述、文件上传者、文件大小、上传时间、文件存储位置(存储该文件的区块链存储节点)、大文件数据哈希值等信息。

之后,存储控制模块能够将大文件元数据更新至存储索引管理模块中。

之后,相应区块链存储节点处的存储服务模块能够接收存储控制模块处传来的数据,存储服务模块能够根据仓库空闲位置列表文件获取存储的起始位置,从而将相关大文件数据写入存储仓库文件中。

最后,存储服务模块对仓库存储列表文件和仓库空闲位置列表文件进行更新,从而能够有效地保证仓库存储列表文件和仓库空闲位置列表文件的实时性。

该步骤中,仓库存储列表文件能够记载所存储大文件数据的存储信息,包括与相应大文件数据一一对应的大文件数据哈希值、在存储仓库文件中的起始位置、数据大小等,从而使得通过仓库存储列表文件即可较佳地对相应大文件数据进行定位,从而能够便于使用者进行下载操作。仓库空闲位置列表文件能够记载存储仓库文件的剩余存储空间信息,包括存储仓库文件中剩余存储空间的起始位置、大小等信息,从而使得使用者在对大文件数据进行存储时,能够根据仓库空闲位置列表文件获取存储的起始位置,进而能够较佳地对相关大文件数据进行存储。

通过上述步骤,即可较佳地实现对大文件数据的存储。另外,本实施例中,存储控制模块能够实时更新存储层中所有区块链存储节点的可用存储空间信息。

本实施例中,在任一区块链存储节点处还设置动态存储管理模块实现对大文件数据的备份,具体如下。

相应区块链存储节点处的动态存储管理模块能够实时地对该节点新增的大文件数据进行监控,通过与该大文件数据相关联的大文件数据哈希值,能够对存储层中存储了该大文件数据的区块链存储节点的数量进行查询。在该数量达到设定所需备份数时,则无需进行处理。在该数量未达到设定所需备份数时,动态存储管理模块能够向未存储该大文件数据且满足存储该大文件数据要求的区块链存储节点发起文件同步请求,相关区块链存储节点在对同步请求进行验证后,能够将相应大文件数据存至本地。之后,被同步的区块链存储节点处的动态存储管理模块重复上述过程,直至相关大文件数据在存储层内的存储数达到设定所需备份数。

如图3所示,节点1的存储空间管理模块(具体为存储仓库文件)处新存储了文件2,节点2的存储空间管理模块(具体为存储仓库文件)处新存储了文件3,在文件2和文件3的备份数均为2份时,通过各自的动态存储管理模块,即可将文件2同时同步至节点2中、将文件3同时同步至节点1中。从而较佳地实现了对文件2和文件3的数据备份。

如图4所示,采用本实施例的基于区块链的大文件管理方法对大文件数据进行下载时,包括以下步骤。

首先,使用者能够在应用客户端处的下载模块处通过区块链查询节点中的查询服务模块定位到数据存储节点集,并能够筛选出在线的、能够提供下载服务的下载节点集。

之后,通过下载控制模块能够根据下载节点集的数量n,能够将大文件数据切分为n份,并将相应的数据片段及大小等参数发送给相应区块链存储节点的下载服务模块。

之后,相应区块链存储节点的下载服务模块能够获取相应数据片段的下载起始位置,进而从存储仓库文件下载相应的数据片段。

最后,应用客户端处的下载模块能够对所有数据片段进行整合,从而形成完整的大文件数据。

通过上述即可较佳的实现对大文件数据的下载。

另外本实施例中,还通过在任一区块链存储节点和任一区块链查询节点处均设置节点管理模块,以实现对区块链存储节点和区块链查询节点的增加、筛选等操作。

以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

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