IPNS(星际命名系统)是IPFS(星际文件系统)的一部分,用于创建可变的指向CID(内容标识符)的链接,也被称为IPNS名称。简单理解,IPNS是IPFS的域名系统,我们将IPFS对应为IP地址,IPNS则是传统的域名。
很多人经常会对IPFS及IPNS的概念产生混乱,本文讲主要阐述一下IPNS的工作原理和有效期逻辑。
IPNS允许将可变的指向与不变的内容关联起来。它类似于一个分布式的域名系统,允许你通过一个持久的名称来引用一个文件,而不受文件内容的更改影响。通过IPNS,你可以创建一个持久的链接,指向你的文件,即使文件内容发生变化。
发布者创建一个IPNS记录,将其与文件哈希关联。
记录中包含了发布者的公钥、签名和版本信息。
其他节点可以通过IPNS记录查找文件,但需要验证签名和公钥。
IPNS名称是一个公钥的哈希值。它与一个IPNS记录关联,其中包含了它所指向的内容路径(例如/ipfs/CID)、过期时间、版本号以及由相应私钥签名的加密签名.
IPNS记录可以指向不可变或可变的路径,即可以指向一个IPFS CID,也可以指向另一个IPNS。CID在路径中的含义取决于所使用的命名空间:
/ipfs/:指向IPFS中的不可变内容(因为CID包含了多哈希)。
/ipns/<libp2p-key的CID>:指向一个可变、加密的IPNS名称,对应于libp2p的公钥。
可以将其理解为:
可变指针(IPNS) => 内容(IPFS)
不可变指针(IPFS CID) => 内容
IPNS记录的过期时间由以下因素决定:
发布者:发布者可以选择设置IPNS记录的过期时间。
密钥对:每个IPNS记录都与一个密钥对相关联。如果密钥对被删除或过期,**IPNS**记录也会失效。
维护:发布者需要定期维护IPNS记录,以确保其有效性。如果不维护,记录可能会过期。
记录不再有效:当IPNS记录的过期时间到达后,其他节点将不再接受该记录。这意味着无法通过该记录找到关联的文件。
需要重新发布:发布者需要重新发布IPNS记录,以更新其有效性。这通常涉及生成新的密钥对、创建新的记录并将其与文件哈希关联。
链接失效:之前基于过期的IPNS记录创建的链接将不再有效。如果其他人尝试访问该链接,将无法获取文件。
总之,IPNS记录过期后,需要发布者采取措施来更新记录,以确保持久性链接的有效性。