一种基于区块链的文件存储方法和系统技术方案

技术编号:28558575 阅读:14 留言:0更新日期:2021-05-25 17:52
本发明专利技术提出一种基于区块链的文件存储方法,包括:向区块链调取存储文件任务列表,并且向区块链的任务合约登记领取任务,其中,所述存储文件任务列表由文件存储方上传到区块链的文件任务合约中;得到根据预定策略生成的随机的文件起始位置,并读取到待存储的文件,其中从该位置可以读到指定长度的文件内容;获得待存储的文件后,向区块链的文件任务合约中定期提交存储证明。本发明专利技术还提出了一种基于区块链的文件存储系统。本发明专利技术基于区块链,组成一个完全去中心化的文件存储方案,保证了存储方不会做假。

【技术实现步骤摘要】
一种基于区块链的文件存储方法和系统
本专利技术涉及区块链
,具体涉及一种基于区块链的文件存储方法和系统。
技术介绍
日常生产生活中,我们会用到海量的文件或者数据,因些存储是一个不可回避的问题。可以选择在本地进行存储,这样,得自已购置大量的硬件设备,需要投入大量的资金。如果文件只需要存储一段时间,以后就可以销毁,那投入的设备就会浪费。另外自己购买硬件设备就会带来维护、更新等烦琐的工作。因此选择本地存储会极大地消耗我们的人力、物力,有可能造成资源浪费。将文件存储在云空间,就回避了本地存储的一些弊端,但云盘的机制是中心化存储的方式,无法保证数据不被修改,数据很容易丢失,更重要的一点,用云盘存储费用比较高。
技术实现思路
基于以上的现实问题,本专利技术提出一种基于区块链的文件存储系方法,包括:向区块链调取存储文件任务列表,并且向区块链的任务合约登记领取任务,其中,所述存储文件任务列表由文件存储方上传到区块链的文件任务合约中;得到根据预定策略生成的随机的文件起始位置,并读取到待存储的文件,其中从该位置可以读到指定长度的文件内容;获得待存储的文件后,向区块链的文件任务合约中定期提交存储证明。可选地,生成所述存储证明的方法包括:1)将该任务的当前区块的摘要值与存储文件时地址的摘要值进行计算,得到一个随机摘要值;2)确定所述随机摘要值的读取位置;3)根据读取位置、分片大小和文件大小计算得到要读取的分片索引;4)对从分片索引的读取位置开始读取的的M个字节的内容进行摘要运算,得到原像hash1,对所述原像hash1做摘要运算得到校验值hash2;5)将校验值hash2作为存储证明存储到文件任务合约中。可选地,本专利技术的方法还包括验证所述存储证明的步骤:从区块链网络获取待验证任务;用与生成存储证明相同的方法,对所述待验证任务的文件生成第二校验值,将所述第二校验值与文件任务合约中的文件存储证明相比较,相同则验证成功。可选地,本专利技术的方法还包括:请求下载文件以及向区块链网络登记领取任务时质押token;存储证明验证通过后,按比例返还质押的token。可选地,所述文件任务合约包括:文件上传方地址、目标存储文件摘要、目标存储文件名字、加密文件摘要、文件大小和文件上传方公钥加密后的密钥seed。可选地,本专利技术的方法还包括:根据文件任务合约中的信息下载存储的文件,并且使用上传方的私钥解密文件。本专利技术还提出一种基于区块链的文件存储系统,包括:文件调取节点,其向区块链调取存储文件任务列表向区块链的任务合约登记领取任务;根据预定策略生成的随机的文件起始位置,并读取到待存储的文件;获得待存储的文件后向区块链的文件任务合约中定期提交存储证明,其中,所述存储文件任务列表由文件存储方上传到区块链的文件任务合约中。可选地,文件调取节点通过如下方法生成所述存储证明:1)将该任务的当前区块的摘要值与存储文件时地址的摘要值进行计算,得到一个随机摘要值;2)确定所述随机摘要值的读取位置;3)根据读取位置、分片大小和文件大小计算得到要读取的分片索引;4)对从分片索引的读取位置开始读取的的M个字节的内容进行摘要运算,得到原像hash1,对所述原像hash1做摘要运算得到校验值hash2;5)将校验值hash2作为存储证明存储到文件任务合约中。可选地,本专利技术的系统还包括:文件存储节点,其接收目标存储文件,将目标存储文件加密生成多个加密文件后进行存储;文件任务节点,其将文件调取节点定期提交的存储证明存储到区块链网络中,以及调取区块链网络中存储的文件任务合约给文件调取节点。存储验证节点,其从区块链获得文件任务合约中获得待下载文件的存储信息,验证所述存储信息和所述文件调取节点提交的存储证明是否一致。可选地,所述存储验证节点通过如下方法验证所述存储证明:从区块链网络获取待验证任务;用与文件调取节点生成存储证明相同的方法,对所述待验证任务的文件生成第二校验值,将所述第二校验值与文件任务合约中的文件存储证明相比较,相同则验证成功。本专利技术的系统将文件存储在分布式系统中,让个人用户出让自己闲置的存储资源,通过这种方式的存储,保证文件存储的分布性,数据资源不容易丢失,费用较低。而且克服了当前数据存储面临的数据集中管理、费用较高的问题。在另一方面,在分布式系统中存储文件,当存储方提供存储资源时,如何证明自己存储了文件数据,这些是要重点解决的问题。本专利技术的系统基于区块链,组成一个完全去中心化的文件存储系统,实现了:1)公开的任务机制,让用户可以进行比较,极大地降低了网盘的存储费用。2)可靠的文件存储证明机制保证了存储方不会做假。3)合理的激励措施使得参与方有参与分布式文件存储的积极性,充分利用了闲置的存储与带宽。附图说明为了更容易理解本专利技术,将通过参照附图中示出的具体实施方式更详细地描述本专利技术。这些附图只描绘了本专利技术的典型实施方式,不应认为对本专利技术保护范围的限制。图1显示了本专利技术的方法的流程图。图2显示了本专利技术的系统的架构图。具体实施方式下面参照附图描述本专利技术的实施方式,以便于本领域的技术人员可以更好的理解本专利技术并能予以实施,但所列举的实施例不作为本专利技术的限定,在不冲突的情况下,下述的实施例及实施例中的技术特征可以相互组合,其中相同的部件用相同的附图标记表示。第一实施方式如图1所示,在一个实施方式中,本专利技术的系统包括文件存储节点。文件存储节点接收客户端(文件上传方)上传的目标存储文件和文件的冗余备份数量N。文件存储节点根据冗余备份数量N生成(可以随机生成)N个密钥,将目标存储文件分别用N个密钥进行加密,生成N个加密文件,并将所述加密文件存储到网络中。同时,文件存储节点将所述N个密钥加密(可以使用用户的公钥进行非对称加密,后续客户端可以使用用户的私钥进行解密),存储该密钥seed,。可选地,多个文件存储节点组成一个分布式网络。在该分布式网络中,文件会被分割成若干小块存储在分布式网络的某个或者几个节点中(例如PDFS文件存储系统)。进一步,存储完成后,文件存储节点将存储信息返回给客户端,包括:所述目标存储文件的摘要值,所述加密文件的摘要值,及各加密文件对应的加密后的加密密钥(密钥seed)。客户端收到收到所述存储信息后,发布文件存储任务到区块链网络的文件任务合约中。文件任务合约包含的必要元素包括:存储人地址(任务发布者在区块链上的地址)、目标存储文件摘要、目标存储文件名字、加密文件摘要、文件大小、用户公钥加密后的密钥seed。可选地,上传文件由用户确定,比如用户选择自己想要在网盘上存储的文件,而且冗余备份的数量N也可以由用户设定,也可以由客户端或者文件存储节点决定。参照图1,本专利技术的系统还包括:文件调取节点。文件调取节点通过文件任务节点向区块链网络调取已经存在的任务列表,向区块链的任务合约登记领取任务。可选地,文件调取节点可以从任务列表中选取合适本文档来自技高网...

【技术保护点】
1.一种基于区块链的文件存储方法,其特征在于,包括:/n向区块链调取存储文件任务列表,并且向区块链的任务合约登记领取任务,其中,所述存储文件任务列表由文件存储方上传到区块链的文件任务合约中;/n得到根据预定策略生成的随机的文件起始位置,并读取到待存储的文件,其中从该位置可以读到指定长度的文件内容;/n获得待存储的文件后,向区块链的文件任务合约中定期提交存储证明。/n

【技术特征摘要】
1.一种基于区块链的文件存储方法,其特征在于,包括:
向区块链调取存储文件任务列表,并且向区块链的任务合约登记领取任务,其中,所述存储文件任务列表由文件存储方上传到区块链的文件任务合约中;
得到根据预定策略生成的随机的文件起始位置,并读取到待存储的文件,其中从该位置可以读到指定长度的文件内容;
获得待存储的文件后,向区块链的文件任务合约中定期提交存储证明。


2.根据权利要求1所述的文件存储方法,其特征在于,生成所述存储证明的方法包括:
1)将该任务的当前区块的摘要值与存储文件时地址的摘要值进行计算,得到一个随机摘要值;
2)确定所述随机摘要值的读取位置;
3)根据读取位置、分片大小和文件大小计算得到要读取的分片索引;
4)对从分片索引的读取位置开始读取的的M个字节的内容进行摘要运算,得到原像hash1,对所述原像hash1做摘要运算得到校验值hash2;
5)将校验值hash2作为存储证明存储到文件任务合约中。


3.根据权利要求2所述的文件存储方法,其特征在于,还包括验证所述存储证明的步骤:
从区块链网络获取待验证任务;
用与生成存储证明相同的方法,对所述待验证任务的文件生成第二校验值,将所述第二校验值与文件任务合约中的文件存储证明相比较,相同则验证成功。


4.根据权利要求3所述的文件存储方法,其特征在于,还包括:
请求下载文件以及向区块链网络登记领取任务时质押token;
存储证明验证通过后,按比例返还质押的token。


5.根据权利要求4所述的文件存储方法,其特征在于,
所述文件任务合约包括:文件上传方地址、目标存储文件摘要、目标存储文件名字、加密文件摘要、文件大小和文件上传方公钥加密后的密钥seed。


6.根据权利要求5所述的文件存储方法,其特征在于,
根据文件...

【专利技术属性】
技术研发人员:张扬李刘海吴飞鹏
申请(专利权)人:北京众享比特科技有限公司
类型:发明
国别省市:北京;11

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

1