作者: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 網路的未來發展描繪了一幅更充滿希望的藍圖。
參考:
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