Solana 驗證器用戶端 Firedancer 表現如何? 怎樣運行?

作者:Karen,Foresight News

封面:Photo by Ivette Peña on Unsplash

在上周的 Solana Breakpoint 大會上,現場氣氛活躍,生態產品發佈接踵而至,各類豐富多彩的周邊活動更是錦上添花。 在這場盛宴中,尤為引人注目的亮點是 Solana 驗證器用戶端 Firedancer 的早期版本正式登陸主網,這一里程碑式的成就被賦予了特別的關注,標誌著 Solana 網路將在性能上將實現質的飛躍,同時可避免 Solana 上單一用戶端崩潰導致網路宕機的風險。

Firedancer 的開發歷程可追溯至於 2021 年至 2022 年,作為由 Jump Trading Group 主導開發的 Solana 第二個驗證器用戶端(原有用戶端 Agave 由 Anza 開發),其設計初衷在於消除單點故障隱患,增強網路的整體穩健性和堅韌性。 與原有基於 Rust 的驗證器不同,Firedancer 採用 C 語言編寫,不包含 Rust 代碼,這一選擇顯著降低了潛在漏洞對整個網路的影響,為 Solana 的安全性加上了又一道堅固的防線。

Firedancer 表現如何?

根據 Jump Crypto 首席科學官 Kevin Bowers 在 Solana Breakpoint 大會上的演示,Firedancer 展示了每秒處理超過 100 萬筆交易的能力,這一數位遠超 Solana 當前理論上的幾萬 TPS 極限。 Kevin Bowers 還將這一成就形象地比喻為將「鄉間小路」拓寬為「州際公路」,預示著網路成本和容量的雙重優化。

Jump Trading 的核心工程師 Liam Heeger 則分享了 Firedancer 在測試網上的進展,該用戶端已成功產出超過 2 萬個區塊,並實現了 1% 的質押比例。

另一工程師 Aryaman Jain 的演示進一步揭示了 Firedancer 在特定條件下的表現,如在 10 個驗證器環境下,其 TPS 可達百萬級別,每秒處理計算單元超過 12 億次,同時展現出 3.5 Gbps 的 Blockspace 能力和 50 萬 TPS 的 VM 執行效率。

Firedancer 如何運行?

Firedancer 圍繞高性能計算堆疊和網路堆疊、Runtime 和共識機制三個主要組成部分構建。 Firedancer 之所以能夠將 Solana 網路的性能提升至 100 萬 TPS(當前協議級別的限制將性能限制在 81,000 TPS 左右),關鍵在於其創新的架構設計和數據流優化。

該驗證器採用了一種併發模型,通過少量線程執行多樣化的作業,每個線程都專注於特定的任務,如網路數據包處理、交易驗證、區塊打包等。 這種設計實現了資源的最大化利用與交易處理速度的顯著提升。

具體來說,每個線程執行 11 個不同的作業之一。 有些作業只需要一個線程來完成它們,但某些作業需要許多線程並行執行相同的工作。 另外,每個線程都有一個 CPU core 來運行,並且線程擁有該 core 的擁有權:永遠不會休眠或讓操作系統將其用於其他目的。

Firedancer 還引入了一個名為「tiles」的架構,每種 tile 代表了一個作業及其運行的線程和分配的 CPU core。 這種組合方式使得性能調優變得靈活而高效。 例如,net 和 quic 的每 tile 可處理 >100 萬 TPS,而 verify 和 bank tiles 則專注於交易驗證和區塊執行,儘管它們的處理速度相對較低,但足以滿足高併發場景下的需求。

Firedancer 官方文檔中列出了 11 種 tile,分別為:

  1. net:從網路設備發送和接收網路數據包(每 tile 可處理 >100 萬 TPS);
  2. quic:接收來自用戶端的交易,執行所有連接管理和數據包處理以管理和實施 QUIC 協定(每 tile 可處理 >100 萬 TPS);
  3. verify:驗證傳入交易的加密簽名,過濾無效交易(每 tile 可處理 20-4 萬 TPS);
  4.  dedup:檢查並過濾掉重複的傳入交易;
  5. pack:當成為 leader 時,打包傳入的交易並智慧地安排它們執行;
  6. bank:執行被安排的交易(每 tiles 可處理 20-4 萬 TPS);
  7. poh:是一種連續在後台進行哈希運算的機制,將生成的哈希值與已執行的交易混合在一起,從而證明順序性和時間性。
  8. shred:當成為 leader 時,向網路分發區塊數據; 非 leader 時,接收並重傳區塊數據(輸送量主要取決於集群大小。 在基準測試中,如果集群規模較小,1 個 tile 可以處理>100 萬 TPS);
  9. store:當成為 leader 時接收區塊數據,或者當其他節點是 leader 時從其他節點接收區塊數據,並將其存儲在本地磁碟上的資料庫中;
  10. metric:收集有關其他 tiles 的監控資訊並將其提供給 HTTP 端點;
  11. sign:持有驗證者私鑰,並接收和回應來自其他 tile 的簽名請求。

值得注意的是,在 Firedancer 成熟之前,其過渡版本 Frankendancer 已先行一步進入 Solana 主網。 Frankendancer 是 Firedancer 和 Agave 部分代碼的混合體,結合了 Firedancer 在網路堆棧和區塊生產方面的優勢,同時保留了 Agave 在執行和共識方面的功能。 而 Firedancer 則是完全從頭開始構建,不包含任何 Agave 的代碼。

Firedancer 有何影響?

無疑,Firedancer 的推出對 Solana 生態系統具有重大影響,將極大地豐富驗證器的多樣性,進一步削弱單點故障對網路穩定性的影響,為 Solana 網路的可靠性築起一座更加堅固的堡壘。

此外,Firedancer 保持了與現有協定的向後相容性,能夠確保生態系統的平穩過渡,無需 DApp 開發者及使用者做出重大調整。

儘管目前 Firedancer 仍處於非投票模式,且需經歷持續不斷的優化與審核,但這為 Solana 網路的未來發展描繪了一幅更加充滿希望的藍圖。

  參考:

1、https://www.youtube.com/watch?v=InGI7BDUeX4&list=PLilwLeBwGuK4eY3nT0vvvJ4GmcJLImcQE&index=14

2、https://firedancer-io.github.io/firedancer/guide/tuning.html

3、https://solanacompass.com/learn/Validated/firedancer-w-kevin-bowers

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。