IPFS技術發展:go-ipfs 0.7.0釋出

買賣虛擬貨幣

今年 8 月,我們宣佈取消 SECIO 安全運輸。在這個版本中,我們預設禁用了 SECIO,這將對網路上的舊節點產生影響。減輕此更改影響的最佳方法是儘快升級 IPFS 節點!升級不僅可以確保您使用最新的安全傳輸,還可以獲得我們今年為內容路由所做的所有效能改進。

在這個版本中,你也將開始看到,隨著在網路上啟動更多的同行 ID 和 IPNS 鍵1而不是典型的Qm。這是由於預設情況下使用 ed25519 金鑰而不是 RSA 金鑰的開關,您可以在下面的突出顯示中瞭解更多資訊。

對於那些使用 IPFS 外掛的人,下面將對構建過程進行重大更改。

Go-IPFS 0.7.0 亮點

SECIO 現在預設禁用

作為棄用和刪除對 SECIO 安全傳輸支援的一部分,我們在預設情況下禁用了它。TLS 1.3 仍將是預設的安全傳輸,並回退到 Noise。您可以在部落格文章https://blog.ipfs.io/2020-08-07-deprecating-secio/中瞭解有關棄用的更多資訊。如果您執行的 Go IPFS 早於 0.5 或 JS IPFS 早於 0.47,這可能會開始影響您在公共網路上的效能,因此,我們強烈建議您立即進行升級!

Ed25519 鍵現在預設使用

以前 go-ipfs 為新節點生成 2048 位 RSA 金鑰,但現在預設使用 ed25519 金鑰。這不會影響任何現有的鍵,但是新建立的鍵預設為 ed25519。在 RSA 之上使用 ed25519 金鑰的主要好處是 ed25519 金鑰具有內聯公鑰。這意味著某人只需要你的 PeerId 來驗證你已經簽名的東西,比如你的對等記錄或未來簽名的提供者記錄,這意味著我們不必擔心儲存大量的 RSA 公鑰。

旋轉金鑰

除了切換預設金鑰型別外,我們還新增了對旋轉標識金鑰的支援。如果您想更改 IPFS 節點的金鑰型別,現在可以使用 Rotate 命令進行更改。注意:這會影響您的對等 ID,因此請確保您要執行此操作!您現有的身份金鑰將在金鑰庫中備份,以便仍可為 IPNS 記錄等引用。

$ ipfs key rotate -o my-old-key -t ed25519

金鑰匯出/匯入

說到備份金鑰,我們新增了一些命令,使您可以將金鑰從 IPFS 金鑰庫匯出和匯入到本地.key 檔案。當前不適用於self 配置檔案中包含的 IPFS 身份金鑰。

$ ipfs key gen mykey$ ipfs key export -o mykey.key mykey # ./<name>.key is the default path$ ipfs key import mykey mykey.key # on another node

預設情況下,IPNS路徑現在將金鑰名編碼為 base36 CIDv1

以前go-ipfs將IPNS路徑的關鍵名稱編碼為base58btc多雜湊(例如Qmabc…)。我們現在將它們編碼為 peerID 規範(例如k51xyz…)中定義的 base36 編碼的 cidv1,該規範也處理公鑰的編碼。很好,因為這意味著 IPNS 金鑰預設情況下不區分大小寫,並且它們將適合 DNS 標籤(例如k51xyz...ipns.localhost),因此在預設情況下,子域閘道器重定向(例如從localhost:8080/ipns/{key}到{key}.ipns.localhost)對使用者而言會更好。

許多命令將接受-ipn -base選項,允許更改命令輸出使用特定的編碼(例如,base58btc multihash,或CIDv1編碼在任何支援的基):

$ ipfs key list -l --ipns-base b58mh12D3KooWCjhz69LskTZEC5vFWs8eDpHo7kYbGzrC5EjU75BHSmVK self$ ipfs key list -l --ipns-base base36k51qzi5uqu5dh9ihj4p2v5sl3hxvv27ryx2w0xrsv6jmmqi91t9xp8p9kaipc2 self

多地址現在接受被編碼為 CIDv1 的 PeerID

為了最終改變預設的 PeerID 表示,多地址現在可以包含像/p2p/k51xyz這樣的字串…除了預設的/p2p/Qmabc…許多輸出peerid的函式都有一個對應的--peerid-base選項:

$ ipfs id --format "<id>" --peerid-base b58mh12D3KooWCjhz69LskTZEC5vFWs8eDpHo7kYbGzrC5EjU75BHSmVK$ ipfs id --format "<id>" --peerid-base base36k51qzi5uqu5dh9ihj4p2v5sl3hxvv27ryx2w0xrsv6jmmqi91t9xp8p9kaipc2

dag stat命令

新增了對ipfs dag stat命令的初始支援。執行此命令將遍歷給定根 CID 的 DAG 並報告統計資訊。預設情況下,將在遍歷 DAG 時顯示進度。當前支援的統計資訊包括 DAG 大小和資料塊數量。

$ ipfs dag stat bafybeihpetclqvwb4qnmumvcn7nh4pxrtugrlpw4jgjpqicdxsv7opdm6e # the IPFS webuiSize: 30362191, NumBlocks: 346

外掛構建變更

我們已經更改了 dist.ipfs 上官方二進位制發行版使用的構建標誌。

io(或/ipns/dist.ipfs.io)使用更簡單和更可靠的-trimpath標誌,而不是更復雜和脆弱的-asmflags=all=-trimpath="$(GOPATH)"-gcflags=all=-trimpath="$(GOPATH)"標誌,但是go-ipfs中預設使用的構建標誌保持不變。

go-ipfs-example 外掛中的指令碼已經更新以反映這一變化。對於人們一直在構建針對 dists .ipfs 的外掛來說,這是一個突破性的變化。go-ipfs 和外掛的 io 二進位制檔案應該相應地更新它們的構建過程。詳情請參閱 go-ipfs-example-plugin/pull/9。

更新日誌

有關此版本中包含的更新的完整列表,您可以在https://github.com/ipfs/go-ipfs/blob/v0.7.0/CHANGELOG.md#v070-2020-09-22上檢視變更日誌。

謝謝貢獻!

非常感謝在這個版本中貢獻補丁和改進的所有 53 人!沒有你們的幫助和反饋,我們不可能做到這一點。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;