当前位置:首页 > 知识 >

IPFS文件检索方法大揭秘

  • IPFS
  • 2023-08-22 00:45:54
  • 11
我们知道IPFS系统除了有存储内容的功能以外,也有检索内容的功能。

之前我们对存储谈得比较多,谈检索相对较少。今天我们就和大家分享一下IPFS检索内容的过程。

我们会通过对几个关键术语的介绍带大家一步步了解IPFS检索内容的过程和方法。

分布式哈希表(DHT):分布式哈希表(DHT)全称是Distributed Hash Table。

当一个节点加入到IPFS网络中后,该节点中存储的IPFS内容就会通过IPFS的分布式哈希表(DHT)频繁地广播到IPFS全网,告诉其它节点它自己存储了什么内容。

这样当有用户希望检索的内容正好在这个节点上时,其它节点就会告诉用户从这个节点索取他想要的内容。

多地址(MultiAddresses):

在讲述多地址前,我们先定义两个概念:检索节点和存储节点。检索节点就是接到用户请求需要检索某个内容的节点。存储节点就是存储了用户所需内容的节点。

当检索节点要检索某个内容时,实际上是要查找谁是存储节点并且存储节点到底在哪里。

当存储节点被找到后,IPFS网络就会返回存储节点的“多地址”。典型的“多地址”看起来是类似下面这样的一串字符:

/ip4/123.456.78.90/tcp/4001/ipfs/QmAbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQr

“多地址”的“多”意味着它的格式有多种。它为检索节点提供了以下信息:

- 其它节点如果想与存储节点进行通信需要遵循什么协议 - 存储节点的IP是多少 - 其它节点访问存储节点时该访问哪个端口 - 存储节点的PeerID是多少

内容获取:

当有检索节点找到了存储节点后,会得到存储节点的“多地址”。

接下来检索节点就会通过“多地址”直接连接存储节点。这个连接过程就会用到IPFS的“swarm”功能,然后从存储节点获取所需的检索内容。

通常当检索节点通过DHT找存储节点时,这个寻找的过程比较耗时,这主要有两种原因:一是存储节点可能刚刚才接入进IPFS网络不久,二是知道存储节点的其它节点并不多。这两点本质上又统统可以归咎于节点之间的位置太分散。

那我们有没办法加速寻找存储节点的过程呢?当然是有的。

如果在某些情况下,检索节点已经知道了存储节点的位置,实际上它就没必要再通过DHT来搜索存储节点了,可以直接连接存储节点,就像在高速公路上走“快车道”一样能带来巨大的便利。

在IPFS中,我们可以手动设置直接连接一个节点。比如我们已经知道一个节点的“多地址”,我们就可以用IPFS的“swarm connect”功能直接连接。

这样当检索节点刚好知道存储节点的“多地址”时,可以用“swarm connect”直接连接存储节点。

以上就是IPFS中文件检索的过程以及我们如何加速文件检索的方法。

作者:Filecoin社区

猜你喜欢

微信二维码

微信