admin管理员组

文章数量:1417141

IPFS

什么是IPNS

IPFS学习-IPNS
参考URL: .html

IPNS全称是Inter-Planetary Naming Service,星际命名系统。这个系统可以把我们现在访问互联网使用的URL地址映射成IPFS系统中的一串哈希值。

星际名称系统(IPNS)是一个创建个更新可变的链接到IPFS内容的系统,由于对象在IPFS中是内容寻址的,他们的内容变化将导致地址随之变化。对于多变的事物是有用的。但是很难获取某些内容的最新版本。

**在IPNS中名字是被哈希的公钥。**它与一条记录相关联,该记录包含有关其链接的哈希的信息,该信息由相应的私钥签名。新的记录可以在任何时候被签名与发布。

查看IPNS地址,使用了/ipns/前缀:
/ipns/QmSrPmbaUKA3ZodhzPWZnpFgcPMFWF4QsxXbkWfEptTBJd

什么是DNSLink

官网
DNSlink
.html

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

一个DNS链接地址看起来像一个IPNS地址,但是DNS链接使用域名代替了被哈希的公钥:

/ipns/proofs.filecoin.io

如何使用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/

go-dnslink项目

官网

go包dnslink 实现DNS链接解析器。DNSLink是在DNS自身中设置可遍历链路的基本标准。

dnslink是一个路径链接在DNS txt 记录中,如下所示:

DNSLink=/IPFS/QMR7TiYSN6VFHCEJBEnZYTAFAFH735PJHFEMDVYCJ9JAPY
> dig TXT ipfs.io
ipfs.io.  120   IN  TXT  dnslink=/ipfs/QmR7tiySn6vFHcEjBeZNtYGAFh735PJHfEMdVEycj9jAPy

这个项目可以用作库,也可以作为命令行工具。
安装

go get github/ipfs/go-dnslink
  • 作为库使用
import (logfmtdnslink "github/ipfs/go-dnslink"
)func main() {link, err := dnslink.Resolve("ipfs.io")if err != nil {log.Fatal(err)}fmt.Println(link) // string path
}
  • 作为命令行使用
> dnslink ipfs.io
/ipfs/QmR7tiySn6vFHcEjBeZNtYGAFh735PJHfEMdVEycj9jAPy

总结: 可以使用 dnslink 解析dns txt记录。

参考

深入了解IPFS(3/6):什么是IPNS?
参考URL: .html

本文标签: IPFS