一种文件存储方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:30407467 阅读:17 留言:0更新日期:2021-10-20 11:16
本申请公开了一种文件存储方法、装置、计算机设备及存储介质,该方法包括:区块链启动;等待用户请求上传文件指示或下载文件指示;进行上传文件或下载文件,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德

【技术实现步骤摘要】
一种文件存储方法、装置、计算机设备及存储介质


[0001]本申请涉及文件存储
,尤其涉及一种文件存储方法、装置、计算机设备及存储介质。

技术介绍

[0002]区块链是借由密码学串接并保护内容的串连文字记录(又称区块)。
[0003]每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易资料(通常用默克尔树(Merkle tree)算法计算的散列值表示),这样的设计使得区块内容具有难以篡改的特性。用区块链技术所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。
[0004]目前市场上的文件存储有采用分片的方法,将区块链的存储分散到多个不同的存储分片中,提高了区块链的可扩展性,但是常用的方法均不能提高文件存储服务的可用性。分片虽然提高了系统的存储容量,但同时也带来了安全风险,如果一个分片中的大多数节点因遭受攻击而宕机,则该分片将不能正常提供服务,影响了系统的可用性。当区块链系统用于文件存储时,用户将不能正常从该分片下载文件。
[0005]可用性是指在某个考察时间,系统能够正常运行的概率或时间占有率期望值。考察时间为指定瞬间,则称瞬时可用性;考察时间为指定时段,则称时段可用性;考察时间为连续使用期间的任一时刻,则称固有可用性。可用性是衡量设备在投入使用后实际使用的效能,是设备或系统的可靠性、可维护性和维护支持性的综合特性。
[0006]例如,一个一周里(168小时)有100小时可用的单元的可用性为100/168。
[0007]区块链的可用性是指区块链系统能正常运行的时间占总时间的比例。

技术实现思路

[0008]本申请提供了一种文件存储方法、装置、计算机设备及存储介质,以提高区块链存储系统的可用性。
[0009]第一方面,本申请提供了一种文件存储方法,所述方法包括:
[0010]S1、区块链启动,产生一个委员会,委员会对所有节点进行分片处理;
[0011]S2、等待用户请求上传文件指示或下载文件指示;
[0012]S3、进行上传文件或下载文件,
[0013]其中,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德

所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,
[0014]下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德

所罗门算法从数据片段得到原始文件,并且返回给用户,若是超时,则判断超时次数是否大于所需数据片段数;若是大于则返回并提示用户下载失败,若是不大于,则从剩余分片口中下载余下的数据片段,并再进入判断是否超时,直到将原始文件全部下载完成;
[0015]S4、预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。
[0016]第二方面,本申请还提供了一种文件存储装置,所述装置包括:
[0017]启动单元201,用于获区块链启动,产生一个委员会,委员会对所有节点进行分片处理。
[0018]指示等待单元202,用于等待用户请求上传文件指示。
[0019]上传下载单元203,用于进行上传文件或下载文件。
[0020]重构单元204,用于预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。
[0021]第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的文件存储方法。
[0022]第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的文件存储方法。
[0023]本申请公开了一种文件存储方法、装置、设备及存储介质,通过区块链启动,产生一个委员会,委员会对所有节点进行分片处理;等待用户请求上传文件指示或下载文件指示;进行上传文件或下载文件,其中,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德

所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,其中,下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德

所罗门算法从数据片段得到原始文件,并且返回给用户,若是超时,则判断超时次数是否大于所需数据片段数;若是大于则返回并提示用户下载失败,若是不大于,则从剩余分片口中下载余下的数据片段,并再进入判断是否超时,直到将原始文件全部下载完成;预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。该方法提升了区块链存储系统的可用性。
附图说明
[0024]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是本申请的实施例提供的一种文件存储方法的示意流程图;
[0026]图2是本申请的实施例提供的文件上传的示意流程图;
[0027]图3是本申请的实施例提供的文件下载的示意流程图;
[0028]图4为本申请实施例提供的一种文件存储装置的示意性框图;
[0029]图5为本申请一实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
[0030]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申
请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0031]附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0032]本申请的实施例提供了一种文件存储方法、装置、计算机设备及存储介质。其中,该文件存储方法可以应用于终端或服务器中,以提升文件存储服务的可用性。本申请是结合区块链、里德

所罗门码、分片方法提出的一种可提高区块链文件存储可用性的方法。下面先介绍里德

所罗门码。
[0033]里德

所罗门码(又称里所码,Reed

solomon codes,简称RS codes)是一种前向错误更正的信道编码,对由校正过采样数据所产生的有效多项式。编码过程首先在多个点上对这些多项式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件存储方法,其特征在于,包括:S1、区块链启动,产生一个委员会,委员会对所有节点进行分片处理;S2、等待用户请求上传文件指示或下载文件指示;S3、进行上传文件或下载文件,其中,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德

所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德

所罗门算法从数据片段得到原始文件,并且返回给用户,若是超时,则判断超时次数是否大于所需数据片段数;若是大于则返回并提示用户下载失败,若是不大于,则从剩余分片口中下载余下的数据片段,并再进入判断是否超时,直到将原始文件全部下载完成;S4、预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。2.根据权利要求1所述的文件存储方法,其特征在于,所述步骤S3中的使用里德

所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,包括:S31、先将待上传的长度为u字节的文件划分为k个长度均为u/k的文件片段;S32、将k个文件片段按行排列,得到一个k行u/k列的数据矩阵;S33、使用里德

所罗门码算法根据给定的参数k和m计算数据矩阵的编码矩阵B;S34、将数据矩阵与编码矩阵B相乘,得到一个(k+m)行列的结果矩阵;S35、将结果矩阵按行拆分,得到(k+m)个数据片段,并将这些数据片段分别上传到(k+m)个分片中;S36、将(k+m)个分片的身份信息、原文件的哈希值、文件大小编码转换为一个字符串,并返回给用户,所述的字符串为文件的定位标识符;其中,当u/k不是整数时,在最后一个片段后补填u/k+1

(u mod(k+1))个控制字符“\0”,u mod(k+1)为取模运算,k为使用里德

所罗门码进...

【专利技术属性】
技术研发人员:罗少龙胥勇张海勤
申请(专利权)人:深圳前海移联科技有限公司
类型:发明
国别省市:

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

1