# IPNS 工作原理及其有效期逻辑

By [链嗅网ChainXiu](https://paragraph.com/@chainxiu) · 2024-06-18

---

[IPNS](https://www.chainxiu.com/tag/ipns)（星际命名系统）是[IPFS](https://www.chainxiu.com/tag/ipfs)（星际文件系统）的一部分，用于创建可变的指向[CID](https://www.chainxiu.com/tag/cid)（内容标识符）的链接，也被称为IPNS名称。简单理解，IPNS是IPFS的域名系统，我们将IPFS对应为IP地址，IPNS则是传统的域名。

很多人经常会对IPFS及IPNS的概念产生混乱，本文讲主要阐述一下IPNS的工作原理和有效期逻辑。

### **IPNS是什么？**

IPNS允许将可变的指向与不变的内容关联起来。它类似于一个分布式的域名系统，允许你通过一个持久的名称来引用一个文件，而不受文件内容的更改影响。通过IPNS，你可以创建一个持久的链接，指向你的文件，即使文件内容发生变化。

### **IPNS的工作流程：**

*   发布者创建一个IPNS记录，将其与文件哈希关联。
    
*   记录中包含了发布者的公钥、签名和版本信息。
    
*   其他节点可以通过IPNS记录查找文件，但需要验证签名和公钥。
    

### **IPNS名称的构成：**

IPNS名称是一个公钥的哈希值。它与一个IPNS记录关联，其中包含了它所指向的内容路径（例如/ipfs/CID）、过期时间、版本号以及由相应私钥签名的加密签名.

### **IPNS名称与内容路径的关系：**

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记录，以更新其有效性。这通常涉及生成新的密钥对、创建新的记录并将其与文件哈希关联。
        
    *   链接失效：之前基于过期的IPNS记录创建的链接将不再有效。如果其他人尝试访问该链接，将无法获取文件。
        
    
    总之，IPNS记录过期后，需要发布者采取措施来更新记录，以确保持久性链接的有效性。

---

*Originally published on [链嗅网ChainXiu](https://paragraph.com/@chainxiu/ipns)*
