更新 IPNS 链接的工作原理



我有一个目录,其中包含许多我已添加到ipfs的文件。 当我这样做时,我会得到目录中包含的文件的所有哈希的列表。

例如:

File1.txt QYNOSMSLDFKAL12345
File2.txt QYNOSMSLDFKAL12346
File3.txt QYNOSMSLDFKAL12347

我现在将目录的这个ipfs哈希发布到ipns,并尝试获取File2.txt 使用以下网关链接:

http://ipfs.io/ipns/<ipns hash>/File2.txt

当有人尝试在网关上获取文件时,它如何准确找到 ipns 哈希所在的位置?(以及随后链接到该哈希的目录中包含的文件(

我问这个是因为我想知道在以下情况下会发生什么:

我现在在我之前散列的目录中修改 File1.txt。当我重新添加目录时,我注意到只有 File1.txt 的哈希发生了变化,这是有道理的。现在我有:

File1.txt QYNOSMSLDFKAL99999
File2.txt QYNOSMSLDFKAL12346
File3.txt QYNOSMSLDFKAL12347

我现在将其重新发布到与以前相同的ipns链接。

现在,当有人尝试获取ipfs网关以前未更改的文件时 - 例如。File2.txt - 在尝试查找此 File2.txt 时,网关是否必须从头开始,即使它的 ipfs 哈希与以前相同,并且它的 ipns 链接是相同的?

即 http://ipfs.io/ipns//File2.txt

我要说的是,如果新目录中包含的大多数文件保持不变,更新 IPNS 链接是否会产生巨大的开销?

提前感谢,

汤姆

如果使用网关并使用包含 IPNS 的链接,则每次查找链接时都会下载内容。最多可能有一个缓存标头几秒钟。这是不可避免的,因为 IPNS 名称的值可能随时更改。

如果您直接与IPFS交互,则像/ipns/<ipns hash>/File2.txt这样的路径的解析是一个两步过程。首先,IPNS名称被转换为IPFS哈希。然后,该哈希值的内容将遍历到叶子。

因此,要解析上述路径,IPNS 名称当前必须指向 IPFS 哈希,该哈希是一个目录对象,具有一个名为File2.txt的子对象。

如果您不使用网关,您的本地 IPFS 守护程序会注意到,虽然目录对象已更改,但File2.txt仍然具有哈希QYNOSMSLDFKAL12346并且不会再次下载它。

相关内容

  • 没有找到相关文章

最新更新