Metodi HTTP RPC di Solana
I nodi Solana accettano richieste HTTP utilizzando la specifica JSON-RPC 2.0.
Per le applicazioni JavaScript, utilizza la libreria @solana/web3.js come interfaccia conveniente per i metodi RPC per interagire con un nodo Solana. Per una connessione PubSub a un nodo Solana, utilizza API Websocket.
Endpoint HTTP RPC
Porta predefinita: 8899
Formattazione delle richieste
Per effettuare una richiesta JSON-RPC, invia una richiesta HTTP POST con
un'intestazione Content-Type: application/json
. I dati della richiesta JSON
dovrebbero contenere 4 campi:
jsonrpc: <string>
- impostato su"2.0"
id: <string | number | null>
- un identificatore unico per la richiesta, generato dal client. Tipicamente una stringa o un numero, sebbene null sia tecnicamente consentito ma non consigliatomethod: <string>
- una stringa contenente il metodo da invocareparams: <array>
- un array JSON di valori di parametri ordinati
Esempio utilizzando 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"]}'
L'output della risposta sarà un oggetto JSON con i seguenti campi:
jsonrpc: <string>
- corrispondente alla specifica della richiestaid: <number>
- corrispondente all'identificatore della richiestaresult: <array|number|object|string>
- dati richiesti o conferma di successo
Le richieste possono essere inviate in batch inviando un array di oggetti di richiesta JSON-RPC come dati per un singolo POST.
Esempio di richiesta
Il parametro di commitment dovrebbe essere incluso come ultimo elemento
nell'array params
:
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"}]}'
Definizioni
- Hash: Un hash SHA-256 di un blocco di dati.
- Pubkey: La chiave pubblica di una coppia di chiavi Ed25519.
- Transaction: Un elenco di istruzioni Solana firmate da una keypair client per autorizzare tali azioni.
- Signature: Una firma Ed25519 dei dati del payload della transazione, incluse le istruzioni. Questo può essere utilizzato per identificare le transazioni.
Controllo di salute
Sebbene non sia un'API JSON RPC, una richiesta GET /health
all'endpoint HTTP
RPC fornisce un meccanismo di controllo dello stato di salute utilizzabile da
load balancer o altre infrastrutture di rete. Questa richiesta restituirà sempre
una risposta HTTP 200 OK con un corpo di "ok", "behind" o "unknown":
ok
: Il nodo è entroHEALTH_CHECK_SLOT_DISTANCE
slot dall'ultimo slot confermato dal clusterbehind { distance }
: Il nodo è indietro didistance
slot rispetto all'ultimo slot confermato dal cluster dovedistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Il nodo non è in grado di determinare la sua posizione in relazione al cluster
Is this page helpful?