IPFS在哪里存储所有数据?

Ane*_*mar 31 ipfs

我一直在努力实现和理解IPFS的工作,并且有一些不太清楚的事情.

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

问题:
1.块是否也存储在我的系统本地?
2.数据存储在何处?在我连接的其他同行上?因为如果我关闭我的ipfs守护进程,我仍然可以访问该文件.
3.如果这是真的,并且数据存储在多个位置,那么如果所有对等方都与网络断开连接,那么丢失数据的可能性仍然存在?
4.网络上的每个对等体是存储整个文件还是仅存储文件的一部分?
5.如果在p2p网络上分发数据副本,则意味着数据被多次复制?这在存储方面如何有效?
6.我们存储其他同行上传的数据吗?
7.运行IPFS的最低系统要求?我们只需要丰富的存储空间,不一定需要强大的系统?

提前致谢!

小智 33

当您上传某些内容时,该文件将被ipfs 分块并存储在您的缓存文件夹(.ipfs)中.

如果您尝试在网络的另一个对等方(比如主网关,ipfs.io)上查看该文件,该对等方向您请求该文件并将其缓存.

如果您关闭守护程序,您仍然可以在网关上看到该文件,因为网关或网络上的其他同行仍然可以缓存它.

当一个对象想要下载一个文件但是它没有内存(它不能再缓存)时,最旧的文件会忘记释放空间.

......实际上它比这更复杂,因为有更广泛的范围我指向你检查:

  • git是如何工作的
  • 分散的哈希表
  • Kademlia的
  • meerkle树
  • ...

但后者应该让您了解机制如何或多或少地起作用.

现在,让我们逐点回答

  1. 请求您的文件的所有对等方都缓存它
  2. 如果不再可能从缓存了部分缓存的所有对等体(包括您自己)重新构建文件,则会丢失该文件
  3. 一个人可以得到它的一部分,想象你正在看一部电影,你或多或少地停在一半...就是这样,你只缓存了一半.
  4. 当您在youtube上观看视频时,您的浏览器会缓存它(这意味着复制!)... ipfs在流量方面效率更高,假设您关闭浏览器,2分钟后您想再次观看它.Ipfs从你的缓存中获取它,youtube让你再次下载它.三角洲存储(与git相关)以及从中获取它(也可能在你的局域内......这意味着快速发展)也有一个有趣的问题,但我不会深入研究它.
  5. 如果您获得数据,则将其缓存为......
  6. 主守护进程是用go编写的.Go是高效的,但不如在C++,C,Rust上编写它...而且,技术还很年轻,它会改进.您拥有的空间越多,您可以缓存的越多,CPU功率并不重要.

如果您对以p2p方式存储数据的方式感兴趣,可以在此处链接到有趣的项目.


Yil*_*maz 6

文件存储在 IPFS 对象内,最大大小为 256kb。IPFS 对象还可以包含到其他 ipfs 对象的链接。大于 256 kb 的文件、图像或视频。这些被分割成多个 ipfs 对象,大小均为 256 kb,之后系统将创建一个空的 IPFS 对象,链接到文件的所有其他部分。每个对象都会经过哈希处理并被赋予唯一的内容标识符 (CID),用作指纹。这使得您可以更快、更轻松地将小块数据快速存储在网络上。

由于 IPFS 使用基于内容的寻址,因此一旦添加内容就无法更改。它是一个不可变的数据存储,就像区块链一样。IPFS 可以帮助您以一种可以节省大量资金的方式交付内容。

IPFS 消除网络中的重复项并跟踪每个文件的版本历史记录。IPFS 还提供高性能和集群持久性。

由于 IPFS 支持文件的版本控制。假设您想通过 ipfs 与某人共享一个重要文件。IPFS 将创建一个新的提交对象。这是非常基本的。它只是告诉 ipfs 在它之前进行了哪个提交,并链接到文件的 IPFS 对象。假设一段时间后你想更新一个文件。您只需将更新的文件添加到 IPFS 网络,软件将为您的文件创建一个新的提交对象。此提交对象现在链接到先前的提交。这可以无休无止地进行。IPFS 将确保网络上的其他节点可以访问您的文件及其整个历史记录。

IPFS 的最大问题是保持文件可用。网络上的每个节点都会保存已下载的文件的缓存,并在其他人需要时帮助共享它们。但是,如果某个特定文件由 4 个节点托管,并且这些节点离线,那么这些文件将变得不可用,并且没有人可以获取它的副本。这个问题有两种可能的解决方案。

我们要么激励人们存储文件并使其可用,要么我们可以主动分发文件并确保网络上始终有一定数量的可用副本。这正是 file coin 想要做的事情。文件币是由创建 IPFS 的同一组人创建的。它基本上是一个建立在 IPFS 之上的区块链,旨在创建一个去中心化的存储市场。如果您有一些空闲空间,您可以将其出租给其他人,并在此过程中从中赚钱。

IPFS 和区块链是完美契合的。您可以使用 IPFS 处理大量数据,并将不可变的 IPFS 链接放入区块链交易中。这会为您的内容添加时间戳并保护其安全,而无需将数据本身放在链上。

参考