CN113518113B - 一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质 - Google Patents

一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN113518113B
CN113518113B CN202110509161.3A CN202110509161A CN113518113B CN 113518113 B CN113518113 B CN 113518113B CN 202110509161 A CN202110509161 A CN 202110509161A CN 113518113 B CN113518113 B CN 113518113B
Authority
CN
China
Prior art keywords
file
data
fragments
matrix
reed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110509161.3A
Other languages
English (en)
Other versions
CN113518113A (zh
Inventor
罗少龙
张海勤
马良峰
胥勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Qianhai Mobile Technology Co ltd
Original Assignee
Shenzhen Qianhai Mobile Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Qianhai Mobile Technology Co ltd filed Critical Shenzhen Qianhai Mobile Technology Co ltd
Priority to CN202110509161.3A priority Critical patent/CN113518113B/zh
Publication of CN113518113A publication Critical patent/CN113518113A/zh
Application granted granted Critical
Publication of CN113518113B publication Critical patent/CN113518113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本申请公开了一种基于区块链和里德‑所罗门码的文件存储方法、计算机设备及存储介质,该方法包括:区块链启动;等待用户请求上传文件指示或下载文件指示;进行上传文件或下载文件,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德‑所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户;下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德‑所罗门算法从数据片段得到原始文件,并且返回给用户;预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。

Description

一种基于区块链和里德-所罗门码的文件存储方法、计算机设 备及存储介质
技术领域
本申请涉及文件存储技术领域,尤其涉及一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质。
背景技术
区块链是借由密码学串接并保护内容的串连文字记录(又称区块)。
每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易资料(通常用默克尔树(Merkle tree)算法计算的散列值表示),这样的设计使得区块内容具有难以篡改的特性。用区块链技术所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。
目前市场上的文件存储有采用分片的方法,将区块链的存储分散到多个不同的存储分片中,提高了区块链的可扩展性,但是常用的方法均不能提高文件存储服务的可用性。分片虽然提高了系统的存储容量,但同时也带来了安全风险,如果一个分片中的大多数节点因遭受攻击而宕机,则该分片将不能正常提供服务,影响了系统的可用性。当区块链系统用于文件存储时,用户将不能正常从该分片下载文件。
可用性是指在某个考察时间,系统能够正常运行的概率或时间占有率期望值。考察时间为指定瞬间,则称瞬时可用性;考察时间为指定时段,则称时段可用性;考察时间为连续使用期间的任一时刻,则称固有可用性。可用性是衡量设备在投入使用后实际使用的效能,是设备或系统的可靠性、可维护性和维护支持性的综合特性。
例如,一个一周里(168小时)有100小时可用的单元的可用性为100/168。
区块链的可用性是指区块链系统能正常运行的时间占总时间的比例。
发明内容
本申请提供了一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质,以提高区块链存储系统的可用性。
第一方面,本申请提供了一种基于区块链和里德-所罗门码的文件存储方法,所述方法包括:
S1、区块链启动,产生一个委员会,委员会对所有节点进行分片处理;
S2、等待用户请求上传文件指示或下载文件指示;
S3、进行上传文件或下载文件,
其中,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德-所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,
下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德-所罗门算法从数据片段得到原始文件,并且返回给用户,若是超时,则判断超时次数是否大于所需数据片段数;若是大于则返回并提示用户下载失败,若是不大于,则从剩余分片口中下载余下的数据片段,并再进入判断是否超时,直到将原始文件全部下载完成;
S4、预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。
第二方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的基于区块链和里德-所罗门码的文件存储方法。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的基于区块链和里德-所罗门码的文件存储方法。
本申请公开了一种基于区块链和里德-所罗门码的文件存储方法、设备及存储介质,通过区块链启动,产生一个委员会,委员会对所有节点进行分片处理;等待用户请求上传文件指示或下载文件指示;进行上传文件或下载文件,其中,上传文件时,用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德-所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,其中,下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德-所罗门算法从数据片段得到原始文件,并且返回给用户,若是超时,则判断超时次数是否大于所需数据片段数;若是大于则返回并提示用户下载失败,若是不大于,则从剩余分片口中下载余下的数据片段,并再进入判断是否超时,直到将原始文件全部下载完成;预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。该方法提升了区块链存储系统的可用性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种文件存储方法的示意流程图;
图2是本申请的实施例提供的文件上传的示意流程图;
图3是本申请的实施例提供的文件下载的示意流程图;
图4为本申请实施例提供的一种文件存储装置的示意性框图;
图5为本申请一实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请的实施例提供了一种文件存储方法、装置、计算机设备及存储介质。其中,该文件存储方法可以应用于终端或服务器中,以提升文件存储服务的可用性。本申请是结合区块链、里德-所罗门码、分片方法提出的一种可提高区块链文件存储可用性的方法。下面先介绍里德-所罗门码。
里德-所罗门码(又称里所码,Reed-solomon codes,简称RS codes)是一种前向错误更正的信道编码,对由校正过采样数据所产生的有效多项式。编码过程首先在多个点上对这些多项式求冗余,然后将其传输或者存储。对多项式的这种超出必要值得采样使得多项式超定(过限定)。当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰有损。
里德-所罗门码被广泛的应用于各种商业用途,最显著的是在CD、DVD和蓝光光盘上的使用;在数据传输中,它也被用于DSL和WiMAX;广播系统中DVB和ATSC也闪现着它的身影;在计算机科学里,它是RAID 6标准的重要成员。
在里德-所罗门数据编码背后的核心可以形象化的表示为多项式。这种码依靠一个代数理论,这个代数理论说明任何k个唯一的确定点表示一个阶数至少为k-1的多项式。
发送者表明一个在有限域中的k-1阶的多项式,它表示k个数据点。这个多项式就根据它在各点的赋值被“编码”,实际传送的是这些值。在传输中,一些值会被破坏。所以,实际发送的点不止k个。只要正确地接收了足量的数值,接收方就可以推算出原始多项式,进而译出原始数据。
RS码是一个[n,k,n-k+1]码,是一种定义在有限域F上的长度为n,信息长度为k,最短汉明距离为n-k+1的线性分组码。RS码的纠错能力由最短汉明距离决定,为n-k+1。如果预先并不知道错误的位置,RS码最多可以纠正(n-k)/2个错误。而在某些情况下,我们可以预知错误的位置(比如BEC信道),此时RS码最多可以纠正n-k个错误。如果我们可以预先知道S个错误位置,而此外还有E个未知的错误位置,那么在满足2E+S<n-k的情况下,我们可以完全纠正这些错误。
下面结合附图,对发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本发明的实施例提供的一种文件存储方法的示意流程图。
其中,该文件存储方法包括步骤S1至步骤S4。
S1、区块链启动,产生一个委员会,委员会对所有节点进行分片处理。
具体地,区块链系统中有一个委员会,该委员会由不同分片中的节点组件,负责记录网络中的所有的节点,以及他们所属的分片。客户端可以向委员会请求获得每个分片中的节点信息。
产生委员会的过程如下:每个节点使用分布式随机数生成算法(Dstributedrandom number generation)生成一个随机数,每个节点把其对应的随机数和自己的ID一起计算哈希值,哈希值小于某个阈值的节点即为被选中,成为委员会的成员。分片过程为每个节点将自己的ID发送给委员会,委员会对这些ID进行排序,然后将序列分成θ个部分,每个部分表示一个分片,并通知每个节点其被分配到了哪个分片中。其中θ为区域链网络初始化时的分片数量。
S2、预设一时间间隔,等待用户请求上传文件指示。时间间隔是人工设置的时间,在此具体的不做限制。
S3、进行上传文件或下载文件。
如图2所示,在上传文件时,用户向委员会获取分片信息并且选择多个分片为上传目标分片,使用里德-所罗门码算法从原始文件生成多个数据片段,上传到目标分片中,将文件定位标识符返回给用户。用户在需要上传时,其客户端向委员会节点请求区块链网络中的分片信息。对于θ个分片,客户端选择其中存储占用量或交易量较低的(k+m)个分片,作为文件上传的目标分片。其中为使用里德-所罗门码进行编码和解码时,原文件的数据分成的数据块数量;m为使用里德-所罗门码进行编码和解码时,在原文件后附加的冗余数据块数量。k和m均为人工设定值。0≤m≤k,如果需要较多的数据冗余,提高可用性,将m设为较大的值;如果需要较小的磁盘空间占用,将m设为较小的值。
如图3所示,在下载文件时,用户提供文件的定位标识符;将定位标识符解码;从多个分片中下载数据片段;预设分片最长下载文件最长等待时间,判断是否超时,若是没有超时,则使用里德-所罗门算法从数据片段得到原始文件,并且返回给用户,若是超时,则判断超时次数是否大于所需数据片段数;若是大于则返回并提示用户下载失败,若是不大于,则从剩余分片口中下载余下的数据片段,并再进入判断是否超时,直到将原始文件全部下载完成。其中所需数据片段数即为使用里德-所罗门进行编码和解码时,原文件的数据分成的数据块数。
S4、若达到预设的时间间隔时,则进行区块链重构。
具体地,区块链系统每隔固定时间重构一次,产生新的委员会。使用与区块链启动过程相同的方法产生委员会。委员会随后将所有分片中的一部分节点进行随机替换,被替换的节点将退出原来的分片,并加入新的分片。节点加入新的分片时,需要从该分片的其他节点下载该分片存储的所有数据。
需要说明的是,若是在预设的时间间隔内没有收到上传请求或下载,区块链也要进行重构。若是在预设的时间间隔内收到了上传请求或下载请求,则执行步骤S3。若是在执行了步骤S3后,仍然没有达到预设的时间间隔,则继续等待用户上传请求或下载请求。若是在执行步骤S3后,达到了预设的时间间隔则进行区块链重构。
本发明将区块链、里德-所罗门码、分片方法相结合,提升了区块链文件存储可用性。首先对区块链进行存储分片,得到若干个分片,当用户向区块链网络上传一个文件时,该文件将通过里德-所罗门码算法分为若干个数据片段,分别存储到若干个分片之中。每个分片中的节点只能得到一个数据片段。当用户需要下载文件时,只需要从任意若干个分片中获取数据片段,而不需要访问全部分片,就可以还原成原文件。即使部分分片的服务不可用,用户依然可以得到原文件。
在一个可选的实施例中,步骤S3中的使用里德-所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户,包括步骤S31-S36。
S31、先将待上传的长度为u字节的文件划分为k个长度均为u/k的文件片段。
其中,u为文件的长度,单位为字节;k为使用里德-所罗门码进行编码和解码时,原文件的数据分成的数据块数量。
S32、将k个文件片段按行排列,得到一个k行u/k列的数据矩阵。
S33、使用里德-所罗门码算法根据给定的参数k和m计算数据矩阵的编码矩阵B。
其中,m为使用里德-所罗门码进行编码和解码时,在原文件后附加的冗余数据块数量。
S34、将数据矩阵与编码矩阵B相乘,得到一个(k+m)行
Figure GDA0003829236050000061
列的结果矩阵。
S35、将结果矩阵按行拆分,得到(k+m)个数据片段,并将这些数据片段分别上传到(k+m)个分片中。
S36、将(k+m)个分片的身份信息、原文件的哈希值、文件大小编码使用base64编码转换为一个字符串,并返回给用户,该字符串表示文件的定位标识符,定位标识符用于供用户下载文件。
在一些可选的实施例中,当u/k不是整数时,在最后一个片段后补填u/k+1-(u mod(k+1))个控制字符“\0”,u mod(k+1)为取模运算。
具体地,对于一个长度为u字节的文件,客户端先将其划分为k个、长度均为
Figure GDA0003829236050000071
的文件片段。u/k不是整数时,对于最后一个片段,其长度可能小于u/k,因此当
Figure GDA0003829236050000072
时,在该片段后补填u/k+1-(u mod(k+1))个控制字符“\0”,其中a mod b为取模运算,表示a模b。随后,将k个文件片段按行排列,得到一个k行
Figure GDA0003829236050000073
列的数据矩阵,除了最后一行填充的控制字符部分,矩阵中的每一个元素都是原文件中的一个字节数据。
在一个可选的实施例中,本发明步骤S3中的使用里德-所罗门算法从数据片段得到原始文件,并且返回给用户包括以下步骤S301-S308。
S301、将下载到的全部数据片段依次按行排列,获得一个k行
Figure GDA0003829236050000074
列的矩阵A。
S302、使用里德-所罗门码算法生成(k+m)行
Figure GDA0003829236050000075
列的编码矩阵B。
S303、根据下载文件时访问的分片信息,保留编码矩阵B中文件来自k个分片所对应的k行,删除该矩阵中余下的m行,得到一个k行
Figure GDA0003829236050000076
列的矩阵C。
S304、计算出矩阵C的逆矩阵,得到矩阵D。
S305、将矩阵D和矩阵A相乘,得到矩阵E,该矩阵E的行列数为k行
Figure GDA0003829236050000077
列。
S306、将矩阵E的每一行取出,并按顺序合并成一行,每一行连接在上一行的后方,得到一个序列F。
S307、将序列F尾部的控制字符“\0”移除,最终获得一个长度为u的序列G。这个步骤只是u/k不是整数的时候才执行。
S308、将序列G以二进制流的方式返回文件给用户。
由于,文件存储方法可以应用于终端或服务器中,因此需要将训练好的模型保存在终端或服务器中。其中,该终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备;服务器可以为独立的服务器,也可以为服务器集群。
如果是应用于终端中,为了保证该终端的正常运行,还需要对训练得到的模型进行压缩处理,将压缩处理后的模型保存在终端。
其中,该压缩处理具体包括对模型进行剪枝处理、量化处理和哈夫曼编码处理等,以减小目标识别模型的大小,进而方便保存在容量较小的终端中。
上述实施例提供的文件存储方法将区块链、里德-所罗门码、分片方法个结合,提升了区块链文件存储可用性。首先对区块链进行存储分片,得到若干个分片,当用户向区块链网络上传一个文件时,该文件将通过里德-所罗门码算法分为若干个数据片段,分别存储到若干个分片之中。每个分片中的节点只能得到一个数据片段。当用户需要下载文件时,只需要从任意若干个分片中获取数据片段,而不需要访问全部分片,就可以还原成原文件。即使部分分片的服务不可用,用户依然可以得到原文件。
请参阅图4,图4是本发明一实施例提供的一种文件存储装置的示意性框图,该文件存储装置可以配置于服务器中,用于执行前述的文件存储方法。
如图4所示,该文件存储装置200,包括:启动单元201、指示单元202、上传下载单元203和重构204。
启动单元201,用于获区块链启动,产生一个委员会,委员会对所有节点进行分片处理。
指示单元202,用于等待用户请求上传文件指示。
上传下载单元203,用于进行上传文件或下载文件。
重构单元204,用于预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图5所示的计算机设备上运行。
请参阅图5,图5是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
参阅图5,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种文件存储方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种文件存储方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
区块链启动,产生一个委员会,委员会对所有节点进行分片处理;等待用户请求上传文件指示;用户向委员会获取分片信息并选择多个分片为上传的目标分片,使用里德-所罗门码算法从原始文件生成多个数据片段,将数据片段上传到目标分片中,并将文件的定位标识符返回给用户;预设一时间间隔,若达到预设的时间间隔时,则进行区块链重构。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的文件存储方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (5)

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)行
Figure FDA0003836190080000011
列的结果矩阵;
S35、将结果矩阵按行拆分,得到(k+m)个数据片段,并将这些数据片段分别上传到(k+m)个分片中;
S36、将(k+m)个分片的身份信息、原文件的哈希值、文件大小编码转换为一个字符串,并返回给用户,所述的字符串为文件的定位标识符;
其中,当u/k不是整数时,在最后一个片段后补填u/k+1-(u mod(k+1))个控制字符“\0”,u mod(k+1)为取模运算,k为使用里德-所罗门码进行编码和解码时,原文件的数据分成的数据块数量;m为使用里德-所罗门码进行编码和解码时,在原文件后附加的冗余数据块数量;u为文件的长度,单位为字节。
3.根据权利要求2所述的基于区块链和里德-所罗门码的文件存储方法,其特征在于,步骤S3中所述使用里德-所罗门算法从数据片段得到原始文件,并且返回给用户包括:
S301、将下载到的全部数据片段依次按行排列,获得一个k行
Figure FDA0003836190080000023
列的矩阵A;
S302、使用里德-所罗门码算法生成(k+m)行
Figure FDA0003836190080000022
列的编码矩阵B;
S303、根据下载文件时访问的分片信息,保留编码矩阵B中文件来自k个分片所对应的k行,删除该矩阵中余下的m行,得到一个k行
Figure FDA0003836190080000021
列的矩阵C;
S304、计算出矩阵C的逆矩阵,得到矩阵D;
S305、将矩阵D和矩阵A相乘,得到矩阵E,该矩阵E的行列数为k行
Figure FDA0003836190080000024
列;
S306、将矩阵E的每一行取出,并按顺序合并成一行,每一行连接在上一行的后方,得到一个序列F;
S307、将序列F尾部的控制字符“\0”移除,最终获得一个长度为u的序列G;
S308、将序列G以二进制流的方式返回文件给用户。
4.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至3中任一项所述的基于区块链和里德-所罗门码的文件存储方法。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至3中任一项所述的基于区块链和里德-所罗门码的文件存储方法。
CN202110509161.3A 2021-05-11 2021-05-11 一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质 Active CN113518113B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110509161.3A CN113518113B (zh) 2021-05-11 2021-05-11 一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110509161.3A CN113518113B (zh) 2021-05-11 2021-05-11 一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113518113A CN113518113A (zh) 2021-10-19
CN113518113B true CN113518113B (zh) 2022-10-28

Family

ID=78064226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110509161.3A Active CN113518113B (zh) 2021-05-11 2021-05-11 一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113518113B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881183A (zh) * 2023-09-06 2023-10-13 北京融为科技有限公司 译码数据处理方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175212A (zh) * 2019-05-22 2019-08-27 杭州复杂美科技有限公司 区块链分布式存储方法、数据读取方法、设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376122A (zh) * 2018-09-25 2019-02-22 深圳市元征科技股份有限公司 一种文件管理方法、系统及区块链节点设备和存储介质
CN109871366B (zh) * 2019-01-17 2021-09-10 华东师范大学 一种基于纠删码的区块链分片存储与查询方法
CA3046698A1 (en) * 2019-06-17 2020-12-17 Radu Vestemean Encrypted sharding for storing and retrieving digital files in email servers via standard protocols (smtip/imap/pop)
CN111428271A (zh) * 2020-04-17 2020-07-17 上海坤仪金科信息技术有限公司 一种区块链云存储用户数据安全解决方法
CN112256663A (zh) * 2020-10-30 2021-01-22 深圳壹账通智能科技有限公司 基于区块链的分布式文件存储方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175212A (zh) * 2019-05-22 2019-08-27 杭州复杂美科技有限公司 区块链分布式存储方法、数据读取方法、设备和存储介质

Also Published As

Publication number Publication date
CN113518113A (zh) 2021-10-19

Similar Documents

Publication Publication Date Title
US11036392B2 (en) Determining when to use convergent encryption
US11182247B2 (en) Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems
US20190087109A1 (en) Applying multiple hash functions to generate multiple masked keys in a secure slice implementation
US8918674B2 (en) Directory file system in a dispersed storage network
US9996413B2 (en) Ensuring data integrity on a dispersed storage grid
US8885821B2 (en) Sequencing encoded data slices
KR101451338B1 (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
US20170250965A1 (en) Efficient secret-key encrypted secure slice
US9465692B2 (en) High reliability erasure code distribution
RU2680350C2 (ru) Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации
US9823845B2 (en) Adaptive dispersed storage network (DSN) and system
US10015152B2 (en) Securing data in a dispersed storage network
CN113518113B (zh) 一种基于区块链和里德-所罗门码的文件存储方法、计算机设备及存储介质
WO2015116097A1 (en) Joint encryption and error correction encoding
WO2013185271A1 (zh) 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置
JP5474558B2 (ja) 通信ネットワークにおいてデータを符号化するための方法および装置
CN110704232B (zh) 一种分布式系统中失效节点的修复方法、装置和设备
US10331519B2 (en) Application of secret sharing schemes at multiple levels of a dispersed storage network
JP2020524930A (ja) 短縮レイテンシ誤り訂正復号
CN110287716B (zh) 数据存储方法及装置
CN114048183A (zh) 分布式存储方法、装置、存储介质及计算机设备
US20190179696A1 (en) Demultiplexing decoded data streams in a distributed storage network
US10802763B2 (en) Remote storage verification
CN111240597B (zh) 存储数据的方法、装置、设备和计算机可读存储介质
US10922179B2 (en) Post rebuild verification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Luo Shaolong

Inventor after: Zhang Haiqin

Inventor after: Ma Liangfeng

Inventor after: Xu Yong

Inventor before: Luo Shaolong

Inventor before: Xu Yong

Inventor before: Zhang Haiqin

GR01 Patent grant
GR01 Patent grant