一种IPFS快速添加或者删除文件夹的方法技术

技术编号:24853143 阅读:55 留言:0更新日期:2020-07-10 19:07
本发明专利技术涉及区块链文件存储技术领域,本发明专利技术提出的一种IPFS快速添加或者删除文件的方法,包括:S1、将文件夹里的项目文件夹上传至IPFS,得到文件夹哈希值;S2、解析文件夹目录结构信息的JSON字符串,并将得到的文件夹哈希值存到对应的JSON对象中;S3、将包含文件夹目录结构信息的JSON字符串存储到IPFS中,得到最终哈希值。S4、当需要添加或者删除某一文件夹时,通过任一客户端向所述区块链发送文件夹目录获取请求;S5,S6,S7、由星际文件系统IPFS通过默克尔树算法验证文件夹目录哈希值,用户端即可修改文件夹目录,同时删除或者修改文件夹,完成IPFS文件夹的修改;S8、IPFS文件目录更新同步。解决对已存储文件夹里的文件或文件内容频繁修改且数据量大、并发量高的问题。

【技术实现步骤摘要】
一种IPFS快速添加或者删除文件夹的方法
本专利技术涉及区块链文件存储
,具体涉及一种IPFS快速添加或者删除文件夹的方法。
技术介绍
IPFS(InterPlanetaryFileSystem,又称星际文件系统)是一个点对点的分布式文件系统。其存储是按内容寻址,即通过文件内容生成独立哈希值来标识文件,而不是通过文件保存位置来标识。IPFS的存储机制导致向其已存储的文件夹增删文件或修改文件内容时,在IPFS里需要重新构造文件夹目录结构。在实际项目中,需要对已存储文件夹里的文件或文件内容频繁修改且数据量大、并发量高,导致IPFS在更新目录结构时发生死锁。
技术实现思路
本专利技术的目的是:通过提供一种IPFS快速添加或者删除文件夹的方法,解决对已存储文件夹里的文件或文件内容频繁修改且数据量大、并发量高的问题。本专利技术提出的一种IPFS快速添加或者删除文件夹的方法,包括:S1、将文件夹里的项目文件夹上传至IPFS,得到文件夹哈希值;S2、解析文件夹目录结构信息的JSON字符串,并将得到的文件夹哈希值存到对应的JSON对象中;S3、将包含文件夹目录结构信息的JSON字符串存储到IPFS中,得到最终哈希值;S4、当需要添加或者删除某一文件夹时,通过任一客户端向所述区块链发送文件夹目录获取请求;S5、所述区块链接收到所述文件夹目录获取请求后,对所述文件夹目录获取请求进行解析,并根据解析结果进行检索;S6、判断是否匹配检索,若匹配检索,则所述区块链将检索到的文件夹目录哈希值获取请求相对应的文件索引哈希值发送至所述星际文件系统IPFS;S7、由星际文件系统IPFS通过默克尔树算法验证文件夹目录哈希值,用户端即可修改文件夹目录,同时删除或者修改文件夹,完成IPFS文件夹的修改;S8、IPFS文件夹目录更新同步。本专利技术一种IPFS快速添加或者删除文件夹的方法的有益效果,本专利技术利用了用户端和星际文件系统(IPFS)彼此来回一次确认文件目录的修改,验证,以及用户端对自己传输的文件有修改的权限,即可实现快速添加或者删除IPFS中的文件,同时,通过默克尔树算法简单的验证文件目录哈希值,有效地解决了星际文件系统(IPFS)对已存储文件夹里的文件或文件内容频繁修改且数据量大、并发量高的问题。附图说明图1为本专利技术一种IPFS快速添加或者删除文件夹的方法流程图;图2为本专利技术一种IPFS快速添加或者删除文件夹的方法默克尔树算法验证文件目录哈希值的流程图;图3为本专利技术一种IPFS快速添加或者删除文件夹的方法的二叉树算法流程图。具体实施方式下面结合附图和具体实施例对本专利技术的一种IPFS快速添加或者删除文件夹的方法作进一步的说明。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。如图1、2和3所示,一种IPFS快速添加或者删除文件夹的方法,其特征在于,包括:S1、将文件夹里的项目文件夹上传至IPFS,得到文件夹哈希值;S2、解析文件夹目录结构信息的JSON字符串,并将得到的文件夹哈希值存到对应的JSON对象中;S3、将包含文件夹目录结构信息的JSON字符串存储到IPFS中,得到最终哈希值;S4、当需要添加或者删除某一文件夹时,通过任一客户端向所述区块链发送文件夹目录获取请求;S5、所述区块链接收到所述文件夹目录获取请求后,对所述文件夹目录获取请求进行解析,并根据解析结果进行检索;S6、判断是否匹配检索,若匹配检索,则所述区块链将检索到的文件夹目录哈希值获取请求相对应的文件索引哈希值发送至所述星际文件系统IPFS;S7、由星际文件系统IPFS通过默克尔树算法验证文件夹目录哈希值,用户端即可修改文件夹目录,同时删除或者修改文件夹,完成IPFS文件夹的修改;S8、IPFS文件夹目录更新同步。本专利技术一种IPFS快速添加或者删除文件夹的方法的有益效果,本专利技术利用了用户端和星际文件系统(IPFS)彼此来回一次确认文件目录的修改,验证,以及用户端对自己传输的文件有修改的权限,即可实现快速添加或者删除IPFS中的文件,同时,通过默克尔树算法简单的验证文件目录哈希值,有效地解决了星际文件系统(IPFS)对已存储文件夹里的文件或文件内容频繁修改且数据量大、并发量高的问题。(1)从成本角度来看,HTTP中心化服务器运行,往往维护运行所需的成本较高,只要中心化数据库受到DDOS攻击,或者是遭受到不可抗力的损害,其所有数据会全部丢失;相较于HTTP而言,IPFS能很大程度上降低服务器存储成本,同时服务器的带宽成本也得到控制。(2)效率角度来说HTTP是依赖中心化服务网络,服务器比较容易被关闭,服务器上文件较易被删掉,而且服务器必须是24小时开机状态才可运行;而IPFS是P2P网络拓扑,整个网域内所有计算机均可作为存储节点,就近分布式存储大大提高了网络效率。(3)安全性:HTTP属于集中化的,所有流量直接搭载在中心化的服务器上,承载的压力极大,容易造成系统崩溃,HTTP还容易遭受DDOS攻击;IPFS的存储方式是去中心化的分片的分布式存储,黑客无法攻击,文件不易丢失,安全有保障。(4)HTTP的客户网络访问很大部分不是本地化,存在网络延时;IPFS较大程度使得网络访问速度加快,网络访问本地化,体验感会明显提升。如图3所示,默克尔树算法构建:a、b、c、d是一些数据元素(文件,公钥、私钥,JSON等),H是哈希函数,采用二叉树基本核心思想,如果父节点为H(H(ab)+H(cd)),子节点为H(ab)=H(H(a)+H(b))和H(cd)=H(H(c)+H(d))。如果父节点为H(ab)时,可以把H(ab)看作H(H(a)+H(b)),所以H(ab)的子节点为H(a)和H(b);同理可得,父节点为H(cd)时,可以把H(cd)看作H(H(c)+H(d)),即H(cd)的子节点为H(c)和H(d)。默克尔树构建完成后,就可以在O(logn)时间内使用根哈希对叶子进行验证(这也称为默克尔树证明),验证工作是通过重新创建包含从根到被验证的数据段进行的。在上面的例子中,如果想要验证c(假设我们有根哈希值),那么就需要得到H(d)和H(H(a)+H(b));数据c哈希后得到H(c),再将H(c)与H(d)进行哈希运算,然后将H(cd)与H(ab)在进行哈希运算,得到一个最后的哈希值,如果这个哈希值与根哈希相同,则说明c确实是默克尔树中数据的一部分。在BT下载情况下,是由另一方提供数据c,H(d)和H(H(a)+H(b))的,在一个哈希函数上无法找到e值使得H(E)=H(C)。构建树的方法是将叶子添加到堆栈中,并检查堆栈中的前两个节点是否具有相同的高度。当高度相同时,节点有一个“子值”(两个节点哈希值相连后的再次哈希值),当高度不同时,一个新节点会追加到堆栈中;当最后两个节点高度不同时,本文档来自技高网...

【技术保护点】
1.一种IPFS快速添加或者删除文件夹的方法,其特征在于,包括:/nS1、将文件夹里的项目文件夹上传至IPFS,得到文件夹哈希值;/nS2、解析文件夹目录结构信息的JSON字符串,并将得到的文件夹哈希值存到对应的JSON对象中;/nS3、将包含文件夹目录结构信息的JSON字符串存储到IPFS中,得到最终哈希值;/nS4、当需要添加或者删除某一文件夹时,通过任一客户端向所述区块链发送文件夹目录获取请求;/nS5、所述区块链接收到所述文件夹目录获取请求后,对所述文件夹目录获取请求进行解析,并根据解析结果进行检索;/nS6、判断是否匹配检索,若匹配检索,则所述区块链将检索到的文件夹目录哈希值获取请求相对应的文件索引哈希值发送至所述星际文件系统IPFS;/nS7、由星际文件系统IPFS通过默克尔树算法验证文件夹目录哈希值,用户端即可修改文件夹目录,同时删除或者修改文件夹,完成IPFS文件夹的修改;/nS8、IPFS文件夹目录更新同步。/n

【技术特征摘要】
20200121 CN 20201007136251.一种IPFS快速添加或者删除文件夹的方法,其特征在于,包括:
S1、将文件夹里的项目文件夹上传至IPFS,得到文件夹哈希值;
S2、解析文件夹目录结构信息的JSON字符串,并将得到的文件夹哈希值存到对应的JSON对象中;
S3、将包含文件夹目录结构信息的JSON字符串存储到IPFS中,得到最终哈希值;
S4、当需要添加或者删除某一文件夹时,通过任一客户端向所述区块链发送文件夹目录获取请求;
S5、所述区块链接收到所述文件夹目录获取请求后,对所述文件夹目录获取请求进行解析,并根据解析结果进行检索;
S6、判断是否匹配检索,若匹配检索,则所述区块链将检索到的文件夹目录哈希值获取请求相对应的文件索引哈希值发送至所述星际文件系统IPFS;
S7、由星际文件系统IPFS通过默克尔树算法验证文件夹目录哈希值,用户端即可修改文件夹目录,同时删除或者修改文件夹,完成IPFS文件夹的修改;
S8、IPFS文件夹目录更新同步。


2.如权利要求1所述的一种IPFS快速添加或者删除文件夹的方法,其特征在于,默克尔树算法构建:
a、b、c、d为数据元素,H是哈希函数,采用二叉树基本核心思想,若父节点为H(H(ab)+H(cd)),则子节点为H(ab)=H...

【专利技术属性】
技术研发人员:游贤川兰毅
申请(专利权)人:行星算力深圳科技有限公司
类型:发明
国别省市:广东;44

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

1