IPNS全称InterPlanetary Name System,就是IPFS下的一个名称解析系统,类似于互联网的DNS,但是与DNS不同的是,IPNS是由节点自己维护的。
一个IPNS解析后会得到一串文本,里面是IPFS地址。
一个IPNS Name,对应了一个ID,一对密钥和一个本地的key name。
每个运行中的IPFS节点,都有一个默认的IPNS Name,其key name就是self,其ID等于自己的PeerID,其密钥对就是节点的密钥对
一个节点通过ipfs key gen命令可以创建无数个IPNS Name
ipfs key gen --type=rsa --size=2048 keyname
外界可以通过网关访问到IPNS对应的内容,例如
https://ipfs.io/ipns/QmeJHrUbuLEwB4YGw58ELE5BZYFw2zM6CsoZLxRQd8NZiL/
(所以在设置nginx转发的时候,记得除了要转发/ipfs,还要转发/ipns)
将IPFS内容发布到IPNS,通过ipfs name publish命令,例如
# 将IPFS CID发布到节点默认IPNS Name ipfs name publish /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy # 将CID发布到其他IPNS Name,需要加上--key=xxx 参数,其值可以是key name,也可以是hash ipfs name publish --key=mykey /ipfs/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy
注意:这个命令的执行时间很长,在使用--enable-namesys-pubsub参数的情况下,需要50秒左右,在未使用该参数的情况下,需要两到三分钟。