Zum Hauptinhalt springen

Übersicht

Vorverarbeitete Transaktionen sind Solana-Transaktionen vor der Ausführung, die bereitgestellt werden, bevor sie das Commitment-Level processed erreichen. Helius führt mehrere Quellen vor der Ausführung zusammen – hauptsächlich Shreds, die direkt beim Eintreffen am Validator decodiert werden, ergänzt durch Preconfirmation-Signale. Du erhältst sie als einen einzigen deduplizierten stream, ohne rohe Shred-Pakete empfangen oder selbst eine Infrastruktur für Deshredding betreiben zu müssen. Transaktionen aus Preconfirmation-Signalen treffen in diesem Feed später ein als im dedizierten Produkt Preconfirmations. Dort erhältst du weiterhin den frühesten Zugriff auf sie. Du empfängst vorverarbeitete Transaktionen über die WebSocket-Methode preprocessedSubscribe (Public Beta). Sie ist in allen kostenpflichtigen Tarifen für 0,1 Credits pro Nachricht verfügbar.

preprocessedSubscribe (WSS)

Die empfohlene Methode zum Empfangen vorverarbeiteter Transaktionen: Kontofilterung, kompaktes binäres payload und Verfügbarkeit in allen kostenpflichtigen Tarifen.

Position vorverarbeiteter Transaktionen im Lebenszyklus

In der Solana-Architektur durchlaufen Transaktionen mehrere Phasen, bevor sie vollständig verarbeitet sind:
  1. Empfang der Shreds → Der Validator empfängt die Shreds der Transaktion (Datenfragmente). ← Rohe Shreds (UDP) werden hier bereitgestellt.
  2. Decodieren der Shreds → Shreds werden in rohe Transaktionen decodiert. ← Vorverarbeitete Transaktionen werden hauptsächlich hier bereitgestellt.
  3. Ausführung der Transaktion → Die Runtime führt die Transaktion aus.
  4. Erzeugung der Metadaten → Salden vor und nach der Ausführung, Logs und Fehlerinformationen werden berechnet.
  5. Commitment → Die Transaktion erreicht den Status processed, confirmed oder finalized. ← LaserStream gRPC und LaserStream WebSocket stellen sie hier bereit.
Abonnements nach der Ausführung stellen Daten in Phase 5 bereit – nach der vollständigen Ausführung und der Erzeugung der Metadaten. Vorverarbeitete Transaktionen werden zum Zeitpunkt von Phase 2 bereitgestellt – nachdem die Shreds decodiert wurden, aber bevor die Ausführung abgeschlossen ist. Für ein noch früheres Signal liefert Preconfirmations Transaktionen, bevor sie zu Shreds werden. Der Kompromiss: Du erhältst die Transaktionsdaten früher, aber ohne Ausführungsmetadaten wie Saldenänderungen, Logs oder Fehlerinformationen.
Dieser stream enthält ausschließlich Transaktionen. Aktualisierungen des Konto- und Programmstatus sind erst verfügbar, nachdem die Runtime die Transaktion ausgeführt hat. Wenn du Konto- oder Programmaktualisierungen in Echtzeit benötigst – Token-Salden, Status der Bonding-Kurve oder Programmkonten –, verwende stattdessen LaserStream gRPC mit processed commitment.

Welche Daten sind verfügbar?

Vorverarbeitete Transaktionen enthalten die vollständige signierte Transaktion, aber keine Ausführungsmetadaten:

Verfügbare Daten

  • ✅ Transaktionssignatur - Eindeutige Kennung der Transaktion
  • ✅ Kontoschlüssel - Alle Konten, auf die die Transaktion verweist
  • ✅ Anweisungen - Vollständige Anweisungsdaten und Programmaufrufe
  • ✅ Aktueller Blockhash - Referenz für den Ablauf der Transaktion
  • ✅ Signaturen - Alle Signaturen der Transaktion
  • ✅ Nummer des slot - Der slot, in dem die Transaktion beobachtet wurde

Fehlende Daten

  • ❌ Transaktionsmetadaten - Änderungen von Token-Salden, Salden vor und nach der Ausführung, Transaktionsstatus
  • ❌ Transaktionsfehler - Wir können nicht feststellen, ob die Transaktion fehlgeschlagen ist
  • ❌ Innere Anweisungen - Programmübergreifende Aufrufe (CPIs) sind nicht enthalten
  • ❌ Log-Nachrichten - Programm-Logs werden während der Ausführung erzeugt
  • ❌ Verbrauchte Compute Units - Ausführungsmetriken sind nicht verfügbar
Betrachte vorverarbeitete Transaktionen als den Empfang des „Vorschlags“ ohne das „Ergebnis“. Du siehst, was der Absender versucht hat, aber nicht, was tatsächlich passiert ist.

Zustellgarantien

Die Zustellung erfolgt nach bestem Bemühen, ist nicht garantiert und bietet keine historische Wiedergabe. Eine übertragene Transaktion ist ein Signal vor der Ausführung und kein Commitment-Level. Sie kann fehlschlagen, verworfen werden oder auf einem anderen Fork landen. Dedupliziere anhand der Signatur und gleiche die Daten mit einem processed oder confirmed stream ab, wenn die Ausführungsergebnisse relevant sind. Verwende für kritische Anwendungen, die eine garantierte Zustellung und vollständige Daten benötigen, stattdessen LaserStream gRPC.

Wann du vorverarbeitete Transaktionen verwenden solltest

Für latenzkritische Anwendungen, die decodierte Transaktionen vor der Ausführung benötigen, ohne einen Decoder für Shreds zu betreiben:
  • propAMMs
  • Sniper
  • Copy-Trader
  • Liquidations-Bots
  • Arbitrage
Wenn jede Mikrosekunde zählt und du Shreds mit Leitungsgeschwindigkeit zusammensetzen kannst, verwende rohe Shreds (UDP). Wenn du das frühestmögliche Signal benötigst, verwende Preconfirmations.

Preise

preprocessedSubscribe ist in allen kostenpflichtigen Tarifen verfügbar und kostet 0,1 Credits pro Nachricht – eine Nachricht pro zugestellter Transaktion. Weitere Informationen findest du unter Credits.

Häufig gestellte Fragen

Nein, der Filter wird durch den ursprünglichen preprocessedSubscribe festgelegt. Um eine Unterbrechung zu vermeiden, empfehlen wir, eine zweite Verbindung mit dem neuen Filter zu öffnen, auf die Bestätigung des Abonnements zu warten und deinen Dienst dann auf den neuen Filter umzustellen.
Das Limit von 10 gleichzeitigen Verbindungen gilt pro API key. Jeder API key in einem Projekt hat ein eigenes Limit von 10 Verbindungen.

Nächste Schritte

Subscribe with preprocessedSubscribe

Endpoint, Kontofilterung, Aufbau des binären payload und Codebeispiele.

Preconfirmations

Transaktionen, die bereitgestellt werden, bevor sie zu Shreds werden – das früheste Transaktionssignal.

Raw Shreds (UDP)

Unverarbeitete Shred-Pakete über UDP. Du implementierst das Deshredding.

Helius Sender

Reagiere mit der schnellsten Aufnahme von Transaktionen auf das, was du siehst.