Na konferenci Solana Breakpoint, která se konala minulý týden, panovala živá atmosféra díky představení produktů a různým poutavým doprovodným akcím. Výraznou událostí bylo oficiální uvedení rané verze validátoru Solana Firedancer na mainnet.
Tomuto významnému úspěchu byla věnována zvláštní pozornost, protože znamenal významný výkonnostní skok pro síť Solana a zároveň snížil riziko výpadku sítě způsobeného selháním jediného klienta.
Vývoj systému Firedancer se datuje do let 2021-2022 a stojí za ním společnost Jump Trading Group jako druhý klient validátoru Solana (původního klienta Agave vyvinula společnost Anza). Jeho hlavním cílem bylo eliminovat jednotlivé body selhání a zvýšit tak celkovou robustnost a odolnost sítě.
Na rozdíl od původního validátoru založeného na jazyce Rust je Firedancer napsán v jazyce C s výjimkou kódu jazyka Rust. Tato volba výrazně snižuje potenciální dopad zranitelností na síť a přidává Solaně silnou vrstvu zabezpečení.
Jak Firedancer funguje?
Během prezentace na Solana Breakpoint předvedl hlavní vědecký pracovník Jump Crypto Kevin Bowers schopnost Firedanceru zpracovat více než 1 milion transakcí za sekundu (TPS), což značně převyšuje současný teoretický limit Solany, který činí desítky tisíc TPS. Tento úspěch metaforicky přirovnal k rozšíření „venkovské silnice“ na „mezistátní dálnici“, což naznačuje dvojí optimalizaci nákladů a kapacity sítě.
Inženýr jádra Liam Heeger se podělil o pokrok v testovací síti a poznamenal, že Firedancer úspěšně vyprodukoval více než 20 000 bloků s poměrem sázek 1 %. Další inženýr, Aryaman Jain, předvedl výkonnost Firedanceru za specifických podmínek a odhalil TPS až milion v prostředí 10 validátorů, s více než 1,2 miliardy výpočtů za sekundu a kapacitou prostoru pro bloky 3,5 Gb/s.
Jak Firedancer funguje?
Firedancer je postaven na třech hlavních součástech: vysoce výkonném výpočetním zásobníku, síťovém zásobníku a mechanismech běhu a konsensu. Jeho schopnost zvýšit výkon Solany na 1 milion TPS (současné limity protokolu se pohybují kolem 81 000 TPS) spočívá v inovativní architektuře a optimalizaci datových toků.
Validátor používá model souběžnosti, který provádí různé úlohy v několika vláknech, přičemž každé vlákno se zaměřuje na specifické úlohy, jako je zpracování síťových paketů, ověřování transakcí a balení bloků. Tento návrh maximalizuje využití prostředků a výrazně urychluje zpracování transakcí.
Konkrétně každé vlákno provádí jednu z 11 různých úloh. Některé úlohy vyžadují pouze jedno vlákno, zatímco jiné vyžadují více paralelně pracujících vláken. Každé vlákno pracuje na vyhrazeném jádru procesoru, což zajišťuje, že nikdy neusne ani není operačním systémem přerozděleno.
Firedancer také zavádí architekturu zvanou „dlaždice“, kde každá dlaždice představuje úlohu, její běžící vlákno a přidělené jádro procesoru. Tato kombinace umožňuje flexibilní a efektivní ladění výkonu. Například dlaždice net a quic zvládnou více než 1 milion TPS, zatímco dlaždice verify a bank se zaměřují na ověřování transakcí a provádění bloků, což je dostatečné pro scénáře s vysokou měnou.
V oficiální dokumentaci k nástroji Firedancer je uvedeno následujících 11 dlaždic:
- net: Odesílá a přijímá síťové pakety (každá dlaždice zvládne >1 milion TPS);
- quic: Přijímá transakce od klientů, spravuje připojení a zpracování paketů pro protokol QUIC (každá dlaždice může zpracovat 1 milion TPS);
- ověřit: Ověřuje kryptografické podpisy příchozích transakcí a filtruje neplatné transakce (každá dlaždice zvládne 20-40 000 TPS);
- dedup: Kontroluje a filtruje duplicitní příchozí transakce;
- balení: Balí příchozí transakce, když vystupuje jako vedoucí, a chytře je plánuje k provedení;
- banka: Provádí naplánované transakce (každá dlaždice zvládne 20-40 000 TPS);
- poh: Průběžně hashuje na pozadí a míchá vygenerované hashe s provedenými transakcemi, aby prokázal pořadí a časování;
- skartovat: Distribuuje bloková data do sítě, pokud funguje jako vedoucí; pokud ne, přijímá a znovu vysílá bloková data (propustnost závisí hlavně na velikosti clusteru, přičemž benchmarky uvádějí >1 milion TPS pro malé clustery);
- ukládat: Přijímá bloková data, pokud vystupuje jako vedoucí uzel, nebo od ostatních uzlů, pokud jsou vedoucími uzly, a ukládá je do místní diskové databáze;
- metrické: Shromažďuje informace o monitorování jiných dlaždic a poskytuje je koncovým bodům HTTP;
- znamení: Uchovává soukromý klíč validátoru a odpovídá na žádosti o podepsání od jiných dlaždic.
Pozoruhodné je, že než Firedancer dozraje, jeho přechodná verze Frankendancer již vstoupila do Solana mainnetu. Frankendancer je hybridem kódu Firedanceru a Agave, který využívá výhod Firedanceru v oblasti síťového zásobníku a produkce bloků a zároveň si zachovává funkce Agave pro provádění a konsensus. Na rozdíl od něj je Firedancer postaven zcela od nuly bez jakéhokoli kódu Agave.
Jaký je dopad Firedancer?
Spuštění systému Firedancer má bezpochyby významný dopad na ekosystém Solana, protože výrazně zvyšuje rozmanitost validátorů a dále snižuje riziko selhání jednotlivých bodů, čímž posiluje spolehlivost sítě.
Firedancer navíc zachovává zpětnou kompatibilitu se stávajícími protokoly, čímž zajišťuje hladký přechod ekosystému bez nutnosti zásadních úprav ze strany vývojářů a uživatelů DApp.
Přestože je Firedancer v současné době v nehlasovacím režimu a prochází průběžnou optimalizací a auditem, dává naději na budoucí vývoj sítě Solana.