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 consigliato
  • method: <string> - una stringa contenente il metodo da invocare
  • params: <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 richiesta
  • id: <number> - corrispondente all'identificatore della richiesta
  • result: <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 è entro HEALTH_CHECK_SLOT_DISTANCE slot dall'ultimo slot confermato dal cluster
  • behind { distance }: Il nodo è indietro di distance slot rispetto all'ultimo slot confermato dal cluster dove distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: Il nodo non è in grado di determinare la sua posizione in relazione al cluster

Is this page helpful?

Indice

Modifica Pagina