IPNS和DNSLink的使用说明

IPNS和DNSLink的使用说明

IPNS说明

IPNS全称InterPlanetary Name System,就是IPFS下的一个名称解析系统,类似于互联网的DNS,但是与DNS不同的是,IPNS是由节点自己维护的。

  • 一个IPNS解析后会得到一串文本,里面是IPFS地址。
  • 一个IPNS Name,对应了一个ID,一对密钥和一个本地的key name。
  • 每个运行中的IPFS节点,都有一个默认的IPNS Name,其key name就是self,其ID等于自己的PeerID,其密钥对就是节点的密钥对

IPNS使用

一个节点通过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秒左右,在未使用该参数的情况下,需要两到三分钟。

DNSLink说明

DNSLink的介绍 https://dnslink.io/

这个技术简单地说, 就是让软件访问目标域名 A.COM 的时候, 自动去读取 _dnslink.A.COM 这个TXT记录, 通过这个TXT记录得到的地址信息去加载对应的页面.

DNSLink的使用

使用DNSLink, 需要一个可用的域名, 在域名(或二级域名)上添加一个高一级的记录, 名称为 _dnslink, 类型为 TXT, 值为为 dnslink=/ipfs/bafybeiejgrxo4p4uofgfzvlg5twrg5w7tfwpf7aciiswfacfbdpevg2xfy 或者 dnslink=/ipfs/QmaHbGR2PQwtAPL4BcbjuS2RkPsWxnhc2fGWx9fKoNSxnD, 注意这里值前面没有下划线.

添加好之后, 可以使用以下的命令来查看添加的结果(如果没设置成功, 可以用这些手段检查是哪里出问题了)

# 检查域名解析的TXT值是否正确
dig +short TXT _dnslink.libp2p.io
# 可以指定使用那个NS服务器来检查
dig @8.8.8.8 +short TXT _dnslink.libp2p.io
# 检查ipfs的解析结果是否正确
ipfs resolve -r /ipns/libp2p.io
# 检查ipfs解析的结果, 这个地址对应的内容
ipfs ls /ipns/libp2p.io

这些都没问题后, 就可以从浏览器访问了, 访问地址格式为 http://网关地址/ipns/libp2p.io, 例如

https://ipfs.drink.cafe/ipns/libp2p.io

将来有新内容发布时, 只需要更新_dnslink.libp2p.io 的TXT值.

posted on 2020-07-16 17:56  Milton  阅读(2572)  评论(0编辑  收藏  举报

导航