Webhooks, WebSocket oder RPC-Polling wählen

Vergleichen Sie Adressbenachrichtigungen, Socket-Abonnements und begrenztes Polling nach Chain-Unterstützung, Wiederherstellung, Empfängeranforderungen und Abrechnung.

Verwenden Sie Adress-Webhooks für die Zustellung an einen HTTPS-Empfänger, WebSocket für unterstützte Live-Abonnements und begrenztes Polling, wenn der Workflow einen eigenen Cursor und eine eigene Wiederherstellung benötigt.

Das Erstellen von On-Chain-Event-Listenern für Entwickler und KI-Agenten erfordert die Abstimmung der Anwendungsarchitektur auf Netzwerkfähigkeiten, Zustellgarantien, Empfängereinschränkungen und Betriebskosten.

Entscheidungsmatrix

Die folgende Tabelle stellt alle drei Integrationsmechanismen hinsichtlich unterstützter Netzwerkfähigkeiten, Infrastrukturanforderungen, Wiederherstellungsstrategien und Abrechnungsmodelle gegenüber:

DimensionAdress-WebhooksWebSocket-AbonnementsBegrenztes RPC-Polling
Primärer MechanismusPer HTTPS-POST an einen öffentlichen Endpunkt zugestellte Push-BenachrichtigungPull-Stream-Abonnement über eine dauerhafte TLS-Verbindung (wss://)Client-initiierte HTTP-JSON-RPC-Batch- oder geplante Abfragen
Chain-VerfügbarkeitAlle unterstützten Netzwerke, die in GET /v1/push/chains deklariert sindUnterstützt auf Robinhood Chain (robinhood_mainnet und robinhood_testnet); nicht bediente Netzwerke haben ws: false und geben HTTP 404 zurückAlle unterstützten Netzwerke in GET /v1/chains über schlüssellosen öffentlichen RPC oder authentifizierten JSON-RPC
EmpfängeranforderungenÖffentlich erreichbare HTTPS-URL, gültiges TLS-Zertifikat, 2xx-Antwort innerhalb des Timeouts, HMAC-SHA-256-Signaturverifizierung über den Raw-BodyAusgehende TCP/TLS-Client-Verbindung (wss://); verarbeitet Ping/Pong-Heartbeats und Wiederverbindungs-BackoffZustandsloser HTTP-Client oder geplanter Worker; speichert lokalen Block-Cursor
Zustellung & ReihenfolgeMindestens-einmal-Zustellung mit exponentiellem Wiederholungs-Backoff; Empfänger muss nach Ereignis-id bzw. über Abonnements hinweg nach ref + type deduplizierenStreng geordnete Frames auf einem einzelnen aktiven Socket; Benachrichtigungen werden bei Verbindungsabbrüchen verworfenDeterministische Pull-Antworten für bestätigte Blockhöhen; Client steuert die Ausführungsgeschwindigkeit
Chain-ReorganisationenSteuerbenachrichtigungen für chain.reorg ausgegeben; Empfänger verwirft ersetzte Ereignisse vor dem Anwenden kanonischer ReplaysLog-Benachrichtigungen tragen "removed": true für reorganisierte Logs; newHeads erfordert Prüfung des Parent-HashsClient verfolgt die Kontinuität der parentHash-Kette über Poll-Zyklen hinweg, um Reorgs zu erkennen
Wiederherstellung bei FehlernServer-Aufbewahrungsfenster erlaubt Replay über POST /v1/push/subscriptions/{id}/replay; Lücken vor dem Aktivierungsblock erfordern eth_getLogs-NachfüllungKeine serverseitige Warteschlange; Client verbindet sich erneut und füllt verpasste Bereiche per eth_getLogs nach, dedupliziert nach (blockHash, transactionHash, logIndex)Setzt Abfragen ab dem gespeicherten last_synced_block fort; unterteilt Chunks anhand von max_logs_block_range des Netzwerks aus GET /v1/chains
AbrechnungsmodellTägliche Adressgebühr pro Gruppe, basierend auf der höchsten Adressanzahl während der Online-Zeit am UTC-Tag, zuzüglich CU für zugestellte Datenereignisse; siehe Webhook-AbrechnungHandshake und Heartbeats unberechnet; eth_subscribe / eth_unsubscribe und übertragene Socket-Benachrichtigungseinheiten werden in CU abgerechnetAbrechnung pro Anfrage in Compute Units: eth_blockNumber, eth_call, eth_getLogs; Methodengewichte und CU pro 1 $ aus GET /v1/plans, unten dargestellt
Am besten geeignet fürÜberwachung von Benutzereinzahlungen, Hot-Wallet-Adress-Tracking, Händler-Checkouts, asynchrone Ereignis-WebhooksLive-newHeads und gefilterte logs, reaktive Bots, interaktive UIs auf unterstützten NetzwerkenBatch-Abgleich, Cronjobs, ETL-Pipelines, Chains ohne WebSocket-Unterstützung (wie HyperEVM)

Aktive Umrechnungsparameter

1 USD = 10,000 Abrechnungseinheiten, 1 Abrechnungseinheit = 1,000 CU (1 USD = 10,000,000 CU).

Formel: CU-Gewichtung × 1,000,000 ÷ (10,000 × 1,000) USD.

MethodeCU pro AufrufPreis pro 1M Aufrufe (USD)
eth_blockNumber1$0.10
eth_call15$1.50
eth_getLogs30$3.00
debug_traceTransaction100$10.00
data.block5$0.50

Wann Adress-Webhooks zu wählen sind

Wählen Sie die Blockchain Webhook API, wenn Ihr Backend als Standard-Webdienst betrieben wird, der eingehende HTTPS-Anfragen empfangen kann:

  • Große Adresslisten: Überwachen Sie Einzahlungen oder Abhebungen über Tausende von Kundenadressen hinweg, ohne dauerhafte Sockets pro Wallet aufrechtzuerhalten.
  • Serverlose oder containerisierte Empfänger: Serverlose Funktionen (AWS Lambda, Cloudflare Workers) starten bei eingehenden Webhooks und müssen keine kontinuierlichen Verbindungen aufrechterhalten.
  • Automatisierte Wiederholungen und Replay: Vorübergehende Ausfälle des Empfängers werden durch automatischen Wiederholungs-Backoff abgefedert. Innerhalb des Server-Aufbewahrungsfensters können verpasste Zustellungen über den Replay-Endpunkt erneut zugestellt werden.
  • Überlegungen zur Aktivierungsgrenze: Der Abgleich beginnt erst nach der Anwendung der Abonnementänderung (applied_from_block). Ereignisse, die vor dem Hinzufügen einer Adresse oder während des Status offline eines Abonnements aufgetreten sind, müssen über historische RPC-Logs abgefragt werden.

Prüfen Sie die Signaturverifizierungs- und Replay-Workflows, bevor Sie produktive Webhook-Empfänger bereitstellen.

Wann WebSocket-Abonnements zu wählen sind

Wählen Sie WebSocket-Abonnements, wenn niedrige Latenz erforderlich ist und Ihr Prozess einen langlebigen ausgehenden Socket aufrechterhalten kann:

  • Live-Block-Header: Streamen Sie newHeads, sobald jeder Block an die Spitze der Chain angehängt wird.
  • Contract-Event-Filter: Streamen Sie Echtzeit-Contract-logs, die einer Adresse oder einem bestimmten topic0 entsprechen.
  • Private Umgebungen: Ideal für lokale Skripte, CLI-Agenten oder Backend-Dienste hinter NAT oder Firewalls, die keinen eingehenden öffentlichen HTTPS-Port öffnen können.
  • Prüfung der Netzwerkverfügbarkeit: WebSocket wird auf Robinhood Chain unterstützt (Netzwerk-Slug robinhood_mainnet, Chain-ID 4663 und robinhood_testnet). HyperEVM bietet derzeit keine WebSocket-Unterstützung (ws: false); ein Verbindungsversuch per WebSocket zu einer nicht bedienten Chain gibt HTTP 404 zurück (unknown_chain).
  • Disziplin bei Verbindungsabbrüchen: WebSocket-Benachrichtigungen werden bei Verbindungsabbrüchen nicht serverseitig vorgehalten. Wenn der Socket abbricht, müssen Clients die Verbindung mit zufälligem exponentiellem Backoff wiederherstellen und verpasste Blöcke über eth_getLogs nachfüllen.

Konsultieren Sie den Leitfaden zu WebSocket-Abonnements für Filterlimits, Verbindungsobergrenzen (20 pro Schlüssel, 50 pro Konto) und viem-Verbindungsbeispiele.

Wann begrenztes RPC-Polling zu wählen ist

Wählen Sie begrenztes JSON-RPC-Polling beim Betrieb von geplanten Workern, Daten-Pipelines oder auf Netzwerken, auf denen WebSocket nicht verfügbar ist:

  • Netzwerke ohne WebSocket: HyperEVM (hyperevm_mainnet) bietet derzeit JSON-RPC-HTTP-Zugriff, aber kein WebSocket (ws: false). Das Polling von eth_blockNumber und das Abfragen von eth_getLogs innerhalb unterstützter Blockbereiche ermöglicht die HyperEVM-Ereignisverarbeitung.
  • Gesteuertes Abfragetempo: Polling ermöglicht es Entwicklern und KI-Agenten, die Anfragehäufigkeit zu steuern, den Verbrauch von Compute Units gegenüber Limits pro Schlüssel zu verwalten und Socket-Abbrüche bei lang andauernden Aufgaben zu vermeiden. Limits pro Schlüssel — Standardwerte sind 400 CU/s und Burst 1,600 CU.
  • Blockbereichslimits: Authentifizierte eth_getLogs-Abfragen sind durch das max_logs_block_range des Netzwerks aus GET /v1/chains begrenzt. Das Überschreiten dieses Limits gibt den Fehlercode -32602 (logs_range_too_large) zurück. Teilen Sie breitere Intervalle in aufeinanderfolgende Abschnitte auf, die das max_logs_block_range des Zielnetzwerks nicht überschreiten.
ChainChain-Slugmax_logs_block_range (Blöcke)
Arbitrum Onearb_mainnet1,000
Basebase_mainnet1,000
BNB Smart Chainbsc_mainnet1,000
Ethereumeth_mainnet1,000
Ethereum Sepoliaeth_sepolia1,000
HyperEVMhyperevm_mainnet1,000
Polygonpolygon_mainnet1,000
Robinhood Chainrobinhood_mainnet1,000
Robinhood Chain Testnetrobinhood_testnet1,000

Siehe den HyperEVM-Log-Backfill-Leitfaden und den Leitfaden zum eth_getLogs-Blockbereich für Chunking-Algorithmen.

Für eine vollständige Workload-Checkliste und Selbsttests beginnen Sie mit Wie Sie einen RPC-Anbieter auswählen.

Wenn Sie einen Anbieter für Polling mit geringem Volumen wählen, vergleichen Sie Anbieter hinsichtlich Standard-RPC-Abrechnung und -Abdeckung. Vergleichen Sie nutzungsbasierte Abrechnung mit Test- und Abonnementkosten; Benachrichtigungs- und Backfill-Kosten nutzen andere Messungen als RPC-Leseoperationen.

Implementierungsleitfäden

WebSocket auf Robinhood Chain

Für Live-newHeads oder gefilterte logs auf Robinhood Chain folgen Sie dem Leitfaden zu WebSocket-Abonnements für Authentifizierung und Abonnementanfragen. Stellen Sie nach einem Verbindungsabbruch die Verbindung mit Backoff wieder her, abonnieren Sie erneut und füllen Sie verpasste Blöcke von einem gespeicherten Cursor aus mit eth_getLogs nach; deduplizieren Sie Logs anhand von (blockHash, transactionHash, logIndex).

Begrenztes Polling auf HyperEVM

Für HyperEVM (hyperevm_mainnet) folgen Sie dem HyperEVM-Log-Backfill-Leitfaden für begrenztes Polling und Wiederherstellung. Fragen Sie vom gespeicherten Cursor aus in Abschnitten innerhalb von max_logs_block_range ab, speichern Sie Ereignisse und Fortschritt nach erfolgreicher Verarbeitung gemeinsam dauerhaft und wiederholen Sie unvollständige Bereiche. Prüfen Sie die Chain-Kontinuität und scannen Sie überlappende Bereiche, um Reorgs zu behandeln.

Nächste Schritte

Zuletzt aktualisiert:

Auf dieser Seite