Antwoorden>Meer informatie over RPC en API's>Wat is een RPC endpoint?
Wat is een RPC endpoint?
// Tags
RPC endpointWat is RPC?JSON-RPC
TL;DR: Een endpoint een URL die je applicatie gebruikt om te communiceren met een blockchain-node. RPC staat voor Remote Procedure Call, een protocol waarmee het ene programma via een netwerk gegevens of acties kan opvragen bij een ander programma. In de blockchain worden RPC-eindpunten gebruikt door wallets om saldi te controleren, door dapps om slimme contracten uit te voeren en door ontwikkelaars om on-chain gegevens te lezen en te schrijven. Elke interactie die je met de blockchain hebt, of je je daar nu bewust van bent of niet, verloopt via een endpoint.
De eenvoudige uitleg
Wanneer je een wallet-app opent en je ETH-saldo ziet, staat je wallet niet op de een of andere manier ‘op’ de blockchain. Het is een gewone applicatie die op je telefoon of in je browser draait en die aan de blockchain moet vragen wat je saldo is. Om die vraag te stellen, stuurt de app een verzoek naar een endpoint. Het endpoint het verzoek, het knooppunt erachter zoekt het antwoord op en stuurt het antwoord terug. Je wallet geeft vervolgens het resultaat weer.
Zie een endpoint de voordeur van een restaurant. In de keuken (het blockchain-knooppunt) vindt het eigenlijke werk plaats: transacties verifiëren, de status bijhouden, blokken genereren. Maar je loopt niet rechtstreeks de keuken binnen. Je komt binnen via de voordeur (het endpoint), plaatst je bestelling (je verzoek) en een ober (het RPC-protocol) brengt je eten (het antwoord). Het endpoint het toegangspunt dat de mogelijkheden van het knooppunt beschikbaar maakt voor de buitenwereld.
Technisch gezien endpoint een endpoint een URL (zoalsendpoint) waarnaar je applicatie HTTP- of WebSocket-verzoeken verstuurt die zijn opgemaakt volgens de JSON-RPC-specificatie. JSON-RPC is een lichtgewicht protocol dat bepaalt hoe verzoeken en antwoorden als JSON-objecten moeten worden gestructureerd. Elke grote blockchain maakt gebruik van een of andere versie van deze standaard, wat betekent dat als je eenmaal begrijpt hoe je een RPC-aanroep op Ethereum uitvoert, het patroon vergelijkbaar is op Solana, Polygon, Arbitrum, Base en tientallen andere blockchains.
Hoe RPC-aanroepen werken
Een typische RPC-interactie verloopt volgens een eenvoudig verzoek-antwoordpatroon. Je applicatie stelt een JSON-RPC-verzoek op waarin de methode die je wilt aanroepen en de benodigde parameters worden gespecificeerd, en verstuurt dit vervolgens via een HTTP POST-verzoek naar de endpoint . Het knooppunt verwerkt het verzoek, voert de bijbehorende logica uit en retourneert een JSON-antwoord met het resultaat.
Om bijvoorbeeld het laatste bloknummer op een EVM-keten op te vragen, stuurt je applicatie een verzoek met de methode "eth_blockNumber" en een lege parameterarray. Het knooppunt antwoordt met het huidige bloknummer in hexadecimale notatie. Om het ETH-saldo van een account te controleren, roep je "eth_getBalance" aan met het walletadres en een blokparameter (zoals "latest" voor het huidige blok). Om een transactie te verzenden, roep je "eth_sendRawTransaction" aan met de ondertekende transactiegegevens.
Deze standaard JSON-RPC-methoden worden bepaald door de specificaties van elke blockchain. De JSON-RPC-API Ethereum bevat methoden voor het ophalen van blokgegevens, het opvragen van de status van accounts en contracten, het schatten van gas, het indienen van transacties, het abonneren op gebeurtenissen via WebSocket en nog veel meer. Solana een vergelijkbare maar toch eigen set RPC-methoden die zijn geoptimaliseerd voor de op accounts gebaseerde architectuur van het netwerk. Elke blockchain heeft zijn eigen API-interface, maar het onderliggende communicatiepatroon via RPC-eindpunten blijft consistent.
WebSocket-verbindingen vormen een uitbreiding op het standaard RPC-patroon en maken realtime, bidirectionele communicatie mogelijk. In plaats van dat je applicatie herhaaldelijk bij het knooppunt vraagt of er updates zijn (wat inefficiënt en traag is), zorgt een WebSocket-verbinding ervoor dat het knooppunt nieuwe gegevens naar je
applicatie terwijl deze actief is. Dit is essentieel voor toepassingen zoals het volgen van nieuwe blokken op het moment dat ze worden geproduceerd, het in realtime volgen van specifieke smart contract-gebeurtenissen en het ontvangen van meldingen over transactiebevestigingen.
Openbare versus privé-RPC-eindpunten
Openbare RPC-eindpunten zijn gratis, open URL’s die worden onderhouden door blockchain-stichtingen of gemeenschapsprojecten. Iedereen kan er zonder authenticatie verbinding mee maken. Ze zijn handig voor snelle tests, prototyping en educatieve doeleinden, maar zijn niet geschikt voor productieomgevingen. Openbare eindpunten hebben strenge verwerkingslimieten (wat betekent dat er een beperking geldt op het aantal verzoeken dat je per seconde kunt versturen), raken vaak overbelast door duizenden gelijktijdige gebruikers en bieden geen garanties met betrekking tot uptime, latentie of de actualiteit van gegevens. Als uw applicatie afhankelijk is van een openbaar endpoint dit uitvalt tijdens een piek in het verkeer, valt uw app mee uit.
Privé-RPC-eindpunten zijn speciale verbindingen, die doorgaans door een infrastructuurdienst worden aangeboden en die exclusief voor uw toepassing zijn gereserveerd. Ze bieden snellere responstijden, hogere verwerkingslimieten, consistente prestaties en uptime-garanties die door SLA’s worden ondersteund. Privé-eindpunten beschikken vaak over extra functies, zoals authenticatie op basis van tokens, IP-whitelisting, analysedashboards en toegang tot geavanceerde API’s die verder gaan dan de standaard JSON-RPC-specificatie.
Voor elke applicatie die te maken heeft met echte gebruikers, echt geld of realtime gegevens, zijn privé-RPC-eindpunten een basisvereiste, geen extraatje. Het verschil tussen een openbaar en endpoint een productieomgeving is hetzelfde als het verschil tussen een gedeeld openbaar wifi-netwerk en een eigen glasvezelverbinding. Technisch gezien verbinden beide je met het internet, maar slechts één ervan is geschikt voor het runnen van een bedrijf.
Meer dan alleen basis-RPC
Hoewel standaard JSON-RPC-methoden de basisbeginselen van het lezen en schrijven van blockchaingegevens dekken, hebben de meeste productieapplicaties meer nodig. Uitgebreide API’s breiden de basis-RPC-specificatie uit met methoden op een hoger niveau die gegevens samenvoegen en het aantal verzoeken dat je applicatie moet doen, verminderen. In plaats van tientallen afzonderlijke verzoeken te doen om de tokenbalansen van een wallet te reconstrueren, kan een uitgebreide API alle tokensaldi in één enkel verzoek retourneren.
Streaming- en gebeurtenisgestuurde architecturen vormen de volgende stap in de ontwikkeling na request-response RPC. In plaats van dat je applicatie voortdurend een endpoint controleert endpoint nieuwe blokken of gebeurtenissen, stuurt een streamingdienst gegevens naar je applicatie zodra deze beschikbaar komen. Dit vermindert de latentie, voorkomt onnodige verzoeken en vereenvoudigt je backend-architectuur.
gRPC een ander protocol dat op bepaalde blockchains naast of in plaats van JSON-RPC wordt gebruikt. Solana Yellowstone gRPC biedt bijvoorbeeld gegevensoverdracht met een uiterst lage latentie, geoptimaliseerd voor toepassingen met een hoge frequentie, zoals handelsbots en realtime analyses. gRPC Protocol Buffers in plaats van JSON; deze zijn compacter en sneller te serialiseren, waardoor het protocol ideaal is voor toepassingen waarbij elke milliseconde latentie telt.
Quicknode van Quicknode
De Core API Quicknode biedt RPC-eindpunten van productiekwaliteit voor meer dan 80 blockchain-netwerken. Wanneer u een endpoint aanmaakt endpoint Quicknode, ontvangt u een HTTPS- en WebSocket-URL waarmee uw applicatie verbinding maakt met een wereldwijd verspreide, krachtige node-infrastructuur met een SLA van 99,99% uptime en responstijden die gemiddeld 2,5 keer sneller zijn dan die van concurrenten. Elk endpoint toegang tot volledige en gearchiveerde gegevens, realtime analyses, op tokens gebaseerde authenticatie en beveiligingsfuncties zoals het op de witte lijst plaatsen van verwijzers en domeinmaskering.
Naast standaard RPC Quicknode de ontwikkelaarservaring Quicknode met Streams voor de levering van realtime en historische blockchain-gegevens, Yellowstone gRPC voor ultrasnelle Solana , een ecosysteem van Marketplace-add-ons voor DeFi-gegevens, NFT-API's en beveiligingstools, en de Quicknode SDK gestroomlijnde integratie in JavaScript en TypeScript. Of u nu één endpoint nodig hebt endpoint een weekendproject of een multi-chain, multi-regionale infrastructuur voor een bedrijfsplatform, Quicknode de RPC-laag waarop al het andere is gebaseerd.
Wat is het verschil tussen een RPC endpoint een knooppunt?
De termen zijn verwant, maar niet identiek. Een node is de software die een kopie van de blockchain bijhoudt, transacties valideert en de status bijhoudt. Een endpoint het netwerkadres waarmee je verbinding maakt om met die node te communiceren. Eén node kan achter meerdere eindpunten staan, en één endpoint verzoeken doorsturen naar een reeks nodes met load balancing, ter wille van de redundantie. Wanneer je gebruikmaakt van een beheerde provider, communiceer je met het endpoint hoef je de node nooit zelf te beheren. Voor een dieper inzicht in wat er achter de URL gebeurt, zie Wat is een blockchain-node, en voor de volledige levenscyclus van een verzoek, zie Hoe werken RPC-verzoeken.
Welk RPC-transport moet je gebruiken: HTTP, WebSocket of gRPC?
RPC-eindpunten ondersteunen meer dan één transportprotocol, en de juiste keuze hangt af van de vraag of je eenmalige query’s uitvoert of een continue gegevensstroom gebruikt. HTTP is de universele standaard voor verzoek-antwoord-oproepen. WebSocket houdt een permanente verbinding open, zodat het knooppunt updates naar je kan pushen. gRPC de laagste latentie voor werkbelastingen met hoge frequentie op ondersteunde blockchains. In de onderstaande tabel worden de drie opties in één oogopslag vergeleken.
Er vindt geen server-push plaats, dus je moet zelf controleren of er updates zijn
WebSocket
Duurzaam, bidirectioneel
Abonnementen op nieuwe blokken, logbestanden en transacties in afwachting van verwerking
Verbindingen moeten in stand worden gehouden en bij een verbroken verbinding opnieuw tot stand worden gebracht
gRPC
Persistent, streaming met Protocol Buffers
Feeds met ultralage latentie, zoals handelsbots en analyseprogramma’s
Complexere installatie en beperkt tot winkelketens die dit ondersteunen
Als je applicatie een continue gegevensstroom nodig heeft in plaats van herhaaldelijk te pollen, dan is een beheerde streaminglaag zoals Quicknode Streams kan blokken, ontvangstbevestigingen en transactietraces rechtstreeks naar je backend verzenden, zonder dat je de levenscyclus van sockets hoeft te beheren.
Wat zijn de oorzaken van endpoint RPC endpoint en snelheidsbeperking?
Twee factoren zijn meestal bepalend voor de gebruikerservaring bij het gebruik van een endpoint: hoe snel het reageert en hoeveel verzoeken het toestaat. De latentie wordt bepaald door de geografische afstand tot het knooppunt, de complexiteit van de methode die u aanroept en hoe druk de onderliggende infrastructuur is. Er gelden verzoeklimieten omdat elk knooppunt een beperkte capaciteit heeft; providers stellen daarom een maximum in voor het aantal verzoeken per seconde om gedeelde bronnen te beschermen. Als u beide factoren begrijpt, kunt u een endpoint dimensioneren voordat het verkeer toeneemt. Lees meer over wat RPC-latentie is en wat RPC-verzoeklimieten zijn.
Wanneer moet je indexering gebruiken in plaats van ‘raw RPC’?
Raw RPC is ideaal voor het opvragen van de huidige status en het indienen van transacties, maar heeft moeite met analytische vragen zoals „alle overboekingen die deze wallet het afgelopen jaar heeft uitgevoerd“. Om dat alleen met RPC te beantwoorden, zijn duizenden opeenvolgende aanroepen nodig. Indexering lost dit op door on-chain gegevens vooraf te verwerken tot een doorzoekbare database, zodat historische en geaggregeerde zoekopdrachten in één enkele query worden teruggegeven. Vergelijk de twee benaderingen in RPC versus indexering en ontdek waarom grote zoekopdrachten zo moeilijk zijn bij het doorzoeken van blockchain-gegevens.
Veelgestelde vragen
Waar staat RPC voor?
RPC staat voor Remote Procedure Call. Het is een protocol waarmee een programma via een netwerk gegevens kan opvragen of een actie in een ander programma kan activeren, alsof het een lokale functie aanroept. In blockchain gebruikt je applicatie RPC om een node te vragen de status te lezen of een transactie in te dienen.
Is een RPC endpoint als een API?
Een endpoint een specifiek type API. Het stelt de functionaliteit van een blockchain-node via de JSON-RPC-standaard beschikbaar via één enkele URL. Veel aanbieders bouwen uitgebreide REST-API’s of API’s op een hoger niveau in bovenop de basis-RPC-interface, maar het endpoint degene die het JSON-RPC-protocol hanteert dat de node begrijpt.
Zijn gratis openbare RPC-eindpunten veilig voor gebruik in een productieomgeving?
Ze zijn prima geschikt voor testen en leerdoeleinden, maar ze zijn niet bedoeld voor productieomgevingen. Openbare eindpunten hebben strenge snelheidsbeperkingen, raken vaak overbelast en bieden geen garanties wat betreft beschikbaarheid of latentie. Als de prestaties van een openbaar endpoint tijdens een piek in het verkeer, gaan de prestaties van je applicatie mee achteruit. Daarom maken productie-apps gebruik van speciale, privé-eindpunten.
Kan één endpoint met meerdere blockchains?
Een enkele endpoint verwijst doorgaans naar één netwerk, zoalsmainnet mainnet. Om meerdere ketens te ondersteunen, maak je afzonderlijke eindpunten aan, één per netwerk. Aangezien de meeste ketens het JSON-RPC-patroon volgen, kun je de code die je voor één endpoint schrijft, endpoint met slechts enkele kleine aanpassingen ook voor andere eindpunten gebruiken.
Hoe word ik op de hoogte gehouden van gebeurtenissen op de blockchain zonder voortdurend te hoeven pollen?
Gebruik een push-mechanisme in plaats van polling. WebSocket-abonnementen en gebeurtenisgestuurde diensten zoals Quicknode Webhooks sturen een melding naar je backend zodra er een relevant blok of een relevante gebeurtenis plaatsvindt, waardoor de latentie wordt verlaagd en onnodige verzoeken worden voorkomen. Voor stapsgewijze handleidingen kun je in de Builders Guide de gangbare patronen doornemen.