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 aangeradenmethod: <string>
- een string met de methode die moet worden aangeroepenparams: <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 verzoekspecificatieid: <number>
- overeenkomend met de verzoekidentificatieresult: <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 binnenHEALTH_CHECK_SLOT_DISTANCE
slots van de laatste bevestigde slot van het clusterbehind { distance }
: De node looptdistance
slots achter op de laatste bevestigde slot van het cluster waardistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: De node kan niet bepalen waar deze staat in relatie tot het cluster
Is this page helpful?