登录站点

用户名

密码

了解IPFS(行星际文件系统)的工作原理

已有 659 次阅读  2019-01-19 16:41   标签IPFS 

  

  当您看到永久存储和 分散的内容时,了解它的真正含义非常重要 , 我希望能帮助您了解IPFS(行星际文件系统)的工作原理。

  这样,您就能够对运行服务或应用程序的堆栈做出最佳决策。而且,您甚至可以学习一些有关如何使用IPFS 的有趣信息。

  IPFS简介

  IPFS(www.ipfsblack.com)下包含一些活动部件。使用术语“umbrella”是因为它不仅仅是关于存储。该伞实际上包含一组旨在替换HTTP的其他协议。我将解释下面的一些关键部分:

  网关

  这是一个经常由各种贡献者提供给公众的实例。它是网络整个“分散”方面的支柱的一部分。网关处理诸如将客户端路由到具有内容的节点以及位于节点本身之前的缓存机制之类的事情。在从节点检索所有请求之前,首先将所有请求发送到网关。

  就CDN而言,这可以被视为边缘路由器。

  节点

  这基本上是您拥有的自托管实例,并且它已连接到网络。它允许用户通过add/publish命令访问您通过节点可访问的文件。为了使您的文件可以访问,该节点必须在线。存在缓存协议(通过网关),允许用户在缓存时访问您的内容,方法是从可能具有该内容的其他对等方请求它。

  在某种意义上,您可以将其视为BitTorrent的工作原理。如果另一个对等方拥有您已向网络提供的内容,则其他人可以从中获取该内容。但是,如果没有具有该内容的对等项,则如果您的节点处于脱机状态,则无法访问该内容。

  但是,由于仍然可能产生单点故障,因此这可能属于并非真正分散的 存储桶。

  哈希

  有两种不同类型的哈希需要注意:IPFS和IPNS。

  IPFS哈希

  这是hash您添加到节点的数据内容。它还用于通过网关或节点访问文件。根据文件的内容,这将始终是唯一的。如果文件尚未修改,则散列将保持不变。但是,如果它已被更改,那么它将生成一个新的哈希。

  这也意味着用户需要知道新的哈希才能访问它。很多主题都直接指向它,但是访问更新的数据并不多。

  这就是IPNS的用途。

  IPNS哈希

  这是hash与您的节点相关联的。每个节点实例都有自己的IPNS哈希,这也是它的对等身份哈希。这在初始化时在首次设置节点时生成。您可能会问,这通常用于什么?这样你就可以namespace 在IPFS网络上实际拥有一个允许你访问已发布内容并始终指向最新版本文件的网络。

  IPNS与IPFS的不同之处在于,如果内容的数据发生更改,您可能会生成新的哈希值,这意味着需要提供新的哈希值以进行访问。这就是你避免抓住过时内容的方法。然而,这是一个单一的“静态”哈希,可以更新以指向发布的内容。

  在技术方面, IPNS Hash 可以被描述为 静态地址,因为它被配置为始终指向特定节点,并且 唯一地址 被分配以始终指向发布给它的内容。

  “永久存储”和“分散”

  您将找到有关如何“永久”和“免费”在IPFS上托管数据的大量信息。不要陷入炒作和流行语的陷阱。

  只有当多个源将其固定并存储在其IPFS节点上时,才能将您的IPFS视为真正分散的。否则,分散的唯一“数据”是添加到网络的文件的IPFS散列,而不是实际内容本身。

  由构成网络的哈希构成的元数据分布在可用节点上,因此是分散的。

  此元数据用于查找包含内容的节点,并将其提供给请求它的客户端。

  它可以类似于区块链,其中加入网络的每个人都有“链”的一部分(在我们的例子中是元数据),并且将相同的数据共享给也连接到网络的其他对等体。

  什么是PINNED / PINNING?

  IPFS协议具有“垃圾收集”的概念,其从网络中移除不经常访问的内容。这会影响内容在IPFS网络上的存储方式,因为毕竟:资源是有限的。

  当内容被“固定”时,它会让IPFS实例知道在运行垃圾收集时不应将其从存储中删除。重要的是要知道这只会影响执行操作的节点。

  这意味着任何未明确固定内容的节点都会在下一次垃圾回收期间从其存储中清除该内容。

  您可以遇到一种状态,如果没有固定内容的节点,则内容不再可用。

  警告

  默认情况下,IPFS配置为扫描本地网络以发现其他节点/网关。根据您选择的托管服务提供商,他们可能认为您的服务器受到感染并恶意在网络上发送随机数据包或扫描端口。

  这种情况发生在我的情况下,几乎导致我的提供商关闭服务器。

  在使用一些更健全的默认值设置自己的实例时,您应该始终小心,以免它遇到此问题。IPFS附带了一些可用于特定用例的配置文件。

  对于它的价值,local-discovery如果您运行该ipfs init命令而没有任何其他标志,则默认启用。这不是大多数人在教程中提到的,这是我在查看配置选项时遇到的问题。

  结论

  IPFS没有任何问题或使用它。只是在那里有很多关于它的作用和工作原理的误导性信息。

  这让人很难理解,粗略地看一眼。希望这个稍微高级的解释为您提供一些细节,以做出明智的决定或收集有关IPFS运作的更多知识。

  与往常一样,建议查看IPFS官方文档,因为协议在活动开发中仍被视为alpha。

分享 举报