IPFS学习-DNS链接

DNSLink

什么是DNS链接

DNS链接使用DNS TXT记录映射域名(如ipfs.io)到一个IPFS地址。因为你可以编辑自己的DNS记录,可以使他们总是指向最新版本的IPFS中的对象(如果修改了IPFS中的对象则IPFS中的对象地址也会改变)。由于DNS链接使用DNS记录,所以可以设计名字/路径/(子)域/任何容易分类,阅读和记的名字。
一个DNS链接地址看起来像一个IPNS地址,但是DNS链接使用域名代替了被哈希的公钥:

/ipns/myexampledomain.org

就像普通的IPFS地址,可以包含链接到其他的文件-或者是其他类型的IPFS支持的资源,像目录和链接:

/ipns/myexampledomain.org/media/

使用子域名发布

虽然您可以根据需要将TXT记录发布到确切的域,但是使用称为_dnslink的特殊子域来发布DNSLink记录会更有利。这使您可以提高自动设置的安全性,或将对DNSLink记录的控制权委派给第三方,而不必放弃对原始DNS区域的完全控制权。
例如,docs.ipfs.io没有含有TXT记录,但是页面仍然可以加载因为TXT记录在_dnslink.docs.ipfs.io中存在。如果查看_dnslink.docs.ipfs.io的DNS记录,可以看到以下DNSLink记录:

$ dig +noall +answer TXT _dnslink.docs.ipfs.io
_dnslink.docs.ipfs.io.  34  IN  TXT "dnslink=/ipfs/QmVMxjouRQCA2QykL5Rc77DvjfaX6m8NL6RyHXRTaZ9iya"

使用DNSLink解析

当一个IPFS客户端或者节点尝试解析一个地址,将会寻找前缀为dnslink=的TXT记录。剩下的可以是/ipfs/链接或者是/ipns/,或者是链接到其他的DNSLink。

dnslink=/ipfs/<具体内容的CID>

例如,回到之前_dnslink.docs.ipfs.io的DNS记录继续了解DNS链接实体:

$ dig +noall +answer TXT _dnslink.docs.ipfs.io
_dnslink.docs.ipfs.io.  34  IN  TXT "dnslink=/ipfs/QmVMxjouRQCA2QykL5Rc77DvjfaX6m8NL6RyHXRTaZ9iya"

基于这个地址:

/ipns/docs.ipfs.io/introduction/

可以获取这个区块:

/ipfs/QmVMxjouRQCA2QykL5Rc77DvjfaX6m8NL6RyHXRTaZ9iya/introduction/
posted @ 2019-12-18 14:30  触不可及`  阅读(1103)  评论(0编辑  收藏  举报