掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的大文件存储方法及系统

文献发布时间:2023-06-19 13:46:35


一种基于区块链的大文件存储方法及系统

技术领域

本申请涉及区块链技术领域,尤其涉及一种基于区块链的大文件存储方法及系统。

背景技术

文件是操作系统中的一个概念,文件是以计算机硬盘为载体存储在计算机上的信息集合,是由创建者所定义的一组相关信息的集合,文件可以是文本文档、图片、程序等。

文件具有一定的属性,例如文件的名称、大小、位置、类型等。其中,文件大小指的是该文件实际的文件体积,如一个文件其本身的大小为6字节,则这6字节称之为该文件的文件大小。

“大文件”,顾名思义是指文件本身比较大,文件的占用空间也很大。现有技术中,一种存储大文件数据的方式是,通过文件唯一值链上存储,大文件存储在链下平台。这种方式相当于大文件是存储在中心化平台,存储的安全性不足且读取效率不高。

发明内容

本申请提供一种基于区块链的大文件存储方法及系统,以解决现有技术中大文件存储安全性不足且读取效率不高的问题。

第一方面,本申请提供了一种基于区块链的大文件存储系统,包括客户端、IPFS集群和区块链集群,其中:

客户端被配置为执行下述步骤:将大文件切分为多个小文件,以及,将多个所述小文件并行上传至IPFS集群;

IPFS集群被配置为执行下述步骤;向所述客户端返回多个所述小文件的哈希值组;

所述客户端进一步被配置为执行下述步骤:向区块链集群发起一个存储所述大文件的存储交易,所述存储交易包括所述大文件的存储记录,所述存储记录包括文件名称、文件大小、文件切分的索引值组以及所述哈希值组;

区块链集群被配置为执行下述步骤:对所述存储交易进行共识,如果存在预设数量的节点接收所述存储交易,则所述存储交易共识成功;通过智能合约自动执行所述存储交易,以使所述索引值组和所述哈希值组存储到区块中,所述存储交易由所述区块链集群中的所有节点执行;如果所述存储交易执行完成,则所述大文件成功存储到所述区块链并将存储结果反馈至所述客户端;

所述客户端进一步被配置为执行下述步骤:接收所述存储结果。

第二方面,本申请提供了一种基于区块链的大文件存储方法,包括:

将大文件切分为多个小文件,以及,将多个所述小文件并行上传至IPFS集群;

返回多个所述小文件的哈希值组;

向区块链集群发起一个存储所述大文件的存储交易,所述存储交易包括所述大文件的存储记录,所述存储记录包括文件名称、文件大小、文件切分的索引值组以及所述哈希值组;

对所述存储交易进行共识,如果存在预设数量的节点接收所述存储交易,则所述存储交易共识成功;

通过智能合约自动执行所述存储交易,以使所述索引值组和所述哈希值组存储到区块中,所述存储交易由所述区块链集群中的所有节点执行;

如果所述存储交易执行完成,则所述大文件成功存储到所述区块链并反馈存储结果。

进一步地,所述存储交易是由所述区块链集群中第一节点发起的,所述存储交易包含所述第一节点的第一签名。

进一步地,所述第一节点为所述区块链集群中的任一个节点。

进一步地,对所述存储交易进行共识,包括:

校验所述存储交易的第一签名,生成第一校验结果;

根据所述第一校验结果和共识规则选择是否接收所述存储交易。

进一步地,所述共识规则根据所述存储交易和所述第一签名预先设定。

进一步地,该方法还包括:发起一个查询所述大文件的查询交易,所述查询交易是由所述区块链集群中第二节点发起的,所述查询交易包含所述第二节点的第二签名。

进一步地,该方法还包括:校验所述第二签名,如果所述第二签名通过校验,在所述区块链上查询所述大文件的所述存储记录,以及返回所述存储记录。

进一步地,该方法还包括:根据所述存储记录中的所述索引值组和所述哈希值组获取所有所述小文件的哈希值组,根据所述哈希值组向所述IPFS集群中其他节点并行获取所述小文件,所述小文件包含本身的索引值。

进一步地,该方法还包括:根据所述索引值顺序将所述小文件组装成所述大文件,以及反馈组装成果。

由以上技术方案可知,本申请提供一种基于区块链的大文件存储方法及系统,方法包括将大文件切分为多个小文件,将多个小文件并行上传至IPFS集群;返回小文件的哈希值组;向区块链集群发起存储大文件的存储交易,对存储交易进行共识,如果存在预设数量的节点接收存储交易则存储交易共识成功;通过智能合约自动执行存储交易,如果存储交易执行完成,则大文件成功存储到区块链并反馈存储结果。本申请将整个大文件存储的过程通过交易的方式上传到区块链数据中,保证整个过程的记录数据的完整性,通过集群共识算法,确保集群节点拥有统一的节点可信任性。因IPFS集群更快、更安全、更开放也使数据的读取效率更高,从而解决了大文件存储安全性不足读取效率不高的问题。

附图说明

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

图1为本申请实施例提供的一种基于区块链的大文件存储方法流程示意图;

图2为本申请实施例提供的一种大文件链上下载流程示意图。

具体实施方式

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

在区块链中,数据的存储是一个至关重要的环节,本申请主要通过区块链技术解决大文件存储的安全性以及提高存储读取效率,通过交易的方式形成共识把大文件分片哈希值集合记录在区块上并且把大文件分片存储上分布式IPFS集群里,实现文件信息高效率传输,以提高运营效率,同时也解决大文件上链存储的安全性问题。

图1为本申请实施例提供的一种基于区块链的大文件存储方法流程示意图,本申请是基于区块链的大文件存储方法,为了便于对方案进行进一步理解,以区块链中的联盟链为例,结合具体步骤对实际操作进行详细说明。如图1所示,一种基于区块链的大文件存储方法,包括:

S1:将大文件切分为多个小文件,以及,将多个小文件并行上传至IPFS集群;

IPFS是Inter Planetary File System即星际文件系统的简称,在某些方面,IPFS类似于web(World Wide Web,全球广域网), 但web 是中心化的,而IPFS是一种点对点的分布式文件系统,旨在连接所有有相同的文件系统的计算机设备。IPFS采用git(即分布式版本控制系统)仓库分布式存储,提供了高吞吐量的内容寻址块存储模型,具有内容寻址的超链接。这形成了一个广义的Merkle DAG即默克尔有向无环图数据结构(MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree默克尔可信树和DAG有向无环图的优点),可以用这个数据结构构建版本文件系统、区块链、甚至是永久性网站等。

IPFS是一个循序渐进的协议,具有分散功能,可以使互联网更快、更安全、更开放。并且,IPFS 结合了分布式哈希表,带有激励机制的块交换和自我认证命名空间,没有单故障点,节点不需要相互信任。基于此,本申请实施例首先由客户端发出请求,将大文件切分为多个小文件。优选地,将大文件切分为多个有限小文件(如f1,f2,…,fn),以及,将切分后的多个小文件并行上传至IPFS集群平台网络,如图1中的I1,I2,I3,I4。

S2:返回多个小文件的哈希值组;

多个小文件上传至IPFS集群平台网络后,在IPFS集群平台网络会生成多个小文件的哈希值组(如h1,h2,…,hn)。一个小文件可以对应一个哈希值,所有小文件的哈希值即组成哈希值组。之后,IPFS集群平台网络将小文件的哈希值组返回到客户端。

S3:向区块链(如联盟链)集群发起一个存储大文件的存储交易,存储交易包括大文件的存储记录,存储记录包括文件名称、文件大小、文件切分的索引值组以及哈希值组;

图2中,联盟链在此集群中针对集群中的所有节点如A,B,C,D,客户端通过区块链集群中第一节点发起一个请求存储大文件的存储交易,该存储交易了第一节点的第一签名。其中,第一节点为区块链集群中的任意一个节点假设为节点B,存储交易包括大文件的存储记录,存储记录包括文件名称、文件大小、文件切分的索引值组以及哈希值组。

S4:对存储交易进行共识,如果存在预设数量的节点接收存储交易,则存储交易共识成功;

区块链集群中的节点在共识的过程中,首先校验存储交易的第一签名,并生成第一校验结果。节点在校验完第一签名后,根据第一校验结果和共识规则选择是否接收存储交易,其中,共识规则根据存储交易和第一签名预先设定的。当存在满足共识规则要求的数量的节点选择接收该存储交易时,该存储交易共识成功。

S5:通过智能合约自动执行存储交易,以使索引值组和哈希值组存储到区块中,存储交易由区块链集群中的所有节点执行;

在步骤S4中,当存储交易共识成功后,区块链集群中的所有节点执行该存储交易,以使多个小文件的索引值组和哈希值组存储到区块中。

S6:如果存储交易执行完成,则大文件成功存储到区块链并反馈存储结果。

当步骤S4中的存储交易共识成功并且步骤S5中的存储交易执行完成后,至此完成大文件的存储上链动作,即大文件成功被存储到区块链中,同时,将存储的结果反馈给客户端。

当大文件被存储到区块链中后,还可以对大文件进行查询与下载。图2为本申请实施例提供的一种大文件链上下载流程示意图, 如图2所示,当对大文件进行查询与下载时,需要如下步骤:

S10:发起一个查询大文件的查询交易,查询交易是由区块链集群中第二节点发起的,查询交易包含第二节点的第二签名。

在区块链(联盟链)集群中,可以通过集群中第二节点发起一个查询大文件的查询交易,查询交易包含第二节点的第二签名。其中,第二节点可以与第一节点相同,也可以与第一节点不同,对此本申请不作具体限定。如,任意一个节点假设为C发送一个请求查询大文件的查询交易,该查询交易中存储了包含节点C的第二签名。

S20:校验第二签名,如果第二签名通过校验,在区块链上查询大文件的存储记录,以及返回存储记录。

对第二签名进行校验,如果第二签名通过校验,执行链上数据查询,即在区块链上查询大文件的存储记录,同时向客户端返回存储记录,存储记录仍包括包括文件名称、文件大小、文件切分的索引值组以及哈希值组。

S30:根据存储记录中的索引值组和哈希值组获取所有小文件的哈希值组,根据哈希值组向IPFS集群中其他节点并行获取小文件,小文件包含本身的索引值。

根据步骤S20返回的文件切分的索引值组和哈希值组,客户端向向IPFS集群任意一个网络节点如l3获取所有小文件的哈希值组,网络节点l3根据哈希值组向IPFS集群中其他节点并行获取小文件,小文件包含本身的索引值。

S40:根据索引值顺序将小文件组装成大文件,以及反馈组装成果。

IPFS集群根据索引值组中的索引值顺序将小文件组装成大文件,同时,将组装的成果反馈给客户端,综上,完成了大文件的查询及下载步骤。

由以上技术方案可知,本申请提供一种基于区块链的大文件存储方法及系统,方法包括:将大文件切分为多个小文件,以及,将多个小文件并行上传至IPFS集群;返回多个小文件的哈希值组;向区块链集群发起一个存储大文件的存储交易,存储交易包括大文件的存储记录,对存储交易进行共识,如果存在预设数量的节点接收存储交易,则存储交易共识成功;通过智能合约自动执行存储交易,以使索引值组和哈希值组存储到区块中;如果存储交易执行完成,则大文件成功存储到区块链并反馈存储结果。本申请实施例中,区块链(联盟链)里每个节点都进行存储来保证数据的安全性,对大文件处理的方式把大文件切分为多个小文件,针对小文件上传至分布式存储IPFS集群并返回小文件唯一哈希值,然后记录所有小文件的索引和哈希值。结合区块链的可信不可篡改特性,基于智能合约的执行该记录上链,当需要下载大文件时,先查询链上记录,然后通过该记录去IPFS集群里获取每个小文件,最后组装成大文件并返回组装结果。

本申请实施例将整个大文件存储的过程通过交易的方式上传到区块链数据中,能保证整个过程的记录数据的完整性,通过集群共识算法,确保集群节点拥有统一的节点可信任性。将小文件数据存储到IPFS集群,因IPFS集群更快、更安全、更开放也使得数据的读取效率更高,从而解决了现有技术中大文件存储安全性不足且读取效率不高的问题。

同时,现有技术中,大文件是中心化存储的,如果大文件被改变或者被损坏,则将造成不可逆的影响,无法恢复。而本申请中,大文件被切分成小文件存储在IPFS集群中,IPFS集群节点具有分散性,每个节点都会进行分布式存储,如果某一个节点中的数据被破坏,该节点可以向其他节点请求恢复,其他节点会帮忙恢复数据,而不会对数据本身最后的呈现产生影响,这也是和现有技术中的一个区别。

另外,本申请还提供了一种基于区块链的大文件存储系统,包括客户端、IPFS集群和区块链集群,其中:

客户端被配置为执行下述步骤:将大文件切分为多个小文件,以及,将多个小文件并行上传至IPFS集群;

IPFS集群被配置为执行下述步骤;向客户端返回多个小文件的哈希值组;

客户端进一步被配置为执行下述步骤:向区块链集群发起一个存储大文件的存储交易,存储交易包括大文件的存储记录,存储记录包括文件名称、文件大小、文件切分的索引值组以及哈希值组;

区块链集群被配置为执行下述步骤:对存储交易进行共识,如果存在预设数量的节点接收存储交易,则存储交易共识成功;通过智能合约自动执行存储交易,以使索引值组和哈希值组存储到区块中,存储交易由区块链集群中的所有节点执行;如果存储交易执行完成,则大文件成功存储到区块链并将存储结果反馈至客户端;

客户端进一步被配置为执行下述步骤:接收存储结果。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

相关技术
  • 一种基于区块链的大文件存储方法及系统
  • 基于区块链的大文件存储方法、系统和计算机设备
技术分类

06120113807961