CN111400261A - 一种ipfs快速添加或者删除文件夹的方法 - Google Patents

一种ipfs快速添加或者删除文件夹的方法 Download PDF

Info

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
Application number
CN202010396514.9A
Other languages
English (en)
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.)
Planetary Computing Power Shenzhen Technology Co ltd
Original Assignee
Planetary Computing Power Shenzhen 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 Planetary Computing Power Shenzhen Technology Co ltd filed Critical Planetary Computing Power Shenzhen Technology Co ltd
Publication of CN111400261A publication Critical patent/CN111400261A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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快速添加或者删除文件夹的方法。
背景技术
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,用于表示任意数据结构。
CN202010396514.9A 2020-01-21 2020-05-12 一种ipfs快速添加或者删除文件夹的方法 Pending CN111400261A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国联合网络通信集团有限公司 一种文件处理方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
HACKERNOON: "《https://hackernoon.com/merkle-tree-introduction-4c44250e2da7》", 11 September 2017 *
李聪: "《公共安全大数据技术与应用》", 31 October 2018, 吉林大学出版社 *
殷龙等: "基于IPFS的分布式数据共享系统的研究", 《物联网技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
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