Solana RPC HTTP-methoden

Solana-nodes accepteren HTTP-verzoeken volgens de JSON-RPC 2.0 specificatie.

Voor JavaScript-toepassingen, gebruik de @solana/web3.js bibliotheek als een handige interface voor de RPC-methoden om te communiceren met een Solana-node. Voor een PubSub-verbinding met een Solana-node, gebruik de Websocket API.

RPC HTTP-eindpunt

Standaard poort: 8899

Verzoekformattering

Om een JSON-RPC-verzoek te doen, stuur een HTTP POST-verzoek met een Content-Type: application/json header. De JSON-verzoekgegevens moeten 4 velden bevatten:

  • jsonrpc: <string> - ingesteld op "2.0"
  • id: <string | number | null> - een unieke identificatie voor het verzoek, gegenereerd door de client. Meestal een string of nummer, hoewel null technisch gezien is toegestaan maar niet wordt aangeraden
  • method: <string> - een string met de methode die moet worden aangeroepen
  • params: <array> - een JSON-array van geordende parameterwaarden

Voorbeeld met curl:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'

De responsuitvoer zal een JSON-object zijn met de volgende velden:

  • jsonrpc: <string> - overeenkomend met de verzoekspecificatie
  • id: <number> - overeenkomend met de verzoekidentificatie
  • result: <array|number|object|string> - gevraagde gegevens of bevestiging van succes

Verzoeken kunnen in batches worden verzonden door een array van JSON-RPC-verzoekobjecten te sturen als de gegevens voor een enkele POST.

Voorbeeld verzoek

De commitment-parameter moet worden opgenomen als het laatste element in de params array:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'

Definities

  • Hash: Een SHA-256 hash van een stuk data.
  • Pubkey: De publieke sleutel van een Ed25519 sleutelpaar.
  • Transactie: Een lijst met Solana-instructies ondertekend door een client keypair om die acties te autoriseren.
  • Handtekening: Een Ed25519-handtekening van de payload-gegevens van een transactie, inclusief instructies. Dit kan worden gebruikt om transacties te identificeren.

Gezondheidscontrole

Hoewel het geen JSON RPC API is, biedt een GET /health op het RPC HTTP-eindpunt een gezondheidscontrolemechanisme voor gebruik door load balancers of andere netwerk infrastructuur. Dit verzoek zal altijd een HTTP 200 OK-respons retourneren met een body van "ok", "behind" of "unknown":

  • ok: De node bevindt zich binnen HEALTH_CHECK_SLOT_DISTANCE slots van de laatste bevestigde slot van het cluster
  • behind { distance }: De node loopt distance slots achter op de laatste bevestigde slot van het cluster waar distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: De node kan niet bepalen waar deze staat in relatie tot het cluster

Is this page helpful?

Inhoudsopgave

Pagina Bewerken