La conferința Solana Breakpoint de săptămâna trecută, atmosfera a fost vibrantă, cu lansări de produse și diverse evenimente secundare interesante. Un punct culminant a fost lansarea oficială pe rețeaua principală a primei versiuni a clientului de validare Solana, Firedancer.
Această realizare de referință a primit o atenție specială, semnalând un salt semnificativ de performanță pentru rețeaua Solana și reducând în același timp riscul de întrerupere a rețelei cauzat de defectarea unui singur client.
Dezvoltarea Firedancer datează din 2021-2022, fiind condusă de Jump Trading Group ca al doilea client validator al Solana (clientul original, Agave, fiind dezvoltat de Anza). Scopul său principal a fost de a elimina punctele unice de eșec, sporind robustețea și reziliența generală a rețelei.
Spre deosebire de validatorul original bazat pe Rust, Firedancer este scris în C, excluzând codul Rust. Această alegere reduce semnificativ impactul potențial al vulnerabilităților asupra rețelei, adăugând un strat puternic de securitate la Solana.
Cum funcționează Firedancer?
În timpul unei prezentări la Solana Breakpoint, Kevin Bowers, Chief Scientist al Jump Crypto, a prezentat capacitatea Firedancer de a procesa peste 1 milion de tranzacții pe secundă (TPS), depășind cu mult limita teoretică actuală a Solana de zeci de mii de TPS. El a comparat metaforic această realizare cu lărgirea unui „drum de țară” într-o „autostradă interstatală”, indicând o dublă optimizare a costurilor și a capacității rețelei.
Inginerul de bază Liam Heeger a împărtășit progresele înregistrate pe rețeaua de testare, menționând că Firedancer a produs cu succes peste 20 000 de blocuri cu o rată de miză de 1%. Un alt inginer, Aryaman Jain, a demonstrat performanța Firedancer în condiții specifice, dezvăluind un TPS de până la un milion într-un mediu cu 10 validatori, cu peste 1,2 miliarde de calcule pe secundă și o capacitate de spațiu de blocuri de 3,5 Gbps.
Cum funcționează Firedancer?
Firedancer este construit în jurul a trei componente principale: o stivă de calcul de înaltă performanță, o stivă de rețea și mecanismele de execuție și de consens. Capacitatea sa de a ridica performanța Solana la 1 milion TPS (limitele protocolului actual sunt de aproximativ 81 000 TPS) constă în arhitectura sa inovatoare și în optimizarea fluxului de date.
Validatorul utilizează un model de simultaneitate care execută diverse sarcini în cadrul câtorva thread-uri, fiecare thread concentrându-se pe sarcini specifice precum procesarea pachetelor de rețea, validarea tranzacțiilor și împachetarea blocurilor. Acest model maximizează utilizarea resurselor și accelerează semnificativ procesarea tranzacțiilor.
Mai exact, fiecare fir execută una dintre cele 11 sarcini diferite. Unele sarcini necesită un singur fir, în timp ce altele necesită mai multe fire care lucrează în paralel. Fiecare fir de execuție funcționează pe un nucleu CPU dedicat, asigurându-se că nu doarme niciodată sau că nu este reutilizat de sistemul de operare.
Firedancer introduce, de asemenea, o arhitectură numită „tiles”, în care fiecare tile reprezintă un job, firul său de execuție și nucleul CPU alocat. Această combinație permite tuning de performanță flexibil și eficient. De exemplu, plăcile net și quic pot gestiona peste 1 milion de TPS, în timp ce plăcile verify și bank se concentrează pe validarea tranzacțiilor și execuția blocurilor, suficiente pentru scenarii cu un grad ridicat de lichiditate.
Documentația oficială a Firedancer enumeră următoarele 11 plăci:
- net: Trimite și primește pachete de rețea (fiecare țiglă poate gestiona >1 milion TPS);
- quic: Primește tranzacții de la clienți, gestionând conexiunea și procesarea pachetelor pentru protocolul QUIC (fiecare piesă poate gestiona >1 milion de TPS);
- verificați: Validează semnăturile criptografice ale tranzacțiilor primite, filtrându-le pe cele invalide (fiecare piesă poate gestiona 20-40 000 TPS);
- deducere: Verifică și filtrează tranzacțiile de intrare duplicat;
- pachet: împachetează tranzacțiile primite atunci când acționează în calitate de lider, programându-le inteligent pentru execuție;
- bancă: Execută tranzacții programate (fiecare piesă poate gestiona 20-40 000 TPS);
- poh: Verifică în mod continuu în fundal, amestecând verificările generate cu tranzacțiile executate pentru a dovedi ordinea și sincronizarea;
- sfărâmat: Distribuie date bloc către rețea atunci când acționează în calitate de lider; atunci când nu, primește și retransmite date bloc (debitul depinde în principal de dimensiunea clusterului, benchmark-urile indicând >1 milion TPS pentru clusterele mici);
- magazin: Primește datele blocului atunci când acționează ca lider sau de la alte noduri atunci când acestea sunt lideri, stocându-le într-o bază de date pe discul local;
- metric: Colectează informații de monitorizare despre alte plăci și le furnizează punctelor finale HTTP;
- semn: Deține cheia privată a validatorului și răspunde la cererile de semnare din partea altor plăci.
În special, înainte ca Firedancer să se maturizeze, versiunea sa de tranziție, Frankendancer, a intrat deja în rețeaua principală Solana. Frankendancer este un hibrid al codurilor Firedancer și Agave, valorificând avantajele Firedancer în ceea ce privește stiva de rețea și producția de blocuri, păstrând în același timp funcționalitățile de execuție și consens ale Agave. În schimb, Firedancer este construit în întregime de la zero, fără niciun cod Agave.
Care este impactul Firedancer?
Fără îndoială, lansarea Firedancer are implicații semnificative pentru ecosistemul Solana, sporind considerabil diversitatea validatorilor și reducând și mai mult riscul unor puncte unice de eșec, consolidând astfel fiabilitatea rețelei.
În plus, Firedancer menține compatibilitatea cu protocoalele existente, asigurând o tranziție lină pentru ecosistem, fără a necesita ajustări substanțiale din partea dezvoltatorilor și utilizatorilor DApp.
Deși Firedancer se află în prezent în modul fără drept de vot și este în curs de optimizare și audit continuu, acesta oferă o imagine optimistă pentru dezvoltarea viitoare a rețelei Solana.