命令行创建不同的IPNS的key并进行IPNS网站博客发布
默认 ipfs 会创建一个 key,用于 ipns 网站发布,但是如果有多个ipns网站,可以用 webui 进行管理,也可以用命令行进行管理。
使用命令行必须确保你的环境变量里面有 ipfs 。
命令教程
创建新的IPNS发布私钥key
ipfs key gen it-memo
执行后会返回一个字符串,就是你的key的访问地址,本站的是 k51qzi5uqu5dklfde21npwou4xoxs6eyiqsx482rhbku9twqf687obg5vop9fa
我这里对新的IPNS发布私钥的命名是it-memo
,你们可以根据需要自定义。
查看现有的IPNS发布私钥key
ipfs key list
你执行这个命令就会返回两行,self
和 it-memo
。
使用自定义IPNS发布私钥key发布网站
ipfs name publish --resolve=false -k=it-memo --lifetime=168h --ttl=5m /ipfs/QmTNdRzo2kf5xodsLiUGCRHcwajYny7BqLKChoSb5n3VEe
注意,默认IPNS发布后,其它节点缓存时间24小时,你需要保持你的发布IPNS的节点在线,其它节点才能正常使用这个IPNS。
--resolve=false
不验证资源的完整性,直接发布
--lifetime=168h
其它dht节点缓存7天
--ttl=5m
查找该记录的节点应该将其缓存 5 分钟,然后再查找
IPNS才发布几分钟后,可能其它网关打开会有一些慢。
IPNS实时更新
可以开启 PubSub ,接受实时的IPNS更新 ipfs config --json Ipns.UsePubsub true
PubSub 启用后:
- IPNS 发布者除了将记录发布到 DHT 之外,还将记录推送到特定名称的 pubsub 主题。
- IPNS 解析器在首次解析时订阅特定名称的主题,并通过 pubsub 实时接收后续发布的记录。这使得后续解析可以即时完成,因为它们是通过本地缓存解析的。
发布者和解析者节点都需要启用该功能才能有效工作。
访问网站
现在可以通过这个链接访问本站了:
- https://ipfs.io/ipns/k51qzi5uqu5dklfde21npwou4xoxs6eyiqsx482rhbku9twqf687obg5vop9fa
- https://k51qzi5uqu5dklfde21npwou4xoxs6eyiqsx482rhbku9twqf687obg5vop9fa.ipns.dweb.link
- https://k51qzi5uqu5dklfde21npwou4xoxs6eyiqsx482rhbku9twqf687obg5vop9fa.ipfs2.eth.limo
- https://k51qzi5uqu5dklfde21npwou4xoxs6eyiqsx482rhbku9twqf687obg5vop9fa.eth.sucks
如果你使用的 cloudflare 的 web3 网关,你在设置里面配置 /ipns/k51qzi5uqu5dklfde21npwou4xoxs6eyiqsx482rhbku9twqf687obg5vop9fa ,你更新IPNS后,网站就自动更新。
参考链接:discuss.ipfs.tech/t/how-do-i-make-my-ipns-records-live-longer/14768/2