专用IPFS网络

随着 IPFS 的大规模增长和采用,我们需要越来越多的方法来通过IPFS 的 DHT(分布式哈希表)优化内容可发现性。在这篇文章中,我们将看看 IPFS 面临的几个挑战以及目前面临性能问题的项目的潜在解决方案。

很多节点

内容可发现性的第一个可扩展性挑战与 IPFS 网络中的节点数量有关。单个 IPFS 节点经常向网络中的其他节点宣布内容。这允许其他节点在有人询问时指向托管该内容的节点,如下所示:

当 IPFS 网络中有合理数量的节点时,这非常有效。然而,随着网络中节点数量的增加,网络趋于变慢。这是因为所有 IPFS 节点都使用相同的 DHT 来定位数据。随着公共网络上 IPFS 节点的增长,内容发现开始看起来更像下图而不是上图:

这种节点拥塞会减慢 DHT 找到具有内容的节点的能力。此外,并非所有节点都同样稳定。许多加入网络的节点可能经常脱机或无响应。当尝试通过 IPFS 网络路由信息时,这会产生额外的延迟。然而,网络中的节点数量并不是唯一的可扩展性挑战。这些节点上的内容量也是一个挑战。

大量内容

IPFS 难以实现有效内容可发现性的第二个原因是网络中节点宣布的内容量。IPFS 节点宣布内容的行为需要一点时间。此外,这些节点想要宣布他们拥有的所有内容。然而,随着节点开始存储越来越多的内容,该内容的 DHT 记录在节点能够重新宣布该内容之前就开始过期。如下所示,这会备份内容公告队列,并可能导致节点在任何给定时间只能让网络了解其部分内容的情况。那么,网络如何随着节点和内容数量的增加而扩展?

专用网络

Protocol Labs已经投入大量精力来扩展公共 DHT。但是,应用程序现在有一种方法可以扩展其 IPFS 使用。考虑私有 IPFS 网络。
私有 IPFS 网络本质上相当简单。私有 IPFS 网络中的参与者将只连接到该网络中的节点,而不是连接到主 IPFS 网络。对这些网络的访问由私人“群密钥”控制,网络中的每个成员必须拥有该密钥才能参与。
要了解有关设置私有 IPFS 网络的更多信息,请访问github 上的这些说明。
到目前为止,大多数私有网络都被认为是为内容添加隐私的一种方式。然而,当考虑到网络可扩展性时,它们变得更加强大。

使用专用网络

大多数使用公共 IPFS 网络的应用程序实际上并不关心由自己节点以外的节点托管的内容。同样,大多数其他节点也不关心它们的内容。
通过使用 IPFS 建立私有网络的能力,我们可以建立“专用”网络,该网络仅由特定应用程序数据的节点组成。通过保护允许其他节点加入网络的私有访问密钥,这些网络可以是私有的。或者,它们可以是“公共”专用网络。
“公共”专用网络是具有公开访问密钥的私有 IPFS 网络。这些公共的、私有的 IPFS 网络允许任何人加入。不同之处在于,这些网络与主要的 IPFS 网络分开以专门化自己。不关心这些网络上数据的节点没有理由加入它们,因为这样做会浪费资源。

扩展优势

通过将自己与主 IPFS 网络分离,专用 IPFS 网络可以实现显着的性能提升。这些性能提升的主要原因是网络中的节点将始终连接到网络中的大多数(如果不是全部)其他节点。
这对性能有什么帮助?
在上一篇文章中,通过 Swarm 连接加速 IPFS,我们讨论了如何直接连接到主机节点允许请求的节点立即定位内容。这基本上绕过了 DHT 查找过程。

同样的功能适用于专用 IPFS 网络。由于大多数节点将始终相互连接,因此整个网络中的内容发现几乎是瞬时发生的。这意味着不再需要冗长的查找时间。
这也解决了单个节点发布的内容过多的问题。当直接连接到主机节点时,该节点是否有时间向 DHT 宣布该内容并不重要。通过直接连接到主机节点,任何请求节点仍然能够立即发现内容。但是,如果最终用户没有 IPFS 节点,我们如何向他们提供内容?

网关

IPFS 网关可以像在公共网络上一样在专用 IPFS 网络上运行。事实上,网关在专用网络上的工作方式与在主要公共 IPFS 网络上的工作方式完全相同。唯一的区别是,专用网络上的网关不会在公共 IPFS 网络中搜索数据,而只会在专用网络中的节点上搜索内容。
对于严重依赖网关来检索内容的应用程序来说,这成为一个巨大的卖点。用户无需在每次想要消费数据时等待冗长的内容发现进程,他们可以从专用网络网关立即找到它。

真实世界的例子

假设我们有三个去中心化网络,详情如下:

  • 一个分散自律组织,存储和共享所有文件通过IPFS
  • 通过 IPFS 共享科学数据的网络
  • 一个使用 IPFS 作为其订单簿的去中心化交易所
    使用专用的 IPFS 网络,这些示例中的每一个都可以确保它们的数据尽可能高效地通过其网络流动,而无需处理它们不关心的外部网络噪音。但是,如果您想在专用网络之间切换怎么办?

在网络之间切换

使用专用 IPFS 网络的另一个优势是可以随时过渡到公共网络。如果在任何时候,一个节点或节点网络决定其数据想要成为公共 IPFS 网络的一部分,那么所需的只是一些小的配置更改和节点重新启动。当切换回公共 IPFS 网络时,节点的所有数据都将保持安全和不变。唯一的变化是节点现在将再次参与公共 IPFS DHT。
这为在不久的将来可能选择专用网络方法以提高性能但最终希望参与公共网络性能的应用程序提供了一条相对简单的过渡路径。
相同的概念适用于切换到不同的专用网络。如果一个节点想要加入不同的专用网络,它可以简单地更改其节点配置以指向新的专用网络。

重要注意事项

专用 IPFS 网络为扩展应用程序对 IPFS 的使用提供了强大的功能。但是,这并不能使它们适合每个项目。
在考虑专用网络时,这些是需要牢记的重要事项。

节点配置

每个想要加入专用网络的节点都需要正确配置才能这样做。如果没有正确考虑,这可能会成为用户体验问题。

引导

默认情况下,IPFS 节点被配置为将自己引导到由Protocol Labs运行的公共 IPFS 引导节点。要成功运行专用 IPFS 网络,需要运行专用引导节点,并且需要配置节点以在启动时连接到它们。

公共数据访问

参与专用 IPFS 网络的节点将无法访问公共 IPFS 网络上的任何数据。如果网络依赖于公共网络中的数据,而这些数据不会由用户在其专用网络上托管,则可能会出现问题。
同样,公共网络上的节点(例如公共网关)将无法访问托管在专用 IPFS 网络上的数据。

网络大小/对等点计数

专用网络最大的性能提升之一来自每个对等点与其他每个对等点保持连接的能力。如果专用网络变得太大,或者如果参与专用网络的节点没有足够强大的硬件来连接大量节点,则性能提升可能很小。

结论

当应用程序不需要参与公共 IPFS 网络时,专用 IPFS 网络提供了强大的扩展工具。利用专用 IPFS 网络可以为专用网络节点提供更快的内容发现时间。这会带来更好、更稳定的用户体验。

  1. https://medium.com/pinata/dedicated-ipfs-networks-c692d53f938d
posted @ 2021-10-24 19:29  qxxiao  阅读(302)  评论(0)    收藏  举报