Zum Hauptinhalt springen
Mit der Transaktionsüberwachung kannst du die Ausführung von Transaktionen, ihren Erfolgs- oder Fehlerstatus, Programminteraktionen und Änderungen am Guthaben von token in Solana in Echtzeit verfolgen. Dieser Leitfaden behandelt Filterstrategien und praktische Implementierungen mit dem helius-laserstream SDK.
Voraussetzungen: Dieser Leitfaden setzt voraus, dass du den LaserStream gRPC Quickstart abgeschlossen hast und einen API key besitzt.

Optionen für die Transaktionsfilterung

LaserStream verwendet dieselbe Filterstruktur wie Yellowstone gRPC, einschließlich des Filters tokenAccounts (ATA-Erweiterung). Diese Felder legst du in transactions.<label> fest:
  • accountInclude — stimmt überein, wenn eines dieser Konten vorkommt (logisches ODER)
  • accountRequired — stimmt nur überein, wenn alle diese Konten vorkommen (logisches UND)
  • accountExclude — verwirft die Transaktion, wenn eines dieser Konten vorkommt
  • vote / failed — boolesche Flags für Abstimmungs- und fehlgeschlagene Transaktionen
  • tokenAccounts — optionale Erweiterung für zugehörige Token-Konten (ATA) ("balanceChanged", "all" oder "none"), sodass eine accountInclude-Wallet auch mit Transaktionen übereinstimmt, bei denen sie ein SPL-Tokenguthaben besitzt. Sieh dir Filtern nach Token-Konten (ATA) und unten den Tab Watching a Wallet an.
  • matchMints — optionales Flag, das die Kontolisten zusätzlich mit den Mints in den Token-Guthaben vor und nach einer Transaktion abgleicht. Dadurch erfasst ein Mint in accountInclude jede Übertragung, jeden Swap, jeden Mint-Vorgang und jeden Burn dieses Tokens. Sieh dir Filtern nach Token-Mints und unten den Tab Watching a Token an.
Überwache Transaktionen, an denen bestimmte Programme beteiligt sindVerfolge alle Transaktionen, die für dich relevante Programme betreffen:
Ideal für: programmspezifische Überwachung, Nachverfolgung von DeFi-Protokollen und Interaktionen mit Smart Contracts.

Praktische Beispiele

Beispiel 1: DEX-Transaktionen überwachen

Verfolge Transaktionen, die gängige DEX-Programme betreffen:

Beispiel 2: Fehlgeschlagene Transaktionen überwachen

Verfolge fehlgeschlagene Transaktionen, um Probleme in der Anwendung zu erkennen:

Beispiel 3: Transaktionen mit hohem Wert überwachen

Verfolge Transaktionen mit umfangreichen SOL-Übertragungen:

Beispiel 4: Eine Wallet überwachen (einschließlich Token-Übertragungen)

Überwache alle Geldbewegungen einer Wallet – einschließlich eingehender SPL-Token-Übertragungen, die ihre ATAs betreffen –, indem du tokenAccounts zu einem einfachen accountInclude-Filter hinzufügst:

Datenstruktur der Transaktion


Referenz zur Filterlogik

Include Logic (OR)

accountInclude: Die Transaktion muss MINDESTENS EINES dieser Konten betreffen.["A", "B"] stimmt mit Transaktionen überein, die Konto A ODER Konto B betreffen.

Required Logic (AND)

accountRequired: Die Transaktion muss ALLE diese Konten betreffen.["A", "B"] stimmt mit Transaktionen überein, die Konto A UND Konto B betreffen.

Exclude Logic (NOT)

accountExclude: Die Transaktion darf KEINES dieser Konten betreffen.

Combined Logic

Abschließender Filter: (accountInclude OR empty) AND (accountRequired AND all) AND NOT (accountExclude OR any).

Leistungsaspekte

Transaktions-streams können ein hohes Datenvolumen haben. So kannst du Schritt halten:
  • Beginne mit spezifischen Programmfiltern (abonniere nicht „alle Transaktionen“)
  • Verwende confirmed statt processed, wenn du etwa 1,5 Sekunden zusätzliche Latenz tolerieren kannst
  • Überwache deine Verarbeitungskapazität mit einem Zähler
  • Erwäge, parallele Consumer hinter einer Warteschlange auszuführen

Fehlerbehandlung

Symptom: Überwältigendes Transaktionsvolumen.Lösungen: Füge strengere Filter hinzu (accountRequired, accountExclude); verwende ein höheres commitment; implementiere Sampling oder eine rate limit; verarbeite die Daten asynchron.
Symptom: Erwartete Transaktionen werden nicht angezeigt.Lösungen: Prüfe, ob die Programmadressen korrekt sind; prüfe, ob die Transaktionen tatsächlich existieren; verwende processed für schnellere Aktualisierungen; lockere restriktive accountRequired-/accountExclude-Filter.
Symptom: Die Transaktionsdaten können nicht geparst werden.Lösungen: Behandle fehlende Felder robust; validiere die Struktur vor der Verarbeitung; kapsle das Parsen in try/catch; sieh dir Transaktionsdaten decodieren an.

Nächste Schritte

Slot & Block Monitoring

Verfolge den Netzwerkkonsens und die Blockproduktion.

Stream Pump AMM Data

Praxisbeispiel: Überwache Pump.fun-AMM-Transaktionen.

Decoding Transaction Data

Parse die binären Transaktions-payloads in lesbare Solana-Transaktionen.

Yellowstone protocol reference

Derselbe Workflow mit dem zugrunde liegenden Yellowstone-gRPC-Protokoll.