Krypto-Wallets Stablecoins

Jetrelay: Der leistungsstarke ATproto-Relay mit nur 500 Zeilen Code

Krypto-Wallets Stablecoins
Jetrelay: A high-performance ATproto relay in 500 LOC

Jetrelay revolutioniert das Streaming von Bluesky-Daten mit einem schlanken und effizienten Relay, das dank moderner Linux-Kernel-Tricks eine beeindruckende Performance erzielt und eine enorme Anzahl an Clients mit minimaler CPU-Last bedient.

Im digitalen Zeitalter, in dem Datenströme in Echtzeit die Basis moderner Kommunikation bilden, gewinnt die effiziente Verteilung großer Eventmengen zunehmend an Bedeutung. Besonders im Ökosystem rund um Bluesky und das ATproto-Protokoll stellt die realzeitnahe Weitergabe von Ereignissen, wie Posts, Likes oder Follows, eine technische Herausforderung dar. Die steigende Anzahl von Nutzer*innen und die wachsende Menge an Daten verlangt nach Relays, die hochperformant, skalierbar und ressourcenschonend sind. Vor diesem Hintergrund hat sich Jetrelay als bemerkenswerte technische Lösung herauskristallisiert, die mit weniger als 500 Zeilen Code eine außergewöhnliche Effizienz beim Betreiben eines ATproto-Relays erreicht. Ihr Erfolgsrezept ist das intelligente Nutzen von Linux-Kernel-Funktionen und ein minimalistischer, aber durchdachter Designansatz.

Bluesky, eine Plattform, die auf ATproto basiert, nutzt sogenannte Firehose-Feeds als Backbone für die Verteilung von Änderungen und Ereignissen im Netzwerk. Diese Firehose stellt eine ununterbrochene, umfassende Datenquelle dar, die alles vom neuen Content über Löschungen bis hin zu Reaktionen abdeckt. Dabei gibt es zwei Varianten des Feeds: die umfassende, sogenannte Full-Firehose, und eine schlankere Version namens Jetstream. Jetstream ist speziell für eine optimierte Verteilung konzipiert und überträgt Daten im JSON-Format via Websockets, was es besonders zugänglich für verschiedenste Clients macht. Trotz der kleineren Eventgröße von ungefähr 500 Bytes und einer Ereignisfrequenz von mehreren hundert Events pro Sekunde stellt das Verarbeiten und Weiterleiten dieser Mengen an Daten eine enorme Belastung für Serversysteme dar.

Die technische Herausforderung besteht darin, diese Masse an Events effizient an eine große Anzahl von Clients zu verteilen, ohne dabei die Serverressourcen zu überlasten. Jetrelay begegnet diesem Problem mit einem simplen, aber leistungsfähigen Prinzip: Es speichert eingehende Ereignisse fortlaufend als eine Datei, in der Form, in der die Daten auch übertragen werden. Für jeden Client wird ein Cursor geführt, der auf einen bestimmten Offset in der Datei verweist. Wenn ein Client nicht auf dem aktuellsten Stand ist, sendet Jetrelay die noch ausstehenden Bytes direkt vom Dateisystem über das Netzwerkkabel – ohne aufwendige Zwischenschritte oder Datenkopien im Userspace. Dieses Trick basiert entscheidend auf dem Linux-Systemaufruf sendfile(), der es erlaubt, große Datenblöcke direkt aus dem Kernel-Puffer heraus an einen geöffneten Socket zu senden, ohne den Umweg über den Anwenderbereich zu machen.

Das bedeutet, dass Daten von der Datei zum Netzwerkinterface gelangen, ohne dass sie von der Anwendung aktiv gelesen und dann wiedergeschrieben werden müssen – eine effiziente Umgehung, die den CPU-Aufwand dramatisch senkt. Gerade bei Verteilung von identischen Daten an viele Empfänger spart diese Methode immens an Ressourcen, da die Daten nur einmal in den Kernel-Cache geladen werden. Die einfache Logik des Datei- und Cursor-Modells bringt neben Effizienz weitere Vorteile mit sich: Clients, die mit dem Feed hinterherhinken, können in größeren Datenblöcken aufgeholt werden, was die Anzahl der Systemaufrufe minimiert und die Latenz bei hoher Last reduziert. Außerdem ermöglicht dieses Design ein natürliches Batching der Schreib- und Leseoperationen, wodurch die Performance auch bei vielen gleichzeitig verbundenen Clients stabil bleibt. Da sendfile() jedoch ein synchroner Aufruf ist, der blockiert, bis die Übertragung abgeschlossen ist, könnte er ohne weitere Maßnahmen gerade bei langsamen oder nicht mehr reagierenden Clients zum Flaschenhals werden.

Mehrere tausend dedizierte Threads für entsprechend viele Clients zu betreiben, würde zwar funktionieren, ist aber im Gesamtbetrieb ineffizient und schwer zu managen. Jetrelay löst dieses Problem durch den Einsatz von io_uring, einer modernen Linux-Technologie für asynchrone E/A-Operationen. Damit können viele sendfile-ähnliche Übertragungen parallel vorbereitet, an den Kernel übergeben und dann deren Abschluss im effizienten Polling-Verfahren abgefragt werden. Dieser Mechanismus reduziert deutlich die Anzahl der notwendigen Systemaufrufe und sorgt dafür, dass die Hauptlogik des Relays schlank und performant bleibt, egal wie viele Clients verbunden sind. Interessanterweise existiert für io_uring keine direkte sendfile-Operation.

Jetrelay emuliert den Vorgang daher mit einer Kombination aus zwei splice()-Operationen, die nacheinander auf einer speziell pro Client angelegten Pipe ausgeführt werden. Das Ergebnis ist gleichwertig, aber mit io_uring im Hintergrund hervorragend skalierbar und wartbar. Die Integration dieser fortschrittlichen Linux-Funktionalitäten macht einen Großteil der Performance aus, die Jetrelay im Vergleich zu anderen Implementierungen auszeichnet. Neben der Datenverteilung spielt auch der Verbindungsaufbau eine wichtige Rolle. Eingehende Clients können ihren Startpunkt im Feed mit einem Zeitstempel definieren, um verpasste Ereignisse nachholen zu können.

Um diese Anfragen effizient zu bedienen, führt Jetrelay einen Index in Form eines B-Baums, der für jeden Zeitstempel die entsprechende Byteposition im Datenfile kennt. Dieser Index entsteht im Hintergrund und wird synchron zum Schreiben der Events gepflegt. Dank des mutex-geschützten Zugriffs kann er ohne komplexe Synchronisierung zwischen Schreib- und Leser-Threads genutzt werden. Neue Clients erhalten so nach dem Handshake sofort den passenden Cursor gesetzt und können nahtlos in den Stream eingebunden werden. Eine weitere technische Meisterleistung von Jetrelay ist die Möglichkeit, alte, nicht mehr benötigte Daten im Eventfile sicher und ohne Komplikationen zu entfernen.

Die Datei wächst theoretisch mit jedem neuen Ereignis an, was langfristig natürlich zum Problem einer unbegrenzten Dateigröße und damit zu Speicherengpässen führen könnte. Statt zur klassischen Logrotation zu greifen, die potenziell zu komplizierter Synchronisation und Cursor-Fehlern führen kann, verwendet Jetrelay den Linux-Systemaufruf fallocate() mit dem Parameter zum „Punch Hole“. Dadurch können frühe Bereiche der Datei deallokiert, also quasi unsichtbar gemacht werden, ohne ihre Position zu verändern. Für die Anwendung sieht die Datei zwar nach außen hin weiter größer aus, belegt auf dem Datenträger aber nur den tatsächlich genutzten, aktuellen Bereich. Solange keine Clients auf die gelochten Bereiche zugreifen, bleibt das System konsistent und performant.

Ein kleiner Haken bleibt: Clients, die zu langsam sind und noch auf alte, mittlerweile deallokierte Bereiche blicken, müssen vom Relay getrennt werden, um fehlerhafte Datenübertragungen zu verhindern. Aber auch hier ist der Aufwand gering und lässt sich automatisiert handhaben. So garantiert Jetrelay eine stabile Datenhaltung und kurzfristige Bereinigung ohne Performanceeinbußen. Nicht zuletzt hat sich Jetrelay auch im Praxisbetrieb bewiesen. Sowohl unter lokalen Testbedingungen auf einem Laptop als auch im realen Einsatz auf einem virtuellen Server mit einer 10-Gigabit-Netzwerkschnittstelle bewältigte das Relay tausende von Clientverbindungen parallel.

Dabei konnte es sämtliche angeschlossenen Clients zuverlässig mit den aktuellen Ereignissen versorgen und eine Durchsatzrate erzielen, die den verfügbaren Netzwerkkanal vollständig ausnutzte. Selbst mit 8000 oder 9000 Clients hielt das System stabil durch, bevor hardwarebedingte Limits zum Tragen kamen. Beeindruckend ist auch, dass diese Leistung bereits mit einer vergleichsweise geringen Anzahl an CPU-Kernen, etwa 8, erreicht wurde, was auf eine sehr effiziente Ressourcennutzung hinweist. Ein Vergleich mit dem offiziellen Jetstream-Server zeigt zudem die Vorteile der Jetrelay-Architektur deutlich. Das offizielle Relay, das eine komplexere Event-Verarbeitung und Filtermöglichkeiten bietet, erreicht im Test bei weitem nicht dieselben Übertragungsraten und erfordert oft aufwendigere Ressourcenmanagement.

Jetrelay hingegen verzichtet bewusst auf umfangreiche Features wie Filter, trägt aber durch diese Fokussierung ein Höchstmaß an Geschwindigkeit und Stabilität bei der einfachen Weiterleitung kompletter Feeds bei. Die Idee, Systemaufrufe und Kernel-Möglichkeiten maximal auszunutzen und den Userspace so wenig wie möglich zu belasten, erweist sich hier als durchdachtes Konzept für moderne, hochskalierbare Pub/Sub-Architekturen. Jetrelay zeigt, wie effektives Systemdesign mit schlankem Code und moderner Linux-Technik wettbewerbsfähige Software ermöglichen kann, die den hohen Anforderungen heutiger Echtzeit-Datenverteilung gewachsen ist. Wer an der Technik interessiert ist, findet den Quellcode von Jetrelay offen zugänglich und ist eingeladen, Ideen, Verbesserungen oder spezifische Anpassungen einzubringen. Ob im produktiven Einsatz oder als Experimentierplattform für zukünftige Pub/Sub-Protokolle – Jetrelay bietet eine inspirierende Basis mit klarem Fokus auf Performanz und Skalierbarkeit.

Insgesamt ist Jetrelay ein überzeugendes Beispiel dafür, dass trotz technologischer Komplexität und wachsender Datenströme kreative und elegante Lösungen zu finden sind, die mit vergleichsweise geringem Aufwand hohe Leistungsstandards setzen. Für Betreiber und Entwickler von datenintensiven Streaming-Anwendungen ist es deshalb lohnenswert, die Konzepte und Techniken hinter Jetrelay kennenzulernen und in der eigenen Infrastruktur zu prüfen.

Automatischer Handel mit Krypto-Geldbörsen Kaufen Sie Ihre Kryptowährung zum besten Preis

Als Nächstes
The Modern Moloch
Mittwoch, 25. Juni 2025. Der moderne Moloch: Wie das Automobil die Städte und das Leben veränderte

Die Einführung des Automobils im frühen 20. Jahrhundert führte zu einem fundamentalen Wandel im städtischen Leben.

What's the best way to manage (and hold on to)unexpected wealth? (2016)
Mittwoch, 25. Juni 2025. Überraschendes Vermögen: So behalten und verwalten Sie unerwarteten Reichtum erfolgreich

Unerwarteter Reichtum wie Lotteriegewinn, Erbschaft oder große Geschäftserlöse bieten immense Chancen, bergen aber auch Risiken. Mit der richtigen Strategie zum Vermögensmanagement können Sie Ihren Wohlstand sichern, schützen und nachhaltig vermehren.

One Nuclear War Can Ruin the Whole Climate
Mittwoch, 25. Juni 2025. Wie ein einziger Nuklearkrieg das globale Klima für immer verändern kann

Ein einzelner nuklearer Konflikt könnte katastrophale Auswirkungen auf das weltweite Klima haben und langfristige Umweltschäden verursachen. Die Erkenntnisse zu den klimatischen Folgen eines solchen Krieges sind entscheidend für das Verständnis der globalen Sicherheits- und Umweltpolitik.

Rumble CEO confirms Tether-collab crypto wallet to launch in Q3
Mittwoch, 25. Juni 2025. Rumble und Tether starten gemeinsam Bitcoin- und Stablecoin-Wallet im dritten Quartal 2025

Rumble CEO bestätigt die Einführung einer neuen Krypto-Wallet in Zusammenarbeit mit Tether. Die innovative Non-Custodial Wallet wird vor allem Bitcoin und Stablecoins unterstützen und soll eine starke Konkurrenz zu bestehenden Anbietern wie Coinbase darstellen.

Rumble Crypto Wallet: CEO Chris Pavlovski Reveals Launch Date with Tether CEO Backing
Mittwoch, 25. Juni 2025. Rumble Crypto Wallet startet 2025: Revolution für digitale Creator mit Unterstützung von Tether

Rumble, bekannt als kanadische Videoplattform-Alternative zu YouTube, kündigt den Start seiner innovativen Krypto-Wallet an. Unterstützt von Tether und unter der Leitung von CEO Chris Pavlovski, zielt die Wallet darauf ab, die Monetarisierung für Content-Ersteller weltweit zu verändern.

Crypto Exchange CEO's Daughter, Grandson Targeted in Paris Kidnap Attempt
Mittwoch, 25. Juni 2025. Entführungsversuch in Paris: Tochter und Enkel des CEO einer Krypto-Börse im Fokus von Kriminellen

Ein gescheiterter Entführungsversuch in Paris bringt die Sicherheitsbedenken für Angehörige von Krypto-Unternehmern in den Fokus. Die wachsende Zahl solcher Vorfälle in Frankreich zeigt die besondere Gefahr für wohlhabende Persönlichkeiten mit Verbindungen zur Kryptowährungsbranche auf.

Thyssenkrupp's profit plunges as tariff uncertainty hits demand
Mittwoch, 25. Juni 2025. Thyssenkrupp im Krisenmodus: Gewinnrückgang durch steigende Zollunsicherheit und schwache Nachfrage

Thyssenkrupp kämpft mit einem drastischen Gewinnrückgang, ausgelöst durch wachsende wirtschaftliche Unsicherheiten und neue Handelstarife, die insbesondere die Automobil- und Stahlbranche belasten. Die Analyse beleuchtet die Ursachen, Auswirkungen und zukünftigen Herausforderungen für den deutschen Industriekonzern im globalen Marktumfeld.