Antworten>Erfahren Sie mehr über RPC und APIs>Was ist ein RPC- endpoint?
Was ist ein RPC- endpoint?
// Tags
RPC endpointWas ist RPC?JSON-RPC
TL;DR: Ein RPC- endpoint ist eine URL, über die Ihre Anwendung mit einem Blockchain-Knoten kommuniziert. RPC steht für „Remote Procedure Call“ – ein Protokoll, mit dem ein Programm über ein Netzwerk Daten oder Aktionen von einem anderen Programm anfordern kann. In der Blockchain dienen RPC-Endpunkte dazu, dass Wallets Guthaben abfragen, Dapps Smart Contracts ausführen und Entwickler On-Chain-Daten lesen und schreiben können. Jede Interaktion mit der Blockchain, die Sie durchführen – ob Sie sich dessen bewusst sind oder nicht – läuft über einen RPC- endpoint.
Die einfache Erklärung
Wenn Sie eine Wallet-App öffnen und Ihren ETH-Kontostand sehen, befindet sich Ihre Wallet nicht irgendwie „auf“ der Blockchain. Es handelt sich um eine ganz normale Anwendung, die auf Ihrem Smartphone oder in Ihrem Browser läuft und die Blockchain abfragen muss, wie hoch Ihr Kontostand ist. Um diese Abfrage durchzuführen, sendet sie eine Anfrage an einen RPC- endpoint. Der endpoint empfängt die Anfrage, der dahinterliegende Knoten sucht die Antwort heraus und sendet die Antwort zurück. Ihre Wallet zeigt dann das Ergebnis an.
Stellen Sie sich einen RPC- endpoint wie die Eingangstür eines Restaurants vor. In der Küche (dem Blockchain-Knoten) findet die eigentliche Arbeit statt: Transaktionen werden überprüft, der Status wird verwaltet und Blöcke werden erstellt. Aber man betritt die Küche nicht direkt. Man geht durch die Eingangstür (den RPC- endpoint), gibt seine Bestellung auf (die Anfrage) und ein Kellner (das RPC-Protokoll) serviert das Essen (die Antwort). Der RPC- endpoint ist der Zugangspunkt, über den die Funktionen des Knotens der Außenwelt zur Verfügung gestellt werden.
Technisch gesehen ist ein RPC- endpoint eine URL (wie z. B. https://your-endpoint.quiknode.pro/your-token/), an die Ihre Anwendung HTTP- oder WebSocket-Anfragen sendet, die gemäß der JSON-RPC-Spezifikation formatiert sind. JSON-RPC ist ein schlankes Protokoll, das festlegt, wie Anfragen und Antworten als JSON-Objekte strukturiert werden. Jede größere Blockchain verwendet eine Version dieses Standards. Das bedeutet: Sobald Sie verstanden haben, wie man einen RPC-Aufruf auf Ethereum durchführt, ist das Prinzip auf Solana, Polygon, Arbitrum, Base und Dutzenden anderer Blockchains ähnlich.
So funktionieren RPC-Aufrufe
Eine typische RPC-Interaktion folgt einem einfachen Anfrage-Antwort-Muster. Ihre Anwendung erstellt eine JSON-RPC-Anfrage, in der die aufzurufende Methode und die erforderlichen Parameter angegeben sind, und sendet diese anschließend per HTTP-POST an die URL endpoint . Der Knoten verarbeitet die Anfrage, führt die entsprechende Logik aus und gibt eine JSON-Antwort mit dem Ergebnis zurück.
Um beispielsweise die aktuelle Blocknummer in einer EVM-Chain abzurufen, sendet Ihre Anwendung eine Anfrage mit der Methode „eth_blockNumber“ und einem leeren Parameter-Array. Der Knoten antwortet mit der aktuellen Blocknummer im Hexadezimalformat. Um den ETH-Kontostand eines Kontos zu überprüfen, rufen Sie „eth_getBalance“ mit der Wallet-Adresse und einem Blockparameter auf (z. B. „latest“ für den aktuellen Block). Um eine Transaktion zu senden, rufen Sie „eth_sendRawTransaction“ mit den signierten Transaktionsdaten auf.
Diese Standard-JSON-RPC-Methoden sind in den Spezifikationen der jeweiligen Blockchain definiert. Die JSON-RPC-API von Ethereum umfasst Methoden zum Auslesen von Blockdaten, zum Abfragen des Kontostatus und des Vertragsstatus, zur Schätzung des Gasverbrauchs, zum Absenden von Transaktionen, zum Abonnieren von Ereignissen über WebSocket und vieles mehr. Solana verwendet einen ähnlichen, aber eigenständigen Satz von RPC-Methoden, die für die kontobasierte Architektur der Plattform optimiert sind. Jede Blockchain verfügt über eine eigene API-Oberfläche, doch das zugrunde liegende Kommunikationsmuster über RPC-Endpunkte bleibt einheitlich.
WebSocket-Verbindungen sind eine Erweiterung des grundlegenden RPC-Musters, die eine bidirektionale Kommunikation in Echtzeit ermöglichen. Anstatt dass Ihre Anwendung den Knoten wiederholt auf Aktualisierungen abfragt (was ineffizient und langsam ist), ermöglicht eine WebSocket-Verbindung dem Knoten, neue Daten an Ihre
Anwendung in Echtzeit. Dies ist unerlässlich für Anwendungsfälle wie die Überwachung neu erzeugter Blöcke, das Abhören bestimmter Smart-Contract-Ereignisse in Echtzeit und den Empfang von Benachrichtigungen über Transaktionsbestätigungen.
Öffentliche vs. private RPC-Endpunkte
Öffentliche RPC-Endpunkte sind kostenlose, offene URLs, die von Blockchain-Stiftungen oder Community-Projekten verwaltet werden. Jeder kann sich ohne Authentifizierung mit ihnen verbinden. Sie eignen sich für schnelle Tests, die Erstellung von Prototypen und zu Bildungszwecken, sind jedoch nicht für Produktionsanwendungen geeignet. Öffentliche Endpunkte unterliegen starken Ratenbeschränkungen (d. h., sie begrenzen die Anzahl der Anfragen, die Sie pro Sekunde senden können), sind häufig durch Tausende gleichzeitiger Nutzer überlastet und bieten keine Garantien hinsichtlich Verfügbarkeit, Latenz oder Datenaktualität. Wenn Ihre Anwendung von einem öffentlichen endpoint abhängt und dieser während eines Traffic-Anstiegs ausfällt, fällt Ihre App ebenfalls aus.
Private RPC-Endpunkte sind dedizierte Verbindungen, die in der Regel von einem Infrastrukturdienst bereitgestellt werden und für Ihre Anwendung reserviert sind. Sie bieten schnellere Antwortzeiten, höhere Ratenbegrenzungen, konsistente Leistung und durch SLAs abgesicherte Verfügbarkeitsgarantien. Private Endpunkte umfassen häufig zusätzliche Funktionen wie tokenbasierte Authentifizierung, IP-Whitelisting, Analyse-Dashboards und Zugriff auf erweiterte APIs, die über die Standard-JSON-RPC-Spezifikation hinausgehen.
Für jede Anwendung, die mit echten Nutzern, echtem Geld oder Echtzeitdaten arbeitet, sind private RPC-Endpunkte eine Grundvoraussetzung und kein optionales Extra. Der Unterschied zwischen einem öffentlichen und einem privaten endpoint im Produktivbetrieb entspricht dem Unterschied zwischen einem gemeinsam genutzten öffentlichen WLAN-Netzwerk und einer dedizierten Glasfaserleitung. Beide verbinden Sie technisch gesehen mit dem Internet, aber nur eine davon ist für den Geschäftsbetrieb geeignet.
Über die Grundlagen von RPC hinaus
Zwar decken die Standard-JSON-RPC-Methoden die Grundlagen des Lesens und Schreibens von Blockchain-Daten ab, doch die meisten Produktionsanwendungen benötigen mehr. Erweiterte APIs ergänzen die grundlegende RPC-Spezifikation um übergeordnete Methoden, die Daten aggregieren und die Anzahl der von Ihrer Anwendung erforderlichen Aufrufe reduzieren. Anstatt Dutzende einzelner Aufrufe durchzuführen, um die Token-Bestände einer Wallet zu rekonstruieren, kann eine erweiterte API alle Token-Guthaben in einer einzigen Anfrage zurückgeben.
Streaming- und ereignisgesteuerte Architekturen stellen die nächste Entwicklungsstufe jenseits des Request-Response-RPC dar. Anstatt dass Ihre Anwendung ständig einen RPC- endpoint nach neuen Blöcken oder Ereignissen abfragt, übermittelt ein Streaming-Dienst die Daten an Ihre Anwendung, sobald sie verfügbar sind. Dies reduziert die Latenz, vermeidet unnötige Anfragen und vereinfacht Ihre Backend-Architektur.
gRPC ist ein weiteres Protokoll, das auf bestimmten Blockchains neben oder anstelle von JSON-RPC verwendet wird. Solana's Yellowstone gRPC bietet beispielsweise eine Datenübertragung mit extrem geringer Latenz, die für hochfrequente Anwendungsfälle wie Trading-Bots und Echtzeitanalysen optimiert ist. gRPC verwendet anstelle von JSON „Protocol Buffers“, die kompakter sind und sich schneller serialisieren lassen, wodurch es sich ideal für Anwendungen eignet, bei denen jede Millisekunde Latenz zählt.
Wie „ Quicknode “ ins Bild passt
QuicknodeDie Core-API bietet RPC-Endpunkte in Produktionsqualität für über 80 Blockchain-Netzwerke. Wenn Sie unter Quicknode einen „ endpoint “ erstellen, erhalten Sie eine HTTPS- und eine WebSocket-URL, über die Ihre Anwendung mit einer global verteilten, leistungsstarken Knoteninfrastruktur verbunden wird – mit einer SLA-Verfügbarkeit von 99,99 % und Antwortzeiten, die im Durchschnitt 2,5-mal schneller sind als bei Mitbewerbern. Jeder „ endpoint “ umfasst den Zugriff auf vollständige Daten und Archivdaten, Echtzeit-Analysen, tokenbasierte Authentifizierung sowie Sicherheitsfunktionen wie Referrer-Whitelisting und Domain-Maskierung.
Über das Standard-RPC hinaus erweitert „ Quicknode “ die Entwicklererfahrung durch Streams die Bereitstellung von Blockchain-Daten in Echtzeit und aus der Vergangenheit, Yellowstone gRPC für ultraschnelle „ Solana “-Daten, ein Ökosystem aus Marketplace-Add-ons für DeFi-Daten, NFT-APIs und Sicherheitstools sowie die „ Quicknode “SDK für eine optimierte Integration in JavaScript und TypeScript. Ganz gleich, ob Sie eine einzelne „ endpoint “ für ein Wochenendprojekt oder eine Multi-Chain- und Multi-Region-Infrastruktur für eine Unternehmensplattform benötigen – „ Quicknode “ bietet die RPC-Schicht, auf der alles andere aufbaut.
Was ist der Unterschied zwischen einem RPC- endpoint n und einem Knoten?
Die Begriffe sind verwandt, aber nicht identisch. Ein Knoten ist die Software, die eine Kopie der Blockchain verwaltet, Transaktionen validiert und den Status verfolgt. Ein RPC- endpoint ist die Netzwerkadresse, mit der Sie eine Verbindung herstellen, um mit diesem Knoten zu kommunizieren. Ein Knoten kann hinter vielen Endpunkten liegen, und ein endpoint kann Anfragen zur Redundanz über eine Gruppe von Knoten mit Lastenausgleich weiterleiten. Wenn Sie einen Managed-Provider nutzen, interagieren Sie mit dem endpoint und müssen den Knoten niemals selbst betreiben. Einen tieferen Einblick in die Abläufe hinter der URL erhalten Sie unter „Was ist ein Blockchain-Knoten?“, und Informationen zum gesamten Lebenszyklus einer Anfrage finden Sie unter „So funktionieren RPC-Anfragen“.
Welchen RPC-Transport sollten Sie verwenden: HTTP, WebSocket oder „ gRPC “?
RPC-Endpunkte unterstützen mehrere Transportprotokolle, und die richtige Wahl hängt davon ab, ob Sie einmalige Abfragen durchführen oder einen kontinuierlichen Datenfeed nutzen. HTTP ist der universelle Standard für Request-Response-Aufrufe. WebSocket hält eine dauerhafte Verbindung offen, sodass der Knoten Ihnen Aktualisierungen zusenden kann. „ gRPC “ bietet die geringste Latenz für hochfrequente Workloads auf unterstützten Blockchains. Die folgende Tabelle bietet einen Überblick über die drei Optionen.
Es erfolgt kein Server-Push, daher müssen Sie selbst nach Aktualisierungen abfragen.
WebSocket
Dauerhaft, bidirektional
Abonnements für neue Blöcke, Logs und ausstehende Transaktionen
Verbindungen müssen aufrechterhalten und bei einem Verbindungsabbruch wiederhergestellt werden
gRPC
Persistenz und Streaming mit Protocol Buffers
Feeds mit extrem geringer Latenz, wie beispielsweise Trading-Bots und Analysetools
Kompliziertere Einrichtung und beschränkt auf Ketten, die diese Funktion unterstützen
Wenn Ihre Anwendung einen kontinuierlichen Datenstrom anstelle wiederholter Abfragen benötigt, kann eine verwaltete Streaming-Schicht wie Quicknode Streams Blöcke, Bestätigungen und Traces direkt an Ihr Backend übermitteln, ohne dass Sie sich um den Lebenszyklus der Sockets kümmern müssen.
Was verursacht Latenz und Ratenbegrenzung bei RPC- endpoint ?
Zwei Faktoren beeinflussen am häufigsten die Erfahrung bei der Nutzung eines RPC- endpoint s: wie schnell er reagiert und wie viele Anfragen er zulässt. Die Latenz hängt von der geografischen Entfernung zum Knoten, der Komplexität der aufgerufenen Methode und der Auslastung der zugrunde liegenden Infrastruktur ab. Ratenbegrenzungen gibt es, weil jeder Knoten nur über begrenzte Kapazitäten verfügt; daher begrenzen Anbieter die Anzahl der Anfragen pro Sekunde, um gemeinsam genutzte Ressourcen zu schützen. Wenn Sie beide Faktoren verstehen, können Sie die Größe eines „ endpoint “ richtig dimensionieren, bevor der Datenverkehr zunimmt. Erfahren Sie mehr unter „Was ist RPC-Latenz? “ und „Was ist RPC-Ratenbegrenzung?“.
Wann sollte man Indexierung anstelle von Raw-RPC verwenden?
Raw RPC eignet sich ideal zum Auslesen des aktuellen Zustands und zum Absenden von Transaktionen, hat jedoch Schwierigkeiten mit analytischen Abfragen wie „alle Überweisungen, die diese Wallet im letzten Jahr getätigt hat“. Die Beantwortung dieser Frage allein mit RPC würde Tausende aufeinanderfolgender Aufrufe erfordern. Die Indizierung löst dieses Problem durch die Vorverarbeitung der On-Chain-Daten zu einer abfragbaren Datenbank, sodass historische und aggregierte Abfragen mit einer einzigen Abfrage beantwortet werden können. Vergleichen Sie die beiden Ansätze in „RPC vs. Indizierung“ und erfahren Sie, warum umfangreiche Abfragen bei der Auswertung von Blockchain-Daten so schwierig sind.
Häufig gestellte Fragen
Wofür steht die Abkürzung RPC?
RPC steht für „Remote Procedure Call“. Es handelt sich um ein Protokoll, mit dem ein Programm über ein Netzwerk Daten anfordern oder eine Aktion in einem anderen Programm auslösen kann, so als würde es eine lokale Funktion aufrufen. In der Blockchain nutzt Ihre Anwendung RPC, um einen Knoten aufzufordern, den Status auszulesen oder eine Transaktion zu übermitteln.
Ist ein RPC- endpoint us dasselbe wie eine API?
Ein RPC- endpoint ist eine spezielle Art von API. Es stellt die Funktionen eines Blockchain-Knotens über den JSON-RPC-Standard unter einer einzigen URL bereit. Viele Anbieter bauen erweiterte REST- oder übergeordnete APIs auf die grundlegende RPC-Schnittstelle auf, doch die Kernschnittstelle „ endpoint “ ist es, die das JSON-RPC-Protokoll verwendet, das der Knoten versteht.
Sind frei zugängliche öffentliche RPC-Endpunkte für den Einsatz in der Produktion sicher?
Sie eignen sich gut zum Testen und Lernen, sind jedoch nicht für den Produktiveinsatz konzipiert. Öffentliche Endpunkte unterliegen starken Ratenbeschränkungen, sind häufig überlastet und bieten keine Garantien hinsichtlich Verfügbarkeit oder Latenz. Wenn ein öffentlicher endpoint bei einem Traffic-Anstieg an Leistung einbüßt, leidet auch die Leistung Ihrer Anwendung darunter. Aus diesem Grund setzen Produktionsanwendungen auf dedizierte private Endpunkte.
Kann ein RPC- endpoint -Verbindung zu mehreren Blockchains herstellen?
Eine einzelne URL vom Typ „ endpoint “ ist in der Regel einem Netzwerk zugeordnet, wie beispielsweise Ethereum ,mainnet oder Solana ,mainnet. Um mehrere Ketten zu unterstützen, erstellen Sie separate Endpunkte, einen pro Netzwerk. Da die meisten Ketten das JSON-RPC-Muster gemeinsam nutzen, lässt sich der Code, den Sie für einen Endpunkt vom Typ „ endpoint “ schreiben, in der Regel mit geringfügigen Änderungen auf andere übertragen.
Wie werde ich über On-Chain-Ereignisse benachrichtigt, ohne ständig Abfragen durchführen zu müssen?
Verwenden Sie einen Push-basierten Mechanismus anstelle von Polling. WebSocket-Abonnements und ereignisgesteuerte Dienste wie Quicknode Webhooks benachrichtigen Ihr Backend sofort, sobald ein relevanter Block oder ein Ereignis auftritt, was die Latenz verringert und unnötige Anfragen vermeidet. Schritt-für-Schritt-Anleitungen zu gängigen Mustern finden Sie im „Builders Guide “.