Firedancer stellt fd_quic vor: Eine Hochleistungsimplementierung von QUIC und Solana Transaction Ingest Netzwerkprotokollen
Firedancer, ein unabhängiger Validator-Client für Solana, der von Jump entwickelt wurde, kündigte kürzlich seinen neuesten technischen Meilenstein fd_quic an, eine Hochleistungsimplementierung der Netzwerkprotokolle QUIC und Solana Transaction Ingest.
- Veröffentlicht: Nov 20, 2023 at 12:32
Firedancer, ein unabhängiger Validierungsclient für Solana, der von Jump entwickelt wurde, kündigte kürzlich seinen neuesten technischen Meilenstein fd_quic an, eine Hochleistungsimplementierung der QUIC- und Solana-Transaktionsingest-Netzwerkprotokolle. Dieser Durchbruch bringt erhebliche Verbesserungen in Bezug auf Skalierbarkeit und Robustheit mit sich und macht das Solana-Netzwerk widerstandsfähiger gegen Spam-Angriffe.
QUIC-Protokoll und Solana
Das Solana-Netzwerk nutzt das QUIC-Protokoll für verschiedene Zwecke, einschließlich der Transaktionsübertragung. Der benutzerdefinierte Netzwerkstack von Firedancer wurde von Grund auf so konzipiert, dass er die empfangsseitige Skalierung (RSS), eine hardwarebeschleunigte Form des Lastausgleichs, nutzt. Dies ermöglicht eine parallele Architektur, bei der jeder CPU-Kern einen Teil des eingehenden Datenverkehrs mit minimalem Overhead verwaltet.
RSS bietet einen besseren Durchsatz und vereinfacht die Implementierung im Vergleich zum softwarebasierten Lastausgleich. Es macht komplexe globale Scheduler, asynchrone Laufzeiten, Sperren und Atomics überflüssig. Die Entscheidung von Firedancer, den Linux-Networking-Stack mit XDP/AF_XDP, aktuellen Kernel-Technologien, zu umgehen, optimiert die Leistung weiter.
Die Komplexität von QUIC
Die 151 Seiten umfassenden Spezifikationen von QUIC bringen erhebliche Komplexität mit sich. Da es nicht möglich war, eine bestehende C-Bibliothek zu finden, die den Anforderungen an Lizenzierung, Leistung und Zuverlässigkeit entsprach, entwickelte Firedancer eine eigene Bibliothek. Ihre Implementierung, fd_quic, verfügt über optimierte Datenstrukturen und Algorithmen, mit (fast) null Heap-Allokationen während der Verarbeitung des Datenverkehrs, um sicherzustellen, dass dem Validator nicht der Speicher ausgeht.
Live-Demo-Highlights
Firedancer feierte ihre monatelange Reise, um QUIC schnell zu machen, mit einer Live-Demo, die drei Design-Ziele zeigte: Kompatibilität, Leistung und Skalierbarkeit.
- Kompatibilität: Ein Spam-Tool, das aus Modulen des Validators von Solana Labs aufgebaut wurde, schickte zahlreiche Transaktionen über QUIC an den Firedancer-Validator und bewies damit, dass die QUIC-Implementierung korrekt war.
- Leistung: In einem Test wurden die Grenzen eines einzelnen CPU-Kerns, auf dem fd_quic läuft, mit mehreren Spammern ausgereizt. Das Ergebnis war 5,8 Gbps oder 270k TPS und erreichte 1,4 Millionen TPS mit kleinen Transaktionen. Um diese Rate zu erreichen, waren acht CPU-Kerne erforderlich.
- Skalierbarkeit: Derselbe Leistungstest wurde mit aktiviertem RSS auf einer 25-Gbit/s-Netzwerkschnittstelle und fd_quic auf vier CPU-Kernen durchgeführt. Dies zeigte lineare Skalierungseigenschaften, wobei jeder Kern ungefähr die gleiche Rate für eine fast vierfache Verbesserung des Durchsatzes handhabte.
Während des Tests nahm ein Firedancer QUIC-Server, der auf nur vier CPU-Kernen auf einem einzelnen Server lief, zuverlässig 21,8 Gbit/s an eingehenden Transaktionen (etwa 1,08 Mio. TPS mit ~1kB txn-Größe) von Solana Labs-Clients auf. Dieser Test war durch die verfügbare Netzwerk-Hardware (eine 25 Gbps-Verbindung) begrenzt, aber Firedancer begrüßt es, wenn Benutzer die Leistung mit Hilfe der verfügbaren Dokumentation weiter steigern.
Introducing Firedancer’s latest technical milestone: fd_quic 🔥💃
— Firedancer 🔥💃🏻 (@jump_firedancer) Mai 4, 2023
A high-performance implementation of the QUIC and Solana transaction ingest network protocols.
1/15 pic.twitter.com/N10k1XQcQ1
Während die Arbeit an weiteren Komponenten fortgesetzt wird, sieht die Blockchain-Gemeinschaft den zukünftigen Entwicklungen von Firedancer mit Spannung entgegen.