IPNS断开链接

时间:2018-10-15 11:48:46

标签: ipfs

我一直在努力弄清IPNS的工作原理。

据我所知,它允许您将ipfs哈希存储在peer_id的命名空间下。

这是否意味着每个ipfs节点只能维护一个ipns哈希?

此外,在ipfs.io的文档中,解释了ipns的工作方式,它包含以下行:

Note that updating an ipns entry can "break links" because anything referencing an ipns
 entry might no longer point to the content it expected. There is no way around this
 ( you know, mutability ), therefore, ipns links should be used carefully
if you want to ensure permanence.

“断开链接”在这里是什么意思?

1 个答案:

答案 0 :(得分:2)

每个ipfs节点可以具有任意数量的IPNS密钥对。

您有一个默认的密钥对,该密钥对是在创建节点时生成的。如果您进行ipfs name publish <somehash>,则将其发布。

$ ipfs name publish /ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN
Published to QmPgJooiXNDGWE6QGWhks935n8DiTP7ysH8wezAbkCrND7: /ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN

此密钥对也是用于节点ID的密钥对。

$ ipfs id --format='<id>'
QmPgJooiXNDGWE6QGWhks935n8DiTP7ysH8wezAbkCrND7

但是您可以生成任意数量的其他键,如下所示:

$ ipfs key gen -t rsa -s 2048 test
QmfMtYnxBH46HKE89NKTfffSckiSw3c9UD1n3rdyC5zphM

然后发布到那些命名的键

$ ipfs name publish --key=test 
/ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN
Published to QmfMtYnxBH46HKE89NKTfffSckiSw3c9UD1n3rdyC5zphM: /ipfs/QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN

可能值得注意的是,这些密钥对可以复制到其他节点。拥有密钥对(包括私钥)的任何节点都可以发布到该名称。

现在,关于断开链接。 IPNS名称的值可能会随时间变化。这就是重点。因此,只要内容仍在网络中某个位置,像/ipfs/Qm1234/foo/bar/index.html这样的ipfs链接就永远不会过时,但是像/ipns/Qm5678/foo/bar/index.html这样的链接可以在某个时间存在,然后在新的链接消失后就不存在了。 ,则以该名称发布不同的目录结构。