
Onchain-Events auf Solana überwachen
Einführung
Eine der grundlegendsten Aufgaben für Entwickler im Kryptobereich ist es, Systeme einzurichten, die die Blockchain überwachen. Vielleicht wartest du auf Zahlungsbestätigungen, NFT-Verkäufe oder Überweisungen. Oder du überwachst Accounts zu Sicherheitszwecken. Unabhängig von deinem Anwendungsfall müssen deine Systeme zur Überwachung der Chain fehlertolerant, zuverlässig und auf geringe Latenz optimiert sein.
In diesem Beitrag zeigen wir dir mehrere Möglichkeiten, solche Systeme auf Solana zu entwickeln, einige Anwendungsbeispiele und wie du mit Helius künftig bessere Systeme bauen kannst.
Die Blockchain überwachen
Es gibt zwei grundlegende Möglichkeiten, Onchain-Events zu überwachen:
- Polling
- Streaming
Beim Polling fragt der Client oder die Anwendung einen Server oder eine Datenquelle wiederholt nach neuen Daten ab. Das kann in festgelegten Intervallen oder bei Bedarf erfolgen. Sendet der Client eine Anfrage an den Server, antwortet dieser mit den neuesten Daten – unabhängig davon, ob sich etwas geändert hat. Der Client oder die Anwendung kann daher dieselben Daten mehrfach erhalten, obwohl es kein Update gab.
Beim Streaming sendet der Server dagegen Daten an den Client oder die Anwendung, sobald ein Update vorliegt. Der Client muss Daten also nicht wiederholt anfordern, und der Server sendet sie nur bei Änderungen. Das ermöglicht eine effizientere Datenübertragung in Echtzeit, da der Server ausschließlich relevante Daten übermittelt.
Polling ist einfach und weitverbreitet, kann aber viel Netzwerkverkehr erzeugen und viele Ressourcen beanspruchen – besonders bei häufigen Anfragen. Streaming ist dagegen effizienter, weil der Server nur Updates sendet. Dadurch sinken das übertragene Datenvolumen und der Netzwerkverkehr.
Streaming kommt typischerweise in Anwendungen zum Einsatz, bei denen Datenaktualisierungen in Echtzeit entscheidend sind, etwa bei Börsenkursen, Social-Media-Updates und Onlinespielen. Polling wird häufiger für Anwendungen verwendet, bei denen Daten seltener aktualisiert werden oder weniger zeitkritisch sind, zum Beispiel bei E-Mail-Clients oder Nachrichtenwebsites.
Beide Methoden haben Vor- und Nachteile. Für Datenaktualisierungen in Echtzeit ist Streaming jedoch im Allgemeinen effizienter und wird daher bevorzugt. Polling bleibt für bestimmte Anwendungen mit selteneren Updates sinnvoll.
Für die meisten Workflows auf Blockchains – insbesondere auf Solana – solltest du Streaming verwenden. Dafür gibt es mehrere Gründe. Vor allem lässt sich Streaming deutlich einfacher implementieren und eignet sich besser für Anwendungsfälle mit hohem Datenverkehr, auf die Solana ausgelegt ist.
So überwachst du Onchain-Events auf Solana
Solana ist eine sehr schnelle Blockchain. Sie erzeugt alle 400 ms neue Blöcke, die normalerweise Tausende Transaktionen enthalten. Und das Verrückte daran: So langsam wird Solana nie wieder sein. Während die Core-Entwickler weiter am System arbeiten, wird die Chain immer mehr neue Daten verarbeiten. Deshalb musst du deine Systeme von Anfang an skalierbar entwerfen.
Glücklicherweise stehen dir mehrere Methoden zur Verfügung, um Onchain-Daten auf Solana zu überwachen:
- Polling
- WebSockets
- Geyser
- Helius Webhooks
Polling
Dies ist die am wenigsten empfehlenswerte Methode, um Events auf Solana zu überwachen, auch wenn sie konzeptionell am einfachsten sein dürfte.
Je nachdem, welche Daten du abrufen möchtest, richtest du einfach eine Schleife ein, die wiederholt eine JSON-RPC-Methode auf einem Solana-RPC-Node aufruft. Typische Anwendungsfälle wären das Polling der Methode getBlock, um neue Blöcke zu erkennen, oder das Polling von `getSignaturesForAddress`, um neue Transaktionen für eine bestimmte Adresse zu prüfen.
Interessanterweise könnte dies auch die beste Methode für sehr fortgeschrittene Anwendungsfälle sein, bei denen du Updates mit vollständig eigener Logik auslösen möchtest.
WebSockets
Solana-RPCs stellen Entwicklern außerdem PubSub-WebSockets zur Verfügung. Folgende Event-Typen sind verfügbar:
- accountUnsubscribe
- accountSubscribe
- logsSubscribe
- logsUnsubscribe
- programSubscribe
- programUnsubscribe
- signatureSubscribe
- signatureUnsubscribe
- slotSubscribe
- slotUnsubscribe
Hier ist ein kurzes JavaScript-Codebeispiel, das Account-Änderungen über einen Helius RPC überwacht, der WebSockets unterstützt:
const solanaWeb3 = require(‘@solana/web3.js’)
const connection = new solanaWeb3.Connection(“https://rpc.helius.xyz?api-key=“);
(async () => {
connection.onAccountChange(
new solanaWeb3.PublicKey(“5yv6Vh8FNx93TXeSS94xy8VLZMbTqx4vXp7Zg5bDLZtE”),
(updatedAccountInfo, context) => console.log(“Updated account info: “, updatedAccountInfo),“confirmed” );
})();Ein sehr wichtiger Vorbehalt bei WebSockets: Sie sind zwar für Prototypen nützlich, haben sich in der Praxis aber als recht anfällig und unzuverlässig erwiesen. Wir empfehlen dringend, sie nicht für geschäftskritische Workflows zu verwenden, da dir Events entgehen werden.
Geyser
Kurz gesagt: Du kannst Nodes auf Solana Daten direkt über eine Plugin-Schnittstelle an dich streamen lassen und dabei anpassen, wie du diese Daten empfängst. Dies ist die schnellste Streaming-Methode mit der geringsten Latenz auf Solana. Für DeFi-Liquidationen und latenzkritische Anwendungen ist sie unverzichtbar.
Solana-Validatoren und RPCs bieten eine einzigartige, Solana-native Methode zum Streamen von Daten: Geyser-Plugins.
Die Validatoren unterstützen einen Plugin-Mechanismus namens „Geyser“-Plugin. Darüber lassen sich Informationen zu Accounts, Slots, Blöcken und Transaktionen an externe Datenspeicher wie relationale Datenbanken, NoSQL-Datenbanken oder Kafka übertragen. Anschließend können RPC-Dienste die Daten aus diesen externen Datenspeichern abrufen und flexibler sowie gezielter optimieren, etwa durch Caching und Indexierung.
Leider kann das Einrichten von Geyser recht aufwendig und teuer sein. Selbst nach der Einrichtung ist erheblicher DevOps-Aufwand nötig, damit alles reibungslos läuft. Deshalb haben wir bei Helius GeyserVM entwickelt. Damit kannst du deine Plugins hochladen und innerhalb weniger Sekunden ausführen. Unsere hochverfügbaren und redundanten Cluster sorgen dafür, dass du dir keine Gedanken über Datenprobleme machen musst. Da die Ressourcen gemeinsam genutzt werden, kannst du außerdem mehr als 200 % deiner monatlichen Kosten sparen!
Wenn du dediziertes Geyser-as-a-Service möchtest, bieten wir natürlich auch das an. Klicke hier, um mehr darüber zu erfahren.
Webhooks
Das Konzept von Webhooks ist einfach. Kurz gesagt: Webhooks überwachen Events und senden sie beim Eintreten an einen von dir eingerichteten Server. Vielleicht möchtest du zum Beispiel bei jedem NFT-Verkauf eine Benachrichtigung an deinen Discord-Server senden. Mit einem Webhook gelingt das nahtlos.
Für die meisten Workflows zur Event-Überwachung auf Solana sind Webhooks die einfachste, flexibelste und kosteneffizienteste Methode. Nur bei Anwendungsfällen mit extrem niedriger Latenz solltest du Webhooks hinterfragen – wenn schon 5 ms über Erfolg oder Misserfolg deiner Anwendung entscheiden, etwa beim Hochfrequenzhandel.
Bei Helius haben wir das robusteste Webhook-Angebot im gesamten Kryptobereich entwickelt.
Du kannst bis zu 100.000 Adressen überwachen – mit nur einem Webhook. Konfiguriere die gewünschten Event-Typen, die wir für dich parsen, und gib einfach die URL deines Servers ein. Mehr brauchst du nicht, um kostenlos loszulegen.
Ein Dienst wie dieser bietet viele Vorteile: Du sparst nicht nur Wochen oder Monate an Entwicklungszeit und Aufwand, sondern erhältst auch ein elastisches Backend, das mit deinem Wachstum skaliert.
Anwendungsfälle
Jetzt weißt du, wie du Onchain-Events auf Solana überwachst. Was kommt als Nächstes? Hier sind einige interessante Anwendungsfälle:
Bots
- Wenn ein NFT auf Marktplatz X gelistet wird, löse die Aktion „NFT kaufen“ aus.
- Wenn eine Margin-Position nicht ausreichend gedeckt ist, löse die Aktion „Liquidation“ aus.
Überwachung & Warnmeldungen
- Wenn ein Programm ein bestimmtes Log ausgibt, löse die PagerDuty-Integration aus.
- Wenn sich das Guthaben eines Token-Accounts um mehr als X % ändert, sende über Dialect eine Warnung.
Event-gesteuerte Indexierung
- Wenn eine Transaktion für ein bestimmtes Programm stattfindet, sende sie direkt an deine Datenbank oder dein Backend.
Benachrichtigungen & Aktivitätsverfolgung
- Wenn eine Übertragung von Wallet X zu Wallet Y erfolgt, sende eine Slack-Benachrichtigung oder E-Mail.
Analysen & Logs
- Wenn Event X eintritt, sende es an eine ETL-Pipeline oder speichere es direkt auf Helius, um langfristige Trends anzuzeigen.
Workflow-Automatisierung
- Wenn Event X eintritt, löse eine beliebige Gruppe von Aktionen aus.
Fazit
In diesem Beitrag haben wir die Unterschiede zwischen Polling und Streaming, verschiedene Möglichkeiten zur Überwachung der Solana-Blockchain und einige Anwendungsbeispiele behandelt.
Zusammenfassend kannst du Onchain-Events auf Solana über Polling, WebSockets, Geyser oder Helius Webhooks überwachen. Jede Methode hat Vor- und Nachteile. Prüfe deshalb die Anforderungen deiner Systeme, bevor du dich für einen Ansatz entscheidest. Danke fürs Lesen!
Ähnliche Artikel
Helius abonnieren
Bleib bei der Solana-Entwicklung auf dem Laufenden und erhalte Updates, wenn wir neue Beiträge veröffentlichen


