Wat is de langverwachte Firedancer at Breakpoint?
Op de Solana Breakpoint conferentie van vorige week was de sfeer levendig met productlanceringen en verschillende boeiende nevenevenementen. Een opvallend hoogtepunt was de officiële lancering van de vroege versie van de Solana validator client Firedancer op het mainnet.
Deze mijlpaal kreeg speciale aandacht omdat het een belangrijke sprong voorwaarts betekende voor de prestaties van het Solana-netwerk, terwijl het risico van netwerkuitval door een storing van een enkele client werd beperkt.
De ontwikkeling van Firedancer gaat terug tot 2021-2022, onder leiding van Jump Trading Group als tweede validatorclient van Solana (de oorspronkelijke client, Agave, werd ontwikkeld door Anza). Het primaire doel was om single points of failure te elimineren en zo de algehele robuustheid en veerkracht van het netwerk te verbeteren.
In tegenstelling tot de originele op Rust gebaseerde validator, is Firedancer geschreven in C, zonder Rust-code. Deze keuze vermindert de potentiële impact van kwetsbaarheden op het netwerk aanzienlijk en voegt een sterke beveiligingslaag toe aan Solana.
Hoe presteert Firedancer?
Tijdens een presentatie op Solana Breakpoint liet Kevin Bowers, Chief Scientist van Jump Crypto, zien dat Firedancer in staat is om meer dan 1 miljoen transacties per seconde (TPS) te verwerken, veel meer dan Solana’s huidige theoretische limiet van tienduizenden TPS. Hij vergeleek deze prestatie metaforisch met het verbreden van een “landweg” tot een “snelweg”, wat duidt op een dubbele optimalisatie van netwerkkosten en capaciteit.
Core engineer Liam Heeger deelde de voortgang op het testnet, waarbij hij opmerkte dat Firedancer met succes meer dan 20.000 blokken produceerde met een staking ratio van 1%. Een andere ingenieur, Aryaman Jain, demonstreerde de prestaties van Firedancer onder specifieke omstandigheden. Hij onthulde een TPS tot een miljoen in een omgeving met 10 validators, met meer dan 1,2 miljard berekeningen per seconde en een blokruimtecapaciteit van 3,5 Gbps.
Hoe werkt Firedancer?
Firedancer is opgebouwd rond drie hoofdcomponenten: een krachtige rekenstack, een netwerkstack en de runtime en consensusmechanismen. Het vermogen om de prestaties van Solana te verhogen tot 1 miljoen TPS (huidige protocollimieten rond 81.000 TPS) ligt in de innovatieve architectuur en optimalisatie van de gegevensstroom.
De validator maakt gebruik van een gelijktijdigheidsmodel dat verschillende taken uitvoert over een paar threads, waarbij elke thread zich richt op specifieke taken zoals netwerkpakketverwerking, transactievalidatie en blokverpakking. Dit ontwerp maximaliseert het gebruik van bronnen en versnelt het verwerken van transacties aanzienlijk.
Concreet voert elke thread één van 11 verschillende taken uit. Voor sommige taken is slechts één thread nodig, terwijl voor andere taken meerdere threads parallel moeten werken. Elke thread werkt op een eigen CPU-kern, zodat deze nooit slaapt of wordt hergebruikt door het besturingssysteem.
Firedancer introduceert ook een architectuur die “tegels” heet, waarbij elke tegel een taak, de draaiende thread en toegewezen CPU-kern vertegenwoordigt. Deze combinatie maakt flexibele en efficiënte performance tuning mogelijk. Zo kunnen net en quic tiles meer dan 1 miljoen TPS aan, terwijl verify en bank tiles zich richten op transactievalidatie en blokuitvoering, voldoende voor high-concurrency scenario’s.
In de officiële documentatie van Firedancer worden de volgende 11 tiles genoemd:
- net: Verzendt en ontvangt netwerkpakketten (elke tegel kan >1 miljoen TPS aan);
- snel: Ontvangt transacties van cliënten en beheert de verbinding en pakketverwerking voor het QUIC-protocol (elke tegel kan >1 miljoen TPS aan);
- Controleer: Valideert de cryptografische handtekeningen van binnenkomende transacties en filtert ongeldige eruit (elke tegel kan 20-40.000 TPS aan);
- ontdubbelen: Controleert en filtert dubbele inkomende transacties;
- pak: Pakt binnenkomende transacties in als leider en plant ze slim in voor uitvoering;
- bank: Voert geplande transacties uit (elke tegel kan 20-40.000 TPS aan);
- poh: Hasht continu op de achtergrond, vermengt gegenereerde hashes met uitgevoerde transacties om volgorde en timing aan te tonen;
- shred: Distribueert blokgegevens naar het netwerk wanneer het als leider optreedt; wanneer dit niet het geval is, ontvangt en herverzendt het blokgegevens (doorvoer hangt voornamelijk af van de clustergrootte, met benchmarks die >1 miljoen TPS aangeven voor kleine clusters);
- opslaan: Ontvangt blokgegevens wanneer hij als leider optreedt of van andere nodes wanneer zij leider zijn, en slaat deze op in een lokale schijfdatabase;
- metrisch: Verzamelt monitoringinformatie over andere tiles en levert deze aan HTTP-eindpunten;
- bord: Bevat de private sleutel van de validator en beantwoordt ondertekeningsverzoeken van andere tiles.
Voordat Firedancer volwassen wordt, heeft zijn overgangsversie, Frankendancer, al zijn intrede gedaan in het Solana mainnet. Frankendancer is een hybride van de code van Firedancer en Agave, waarbij gebruik wordt gemaakt van de voordelen van Firedancer op het gebied van netwerkstack en blokproductie, terwijl de executie- en consensusfunctionaliteiten van Agave behouden blijven. Daarentegen is Firedancer volledig nieuw opgebouwd zonder enige Agave-code.
Wat is de impact van Firedancer?
Het lijdt geen twijfel dat de lancering van Firedancer belangrijke gevolgen heeft voor het Solana ecosysteem, omdat het de diversiteit van validators enorm vergroot en het risico van single points of failure verder verkleint, waardoor de betrouwbaarheid van het netwerk wordt versterkt.
Bovendien behoudt Firedancer achterwaartse compatibiliteit met bestaande protocollen, wat zorgt voor een soepele overgang voor het ecosysteem zonder dat DApp-ontwikkelaars en gebruikers grote aanpassingen hoeven te doen.
Hoewel Firedancer op dit moment nog niet stemt en voortdurend geoptimaliseerd en gecontroleerd wordt, schetst het een hoopvol beeld voor de toekomstige ontwikkeling van het Solana-netwerk.