IPFS 在哪里存储所有数据?

我一直在尝试实现和理解 IPFS 的工作原理,并且有一些不清楚的地方。

我尝试过的事情:
在我的系统上实现 IPFS 并在其上存储文件。即使我从系统中删除文件并关闭 IPFS 守护进程,我仍然能够通过 IPFS 从另一台机器访问文件。
我已经注意到在我的主目录中有一个 。 ipfs文件夹,其中包含我添加到 IPFS 的部分数据块。

问题:

  1. 这些块是否也存储在我的系统中?
  2. 数据还存储在哪里?其他和我有联系的同龄人吗?因为如果关闭 ipfs 守护进程,我仍然可以访问该文件。
  3. 如果这是真的,并且数据存储在几个地方,那么如果所有对等点都断开网络连接,丢失数据的可能性仍然存在?
  4. 网络上的每个对等点是存储整个文件还是只存储文件的一部分?
  5. 如果一个数据拷贝正在通过 p2p 网络分发,这意味着数据被多次复制?这在存储方面是如何有效的?
  6. 我们也存储其他同行上传的数据吗?
  7. 运行 IPFS 的最低系统需求? 我们只需要大量的存储空间,而不一定是一个强大的系统?
19008 次浏览

当您上传某些内容时,该文件由 ipfs 设置为 一块一块的,并存储在缓存文件夹(. ipfs)中。

如果您检查网络的另一个对等点(比如主网关 ipfs.io)上的文件存在,那个对等点也会从您和 储藏室请求该文件。

如果以后你关闭了你的守护进程,你仍然可以看到网关上的文件,这可能是因为网关或网络上的其他对等方仍然有它的缓存。

当一个对等点想要下载一个文件,但它的内存不足(它不能再缓存) ,它垃圾最老的使用的文件,以释放空间。

如果你想深入研究这项技术,先看看下面这些基本原理:

  • Git 是怎么运作的
  • 分散式哈希表(DHT)
  • Kademlia
  • 默克尔树

后者或多或少会让您了解这种机制是如何工作的。

现在,让我们一点一点地回答

  1. 这些块是否也存储在我的系统中?

是的

  1. 数据还存储在哪里?其他和我有联系的同龄人吗?因为如果关闭 ipfs 守护进程,我仍然可以访问该文件。

所有请求您的文件的对等点缓存它

  1. 如果这是真的,并且数据存储在几个地方,那么如果所有对等端都断开网络连接,那么丢失数据的可能性仍然存在?

当无法从所有缓存了部分文件的对等方(包括您自己)重新构建文件时,您将丢失该文件

  1. 网络上的每个对等点是存储整个文件还是只存储文件的一部分?

一个人可以得到它的一部分,想象你正在看一部电影,你停止更多,或更少,在一半... 就是这样,你已经缓存了一半。

  1. 如果数据的副本正在通过 p2p 网络分发,这意味着数据正在被多次复制?这在存储方面是如何有效的?

当你在 YouTube 上观看一个视频时,你的浏览器会将其缓存(这意味着一个复制!)... ipfs 在流量方面更有效率,假设你关掉浏览器,2分钟后你想再看一遍。Ipfs 从你的缓存中得到它,YouTube 让你再次下载它。还有一个关于 delta 存储(与 git 相关) 还有的有趣问题(可能位于您的 LAN 内部... ... 这意味着非常快) ,但是我想继续讨论这些问题。

  1. 我们也存储其他同行上传的数据吗?

如果你得到数据,你缓存它,这样..。

  1. 运行 IPFS 的最低系统需求? 我们只需要大量的存储空间,而不一定是一个强大的系统?

主守护进程是用 go 写的。Go 很有效率,但是不如在 C + + ,C,Rust 上写的那么好... ... 而且,这项技术还很年轻,它会随着时间的推移而改进。空间越大,缓存的空间就越大,CPU 能力并不那么重要。

如果您对以 p2p 方式存储数据的方法感兴趣,这里有一些有趣项目的链接。

文件存储在 IPFS 对象中,大小高达256kb 对象也可以包含到其他 ipfs 对象的链接 大于256kb 的图像或影像 大小为256kb 的多个 ipfs 对象 系统将创建一个空的 IPFS 对象,链接到所有其他部分 每个对象都被散列并赋予一个唯一的内容 标识符(CID) ,用作指纹。这使它更快 并且更容易在网络上存储您的小部分数据 快点。

因为一旦添加了内容,IPFS 就使用基于内容的寻址 不可更改。它是一个不可变的数据存储,就像 IPFS 可以帮助以一种可以节省您的方式交付内容 一大笔钱。

IPFS 消除网络上的重复并跟踪版本 IPFS 还提供了高性能和 聚集持久性聚集持久性。

因为 IPFS 支持文件的版本控制 通过 IPFS 与他人共享一个重要文件 新的提交对象。这是非常基本的。它只是告诉 ipfs 哪个提交 在它之前,它链接到您的文件的 IPFS 对象 过一会儿你想更新一个文件。你只需要把更新过的文件添加到 IPFS 网络和软件将创建一个新的提交对象 这个提交对象现在链接到以前的提交 IPFS 将确保您的文件加上它的整个 网络上的其他节点可以访问历史记录。

IPFS 最大的问题是保持文件可用 该网络保存了一个缓存的文件,它已经下载和 如果其他人需要它们,可以帮助分享它们。但是,如果一个特定的文件 由4个节点托管,如果这些节点脱机,那么这些文件 变得无法获得,没有人可以获得它的副本。有两个 这个问题的可能解决办法。

要么我们鼓励人们储存文件并使其可用,要么 我们可以主动分发文件,并确保 总是有一定数量的副本在网络上可用。 这正是文件硬币想要做的。文件硬币是由 创建 IPFS 的同一组人员。它基本上是一个 区块链建立在 IPFS 之上,希望创建一个分散的 存储市场。如果你有一些空闲的空间,你可以租出去 其他人,并从中赚钱的过程中。

IPFS 和区块链是一个完美的匹配。您可以解决大 数据量,并将不可变的 IPFS 链接放入一个 区块链事务。这个时间戳和保护您的内容, 而不需要把数据放在链条上。

参考文献