IPFS-星際命名系統(IPNS、DNSLink)

什麼是IPNS

IPFS學習-IPNS
參考URL: https://www.cnblogs.com/cbkj-xd/p/12059887.html

IPNS全稱是Inter-Planetary Naming Service,星際命名系統。這個系統可以把我們現在訪問互聯網使用的URL地址映射成IPFS系統中的一串哈希值。

星際名稱系統(IPNS)是一個創建個更新可變的鏈接到IPFS內容的系統,由於對象在IPFS中是內容尋址的,他們的內容變化將導致地址隨之變化。對於多變的事物是有用的。但是很難獲取某些內容的最新版本。

**在IPNS中名字是被哈希的公鑰。**它與一條記錄相關聯,該記錄包含有關其鏈接的哈希的信息,該信息由相應的私鑰簽名。新的記錄可以在任何時候被簽名與發佈。

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

什麼是DNSLink

官網 https://github.com/ipfs/go-dnslink
DNSlink
https://www.cnblogs.com/cbkj-xd/p/12059685.html

DNS鏈接使用DNS TXT記錄映射域名(如ipfs.io)到一個IPFS地址。因爲你可以編輯自己的DNS記錄,可以使他們總是指向最新版本的IPFS中的對象(如果修改了IPFS中的對象則IPFS中的對象地址也會改變)。由於DNS鏈接使用DNS記錄,所以可以設計名字/路徑/(子)域/任何容易分類,閱讀和記的名字。

一個DNS鏈接地址看起來像一個IPNS地址,但是DNS鏈接使用域名代替了被哈希的公鑰:

/ipns/proofs.filecoin.io

如何使用DNSLink

參考官網 https://github.com/ipfs/go-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項目

官網 https://github.com/ipfs/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.com/ipfs/go-dnslink
  • 作爲庫使用
import (
  log
  fmt

  dnslink "github.com/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: https://www.jinse.com/blockchain/449574.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章