在上周的 solana breakpoint 大會上,現(xiàn)場氣氛活躍,生態(tài)產(chǎn)品發(fā)布接踵而至,各類豐富多彩的周邊活動更是錦上添花。在這場盛宴中,尤為引人注目的亮點是 solana 驗證器客戶端 firedancer 的早期版本正式登陸主網(wǎng),這一里程碑式的成就被賦予了特別的關注,標志著 solana 網(wǎng)絡將在性能上將實現(xiàn)質的飛躍,同時可避免 solana 上單一客戶端崩潰導致網(wǎng)絡宕機的風險。
Firedancer 的開發(fā)歷程可追溯至于 2021 年至 2022 年,作為由 Jump Trading Group 主導開發(fā)的 Solana 第二個驗證器客戶端(原有客戶端 Agave 由 Anza 開發(fā)),其設計初衷在于消除單點故障隱患,增強網(wǎng)絡的整體穩(wěn)健性和堅韌性。與原有基于 Rust 的驗證器不同,F(xiàn)iredancer 采用 C 語言編寫,不包含 Rust 代碼,這一選擇顯著降低了潛在漏洞對整個網(wǎng)絡的影響,為 Solana 的安全性加上了又一道堅固的防線。
Firedancer 表現(xiàn)如何?
根據(jù) Jump Crypto 首席科學官 Kevin Bowers 在 Solana Breakpoint 大會上的演示,F(xiàn)iredancer 展示了每秒處理超過 100 萬筆交易的能力,這一數(shù)字遠超 Solana 當前理論上的幾萬 TPS 極限。Kevin Bowers 還將這一成就形象地比喻為將「鄉(xiāng)間小路」拓寬為「州際公路」,預示著網(wǎng)絡成本和容量的雙重優(yōu)化。
Jump Trading 的核心工程師 Liam Heeger 則分享了 Firedancer 在測試網(wǎng)上的進展,該客戶端已成功產(chǎn)出超過 2 萬個區(qū)塊,并實現(xiàn)了 1% 的質押比例。
另一工程師 Aryaman Jain 的演示進一步揭示了 Firedancer 在特定條件下的表現(xiàn),如在 10 個驗證器環(huán)境下,其 TPS 可達百萬級別,每秒處理計算單元超過 12 億次,同時展現(xiàn)出 3.5 Gbps 的 Blockspace 能力和 50 萬 TPS 的 VM 執(zhí)行效率。
Firedancer 如何運行?
Firedancer 圍繞高性能計算堆棧和網(wǎng)絡堆棧、Runtime 和共識機制三個主要組成部分構建。Firedancer 之所以能夠將 Solana 網(wǎng)絡的性能提升至 100 萬 TPS(當前協(xié)議級別的限制將性能限制在 81,000 TPS 左右),關鍵在于其創(chuàng)新的架構設計和數(shù)據(jù)流優(yōu)化。
該驗證器采用了一種并發(fā)模型,通過少量線程執(zhí)行多樣化的作業(yè),每個線程都專注于特定的任務,如網(wǎng)絡數(shù)據(jù)包處理、交易驗證、區(qū)塊打包等。這種設計實現(xiàn)了資源的最大化利用與交易處理速度的顯著提升。
具體來說,每個線程執(zhí)行 11 個不同的作業(yè)之一。有些作業(yè)只需要一個線程來完成它們,但某些作業(yè)需要許多線程并行執(zhí)行相同的工作。另外,每個線程都有一個 CPU core 來運行,并且線程擁有該 core 的所有權:永遠不會休眠或讓操作系統(tǒng)將其用于其他目的。
Firedancer 還引入了一個名為「tiles」的架構,每種 tile 代表了一個作業(yè)及其運行的線程和分配的 CPU core。這種組合方式使得性能調優(yōu)變得靈活而高效。例如,net 和 quic 的每 tile 可處理 >100 萬 TPS,而 verify 和 bank tiles 則專注于交易驗證和區(qū)塊執(zhí)行,盡管它們的處理速度相對較低,但足以滿足高并發(fā)場景下的需求。
Firedancer 官方文檔中列出了 11 種 tile,分別為:
- net:從網(wǎng)絡設備發(fā)送和接收網(wǎng)絡數(shù)據(jù)包(每 tile 可處理 >100 萬 TPS);
- quic:接收來自客戶端的交易,執(zhí)行所有連接管理和數(shù)據(jù)包處理以管理和實施 QUIC 協(xié)議(每 tile 可處理 >100 萬 TPS);
- verify:驗證傳入交易的加密簽名,過濾無效交易(每 tile 可處理 20-4 萬 TPS);
- dedup:檢查并過濾掉重復的傳入交易;
- pack:當成為 leader 時,打包傳入的交易并智能地安排它們執(zhí)行;
- bank:執(zhí)行被安排的交易(每 tiles 可處理 20-4 萬 TPS);
- poh:是一種連續(xù)在后臺進行哈希運算的機制,將生成的哈希值與已執(zhí)行的交易混合在一起,從而證明順序性和時間性。
- shred:當成為 leader 時,向網(wǎng)絡分發(fā)區(qū)塊數(shù)據(jù);非 leader 時,接收并重傳區(qū)塊數(shù)據(jù)(吞吐量主要取決于集群大小。在基準測試中,如果集群規(guī)模較小,1 個 tile 可以處理>100 萬 TPS);
- store:當成為 leader 時接收區(qū)塊數(shù)據(jù),或者當其他節(jié)點是 leader 時從其他節(jié)點接收區(qū)塊數(shù)據(jù),并將其存儲在本地磁盤上的數(shù)據(jù)庫中;
- metric:收集有關其他 tiles 的監(jiān)控信息并將其提供給 HTTP 端點;
- sign:持有驗證者私鑰,并接收和響應來自其他 tile 的簽名請求。
值得注意的是,在 Firedancer 成熟之前,其過渡版本 Frankendancer 已先行一步進入 Solana 主網(wǎng)。Frankendancer 是 Firedancer 和 Agave 部分代碼的混合體,結合了 Firedancer 在網(wǎng)絡堆棧和區(qū)塊生產(chǎn)方面的優(yōu)勢,同時保留了 Agave 在執(zhí)行和共識方面的功能。而 Firedancer 則是完全從頭開始構建,不包含任何 Agave 的代碼。
Firedancer 有何影響?
無疑,F(xiàn)iredancer 的推出對 Solana 生態(tài)系統(tǒng)具有重大影響,將極大地豐富驗證器的多樣性,進一步削弱單點故障對網(wǎng)絡穩(wěn)定性的影響,為 Solana 網(wǎng)絡的可靠性筑起一座更加堅固的堡壘。
此外,F(xiàn)iredancer 保持了與現(xiàn)有協(xié)議的向后兼容性,能夠確保生態(tài)系統(tǒng)的平穩(wěn)過渡,無需 DApp 開發(fā)者及用戶做出重大調整。
盡管目前 Firedancer 仍處于非投票模式,且需經(jīng)歷持續(xù)不斷的優(yōu)化與審核,但這為 Solana 網(wǎng)絡的未來發(fā)展描繪了一幅更加充滿希望的藍圖。
以上就是Breakpoint 上備受矚目的 Firedancer 究竟是什么?的詳細內容
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。