IPFS官方升級DHT方案,提升網路整體效能

買賣虛擬貨幣

4 月底,官方釋出了迄今為止最大的 go-ipfs 更新:IPFS 0.5.0。此升級為 IPFS 帶來了主要的效能和可靠性改進,尤其是在內容發現和路由方面。這些收益很大程度上是透過官方對分散式雜湊表(DHT)的改造而實現的,該雜湊表為 IPFS 公共網路中的大多數對等和內容發現提供了支援。

官方希望重新編寫 DHT 的整個過程,從確定根本問題到如何設計解決方案,以確保它在實踐中起作用。官方的工作帶來了重大的效能提升,並帶來了新的開發流程和 Testground,這是用於大規模網路測試的全新工具。

什麼是DHT?

DHT或分散式雜湊表,就像一個 IPFS 目錄和導航系統,幫助網路跟蹤和查詢資料。常規雜湊表是一個鍵值儲存,其中的鍵被雜湊並儲存在一個位置。對於 IPFS,鍵是資料塊的內容識別符號(CID),值是具有每個塊的對等體的集合。

DHT 在整個網路中許多節點或對等點的小表中分發和儲存這些鍵對和值對。同行則儲存有關在何處物理定位特定內容的資訊。官方的 DHT 實施 Kademlia 幫助跟蹤哪些節點正在向網路中的其他節點提供哪些資料。

從理論上講,DHT 應該使在節點之間查詢,提供和獲取資料成為精心策劃且非常有效的事情。但是,在現實情況下以及快速擴充套件的網路中,事情可能會出錯。

回顧

去年,IPFS 公共網路實現了可觀的增長,迅速擴充套件了 30 倍,現在有數十萬個節點加入該網路!大型軟體部署和新的分散式應用程式隨即出現,並期望具有可匹配的可靠性和效能的生產就緒型網路。許多人將 IPFS 用作分散的 CDN(內容交付網路),以在網路上共享和查詢內容。不幸的是,由於無法將對等方路由到所需內容的新節點激增,網路使其中一些使用者癱瘓。

在 2019 年初,官方開始聽到有關內容路由問題的傳言,隨著越來越多的節點透過 Q1 和 Q2 加入網路而加劇了這種情況,其中許多節點位於家庭防火牆或 NAT 之後。官方不斷地引導和修補網路,以補救效能和可靠性問題。但是,在這些補丁投入生產之前,官方無法真正測試它們的功效(或真正診斷出任何退化),因此很難進行迭代並嘗試對網路配置進行更大的修復。

官方的第一步是去進行徹底調查,以確定首先應確定哪些解決方案的優先順序,並確定成功進行變更所需的工具。

縮小範圍

經過一些調查,很明顯,官方的 DHT 實現,加上最近不可撥號節點的增長,是內容路由緩慢、不可靠的原因。官方在IPFS營地時,有機會一起深入地調查這個問題,並發現了幾個問題領域:

* 對等可用性:當新的對等節點加入網路後,官方將它們同等對待,但是實際上無法到達大多數對等節點,因為它們位於防火牆或 NAT 之後。DHT 查詢時間浪費在嘗試撥打從未收到請求的對等方上。

* 查詢終止:即使在 DHT 查詢達到其目標之後,它也沒有停止,它繼續查詢其他對等點以確保它已達到目標。雖然對網路中的許多新的不可刪除節點具有魯棒性,但此過程非常耗時。

* 路由表維護:路由表被許多無法撥號的對等點所阻塞,導致搜尋在查詢的對等點數量上線性變化,而不是預期的對數規模效率。

集中精力

透過這一分析以及、核心使用者和社羣的綜合反饋,很明顯,官方需要磨練內容路由效能,將其作為 IPFS 專案的核心重點。

這意味著要對優先順序進行一些艱苦的呼籲:將工作組集中在 DHT 和路由邏輯的目標改進集上,以確保解決了這些基本的效能和可靠性問題。反過來,官方調整了產品路線圖併成立了新的核心工作組,其中一個小組嚴格關注內容路由,另一個小組致力於新的測試基礎架構:Testground。

測試、測試、測試

官方從早期的補丁中得知,他們規模的網路需要能夠在接近實際的環境中測試更改,以便能夠快速可靠地進行改進。官方擁有進行單元測試和小型模擬的能力,可以證明基本的調整,但是沒有辦法複製成千上萬個節點或典型的網路配置來對主要變更進行基準測試。這使官方在變更付諸實踐之前沒有關於變更真正影響的真實資料。

為了成功糾正 DHT,官方必須迅速改變這一點。官方成立了一個工作組來彌補這一差距。於是Testground 誕生了。Testground 是一個用於大規模測試,基準測試和模擬分散式和對等系統的平臺,使官方能夠驗證所需的修復程式,並在 IPFS 0.5.0 啟用之前對廣泛的 DHT 更改進行壓力測試。

Testground 在 DHT 重寫中為官方提供了進行資料驅動的開發的工具。它還在 IPFS 0.5.0 版本的其他部分為官方提供了幫助:例如對新的潛在解決方案進行原型製作,相互比較潛在的修復程式以及對邊緣情況和升級過程進行壓力測試。Testground 的可重複性和自省性對於加快官方的開發速度以可靠地改善 IPFS 至關重要。

隨著 Testground v0.5 的釋出,官方很高興與其他人共享此工具以及對他們的 p2p 網路進行基準測試和評估。

現在來“修復”

使用 Testground,官方可以對 DHT 問題進行基準測試和量化,這些問題涉及對等方可用性,查詢終止和路由表維護。官方從對現有網路的模擬開始,展示了官方先前的查詢邏輯如何與不斷髮展的網路引數進行互動,就像許多節點不可撤銷一樣。

Testground 允許官方調整這些引數,以衡量哪些更改將對網路效能產生最大影響。當官方在 1 月份召開研究峰會以比較潛在緩解措施與持續存在的網路挑戰時,官方現在獲得了對網路結構和工具的定量了解,可以立即對官方的討論進行原型化並檢驗所得出的假設。

隨後是測試計劃編寫,以測量實際網路環境中 DHT 邏輯的每次更改。官方測試了新系統,以診斷無法刪除的對等方並將其從路由表中刪除,測量了成功率,以便更早地結束查詢,甚至重新確定了對 Bitswap 的改進以尋找其他改進。在所有這些重構過程中,官方都能透過 Testground 模擬以及一些放置良好的節點不斷驗證這些更改的效能,以針對整個公共網路執行基準測試。

從發現社羣中的問題,到確定潛在的解決方案,構建測試工具,從過去的研究中學習以及執行所需的技術修復,這次釋出無疑使官方步入了新的步伐。

來源:IPFS Blog

本文基於CCO協議編譯

免責聲明:

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

推荐阅读

;