CN111400261A - 一种ipfs快速添加或者删除文件夹的方法 - Google Patents
一种ipfs快速添加或者删除文件夹的方法 Download PDFInfo
- Publication number
- CN111400261A CN111400261A CN202010396514.9A CN202010396514A CN111400261A CN 111400261 A CN111400261 A CN 111400261A CN 202010396514 A CN202010396514 A CN 202010396514A CN 111400261 A CN111400261 A CN 111400261A
- Authority
- CN
- China
- Prior art keywords
- folder
- ipfs
- directory
- hash value
- folders
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000004048 modification Effects 0.000 claims abstract description 6
- 238000012986 modification Methods 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000010276 construction Methods 0.000 claims description 2
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000012795 verification Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Abstract
本发明涉及区块链文件存储技术领域,本发明提出的一种IPFS快速添加或者删除文件的方法,包括:S1、将文件夹里的项目文件夹上传至IPFS,得到文件夹哈希值;S2、解析文件夹目录结构信息的JSON字符串,并将得到的文件夹哈希值存到对应的JSON对象中;S3、将包含文件夹目录结构信息的JSON字符串存储到IPFS中,得到最终哈希值。S4、当需要添加或者删除某一文件夹时,通过任一客户端向所述区块链发送文件夹目录获取请求;S5,S6,S7、由星际文件系统IPFS通过默克尔树算法验证文件夹目录哈希值,用户端即可修改文件夹目录,同时删除或者修改文件夹,完成IPFS文件夹的修改;S8、IPFS文件目录更新同步。解决对已存储文件夹里的文件或文件内容频繁修改且数据量大、并发量高的问题。
Description
技术领域
本发明涉及区块链文件存储技术领域,具体涉及一种IPFS快速添加或者删除文件夹的方法。
背景技术
IPFS(InterPlanetary File System,又称星际文件系统)是一个点对点的分布式文件系统。其存储是按内容寻址,即通过文件内容生成独立哈希值来标识文件,而不是通过文件保存位置来标识。
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(log n)时间内使用根哈希对叶子进行验证(这也称为默克尔树证明),验证工作是通过重新创建包含从根到被验证的数据段进行的。在上面的例子中,如果想要验证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)。
构建树的方法是将叶子添加到堆栈中,并检查堆栈中的前两个节点是否具有相同的高度。当高度相同时,节点有一个“子值”(两个节点哈希值相连后的再次哈希值),当高度不同时,一个新节点会追加到堆栈中;当最后两个节点高度不同时,需要处理这种边缘情况。
IPFS包括网络层:用于更好的分散计算;身份层:管理节点身份生成和验证;交换层:一种支持有效块分配的新型块交换协议,模拟可信市场,弱化数据复制,防作弊;路由层:维护信息以定位特定的对等体和对象,响应本地和远程查询,默认为DHT,但可更换;文件层:由Git启发的版本化文件系统层次结构;命名层:自我认证的可变名称系统;应用层:IPFS上运行的应用程序;对象层:具有链接的内容寻址不可更改对象的Merkle DAG,用于表示任意数据结构,例如文件层次和通信系统。
Claims (6)
1.一种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(H(a)+H(b))和H(cd)=H(H(c)+H(d))。
3.如权利要求1所述的一种IPFS快速添加或者删除文件夹的方法,其特征在于,默克尔树构建完成后,在O(log n)时间内使用根哈希对叶子进行验证。
4.如权利要求1所述的一种IPFS快速添加或者删除文件夹的方法,其特征在于,在BT下载情况下,是由另一方提供数据c, H(d)和H(H(a)+ H(b))。
5.如权利要求1所述的一种IPFS快速添加或者删除文件夹的方法,其特征在于,构建树的方法是将叶子添加到堆栈中,并检查堆栈中的前两个节点是否具有相同的高度,当高度相同时,节点有一个子值,当高度不同时,一个新节点会追加到堆栈中;当最后两个节点高度不同时,对其进行处理。
6.如权利要求1所述的一种IPFS快速添加或者删除文件夹的方法,其特征在于,IPFS包括网络层:用于更好的分散计算;身份层:管理节点身份生成和验证;交换层:一种支持有效块分配的新型块交换协议,模拟可信市场,弱化数据复制,防作弊;路由层:维护信息以定位特定的对等体和对象,响应本地和远程查询,默认为DHT,但可更换;文件层:由Git启发的版本化文件系统层次结构;命名层:自我认证的可变名称系统;应用层:IPFS上运行的应用程序;对象层:具有链接的内容寻址不可更改对象的Merkle DAG,用于表示任意数据结构。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020100713625 | 2020-01-21 | ||
CN202010071362 | 2020-01-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111400261A true CN111400261A (zh) | 2020-07-10 |
Family
ID=71435742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010396514.9A Pending CN111400261A (zh) | 2020-01-21 | 2020-05-12 | 一种ipfs快速添加或者删除文件夹的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400261A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988674A (zh) * | 2021-03-12 | 2021-06-18 | 平安国际智慧城市科技股份有限公司 | 大数据文件的处理方法、装置、计算机设备及存储介质 |
CN113064876A (zh) * | 2021-03-25 | 2021-07-02 | 芝麻链(北京)科技有限公司 | 一种ipfs文件处理方法 |
CN113704182A (zh) * | 2021-06-15 | 2021-11-26 | 成都统信软件技术有限公司 | 一种数据检查方法及计算设备 |
CN113778951A (zh) * | 2021-09-16 | 2021-12-10 | 平安国际智慧城市科技股份有限公司 | 文件的追加方法、装置、设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077483A (zh) * | 2014-09-23 | 2017-08-18 | 亚马逊技术股份有限公司 | 共享文件夹和文件的同步 |
CN109934012A (zh) * | 2019-03-20 | 2019-06-25 | 福建师范大学 | 基于区块链网络的医疗记录安全存储访问方法 |
CN110008194A (zh) * | 2019-03-01 | 2019-07-12 | 上海七印信息科技有限公司 | 一种基于区块链和星际文件系统ipfs的快速文件获取方法 |
CN110334065A (zh) * | 2019-07-11 | 2019-10-15 | 中国联合网络通信集团有限公司 | 一种文件处理方法和系统 |
-
2020
- 2020-05-12 CN CN202010396514.9A patent/CN111400261A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077483A (zh) * | 2014-09-23 | 2017-08-18 | 亚马逊技术股份有限公司 | 共享文件夹和文件的同步 |
CN110008194A (zh) * | 2019-03-01 | 2019-07-12 | 上海七印信息科技有限公司 | 一种基于区块链和星际文件系统ipfs的快速文件获取方法 |
CN109934012A (zh) * | 2019-03-20 | 2019-06-25 | 福建师范大学 | 基于区块链网络的医疗记录安全存储访问方法 |
CN110334065A (zh) * | 2019-07-11 | 2019-10-15 | 中国联合网络通信集团有限公司 | 一种文件处理方法和系统 |
Non-Patent Citations (3)
Title |
---|
HACKERNOON: "《https://hackernoon.com/merkle-tree-introduction-4c44250e2da7》", 11 September 2017 * |
李聪: "《公共安全大数据技术与应用》", 31 October 2018, 吉林大学出版社 * |
殷龙等: "基于IPFS的分布式数据共享系统的研究", 《物联网技术》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988674A (zh) * | 2021-03-12 | 2021-06-18 | 平安国际智慧城市科技股份有限公司 | 大数据文件的处理方法、装置、计算机设备及存储介质 |
CN113064876A (zh) * | 2021-03-25 | 2021-07-02 | 芝麻链(北京)科技有限公司 | 一种ipfs文件处理方法 |
CN113704182A (zh) * | 2021-06-15 | 2021-11-26 | 成都统信软件技术有限公司 | 一种数据检查方法及计算设备 |
CN113704182B (zh) * | 2021-06-15 | 2023-05-12 | 成都统信软件技术有限公司 | 一种数据检查方法及计算设备 |
CN113778951A (zh) * | 2021-09-16 | 2021-12-10 | 平安国际智慧城市科技股份有限公司 | 文件的追加方法、装置、设备以及存储介质 |
CN113778951B (zh) * | 2021-09-16 | 2024-04-26 | 平安国际智慧城市科技股份有限公司 | 文件的追加方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400261A (zh) | 一种ipfs快速添加或者删除文件夹的方法 | |
Hasan et al. | A survey of peer-to-peer storage techniques for distributed file systems | |
US20220284046A1 (en) | Application Programming Interface-based Writing of Data to a Directory of a File Structure Layer of a Data Storage System | |
CN103595730B (zh) | 一种密文云存储方法和系统 | |
US9317506B2 (en) | Accelerated data transfer using common prior data segments | |
US8296283B2 (en) | DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users | |
JP2020530213A (ja) | ブロックチェーンワールド状態マークルパトリシアトライ木サブツリーの構築 | |
US20160044100A1 (en) | Accelerating transfer protocols | |
US10339124B2 (en) | Data fingerprint strengthening | |
Sung et al. | A survey of data management in peer-to-peer systems | |
Abe et al. | Mitigating bitcoin node storage size by DHT | |
CA3098942C (en) | Taking snapshots of blockchain data | |
Martins et al. | Survey of data replication in P2P systems | |
JP2008102795A (ja) | ファイル管理装置、システム及びプログラム | |
Zhao et al. | A novel enhanced lightweight node for blockchain | |
CN113434094A (zh) | 一种基于ipfs的数据文件存储提取方法 | |
EP3769219B1 (en) | Taking snapshots of blockchain data | |
Chowdhury et al. | Secured blockchain based decentralised internet: a proposed new internet | |
Blanco et al. | A survey of data management in peer-to-peer systems | |
KR20070075667A (ko) | 대용량 웹에서 웹 페이지 관리를 위한 히스토리 저장 서버및 방법 | |
Busca et al. | Pastis: A highly-scalable multi-user peer-to-peer file system | |
JP2002318716A (ja) | 配信システム、配信方法、サーバコンピュータ、クライアントコンピュータ | |
CN112989404A (zh) | 基于区块链的日志管理方法及相关设备 | |
KR102344933B1 (ko) | 체인 데이터베이스를 구비한 블록체인 기반의 데이터 저장 장치 | |
Kurokawa et al. | Study on the distributed data sharing mechanism with a mutual authentication and meta database technology |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200710 |