Breakpoint 上備受矚目的 Firedancer 究竟是什麼?
作者:Karen,Foresight News
在上週的 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,分別為:
- net:從網絡設備發送和接收網絡數據包(每 tile 可處理 >100 萬 TPS);
- quic:接收來自客戶端的交易,執行所有連接管理和數據包處理以管理和實施 QUIC 協議(每 tile 可處理 >100 萬 TPS);
- verify:驗證傳入交易的加密簽名,過濾無效交易(每 tile 可處理 20-4 萬 TPS);
- dedup:檢查並過濾掉重複的傳入交易;
- pack:當成為 leader 時,打包傳入的交易並智能地安排它們執行;
- bank:執行被安排的交易(每 tiles 可處理 20-4 萬 TPS);
- poh:是一種持續在後台進行哈希運算的機制,將生成的哈希值與已執行的交易混合在一起,從而證明順序性和時間性。
- shred:當成為 leader 時,向網絡分發區塊數據;非 leader 時,接收並重傳區塊數據(吞吐量主要取決於集群大小。在基準測試中,如果集群規模較小,1 個 tile 可以處理>100 萬 TPS);
- store:當成為 leader 時接收區塊數據,或者當其他節點是 leader 時從其他節點接收區塊數據,並將其存儲在本地磁碟上的數據庫中;
- metric:收集有關其他 tiles 的監控信息並將其提供給 HTTP 端點;
- sign:持有驗證者私鑰,並接收和響應來自其他 tile 的簽名請求。
值得注意的是,在 Firedancer 成熟之前,其過渡版本 Frankendancer 已先行一步進入 Solana 主網。Frankendancer 是 Firedancer 和 Agave 部分代碼的混合體,結合了 Firedancer 在網絡堆棧和區塊生產方面的優勢,同時保留了 Agave 在執行和共識方面的功能。而 Firedancer 則是完全從頭開始構建,不包含任何 Agave 的代碼。
Firedancer 有何影響?
無疑,Firedancer 的推出對 Solana 生態系統具有重大影響,將極大地豐富驗證器的多樣性,進一步削弱單點故障對網絡穩定性的影響,為 Solana 網絡的可靠性築起一座更加堅固的堡壘。
此外,Firedancer 保持了與現有協議的向後兼容性,能夠確保生態系統的平穩過渡,無需 DApp 開發者及用戶做出重大調整。
儘管目前 Firedancer 仍處於非投票模式,且需經歷持續不斷的優化與審核,但這為 Solana 網絡的未來發展描繪了一幅更加充滿希望的藍圖。