LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 干货|浅谈IPFS数据存储原理

干货|浅谈IPFS数据存储原理

2020-12-24 算力全球 来源:区块链网络

IPFS的火热使分布式存储成为了市场中的热门讨论话题,全球各大企业也倾向于搭建分布式存储系统。但是由于IPFS营销宣传等等原因,市场上很多人会直接会把IPFS等同于分布式存储。

其实IPFS并不等同于分布式存储系统,IPFS作为一个基于内容寻址的、分布式的、新型超媒体传输协议,在2014年,由胡安·贝内特创立的协议实验室所提出,该协议将会重点解决互联网数据重复、数据分发、数据检索等问题。

本文主要会从数据存储的角度来对IPFS的文件存储原理进行详解,方便大众理解数据存储如何在整个IPFS运行以及为何IPFS并不等同于分布式存储系统。

IPFS对于数据存储的解决方案

IPFS在数据存储方面采用的是分散式的文件存储,区别于HTTP协议的位置寻址,IPFS是基于内容寻址,当文件上传到IPFS节点存储时,节点会对文件进行Merkle DAG(默克尔有向无环图)的格式组织分块存储,在存储完毕后,文件将以Merkle DAG的根哈希数来表示该文件,用户可以从IPFS构建的网络中以DHT(分布式哈希表) 的方式获取文件。

此外,在数据存储架构上,IPFS还采用了CID字库技术来验证数据的重复性,此功能将会有助于对IPFS网络进行重复数据的删除,确保存储在网络上的数据唯一性,因此,具有相同内容的文件是无法提交两次。

这样的数据存储架构在一定程度上不仅能优化存储要求,还可以提高整个网络性能。

IPFS文件存储分发具体实现过程

IPFS数据存储共有8个组合:节点身份、Pinning(固定CID的管理器)、Blockstore、BaseBlocks、GCLocker、Blocks、Merkle DAG、DHT。

每个节点采用nodeID作为身份识别,节点存储着公钥和加密过的私钥,技术上使用基于S/Kademlia和Coral的分布式松散哈希表DSHT来寻找匹配的节点和特定节点的地址信息,小值(等于或小于1KB)直接存储在DHT上生成一个NodeID,对于更大的值,IPFS会拆成小块,DHT存储拥有这些块的节点NodeIds。

数据交换使用基于BitTorrent的BitSwap协议来发送和接收分布式数据区块。BitSwap 维持着两个列表,想要获得的块和已保存的块。但与 BitTorrent 不同的是,BitSwap 不限于一个torrent中的块。BitSwap 节点可以从整个IPFS网络获取所需的块,而不管这些块属于哪些文件,这大大提高了下载效率。同时,网络中存在一些激励节点会主动缓存和传播稀有的文件片段。

DHT 和 BitSwap 技术让 IPFS形成一个用于快速而强大的存储和分发块的 P2P 系统。在此之上,IPFS还构建了一种有向无环图 Merkle DAG,使用嵌入数据源中的目标哈希散列构建对象之间的链接。Merkle DAGs 为IPFS提供了许多有用的属性,包括:

1.内容寻址:所有内容都由其多哈希校验和进行独立标识

2.防篡改:所有内容都使用其校验和进行验证。如果数据被篡改或损坏,IPFS则会检测到该数据。

3.去冗余:所有内容完全相同的对象,只存储一次。

IPFS并不会要求每一个节点都存储所有的内容,节点的所有者可以自由选择想要维持的数据,在备份了自己的数据之外,自愿的为其他的关注的内容提供服务。

IPFS为什么不等同于分布式存储系统?

前文也有所提及,IPFS是作为一个网络传输协议所存在的,它的目的是补充和完善现有的互联网,最终取代目前的HTTP协议,成为新一代互联网。因此,IPFS星际文件系统主要解决的方向会在于数据检索及数据分发等问题,而分布式存储系统主要解决的方向则会是在于数据存储。

从用户角度来说,IPFS的存储模式面向更多的是互联网个体用户而设计的,由于IPFS的公开性,互联网所有用户都可以接入到IPFS网络成为节点自由的查找内容。而分布式存储系统更多会面向企业、机构来进行文件的存储。

总结

在数据存储中,IPFS提供了一套低成本、高效的存储架构。就目前来说,IPFS分布式存储架构的确能解决中心化存储存在的一些问题,但是IPFS更多的是会解决数据检索问题,对于数据冷存储问题、存储协议更新一致性问题、数据丢失问题并没有更多的探索。

—-

编译者/作者:算力全球

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...