Méthodes HTTP RPC de Solana

Les nœuds Solana acceptent les requêtes HTTP en utilisant la spécification JSON-RPC 2.0.

Pour les applications JavaScript, utilisez la bibliothèque @solana/web3.js comme interface pratique pour les méthodes RPC afin d'interagir avec un nœud Solana. Pour une connexion PubSub à un nœud Solana, utilisez l'API Websocket.

Point de terminaison HTTP RPC

Port par défaut : 8899

Formatage des requêtes

Pour effectuer une requête JSON-RPC, envoyez une requête HTTP POST avec un en-tête Content-Type: application/json. Les données de la requête JSON doivent contenir 4 champs :

  • jsonrpc: <string> - défini sur "2.0"
  • id: <string | number | null> - un identifiant unique pour la requête, généré par le client. Généralement une chaîne ou un nombre, bien que null soit techniquement autorisé mais déconseillé
  • method: <string> - une chaîne contenant la méthode à invoquer
  • params: <array> - un tableau JSON de valeurs de paramètres ordonnées

Exemple utilisant 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"
]
}
'

La sortie de la réponse sera un objet JSON avec les champs suivants :

  • jsonrpc: <string> - correspondant à la spécification de la requête
  • id: <number> - correspondant à l'identifiant de la requête
  • result: <array|number|object|string> - données demandées ou confirmation de succès

Les requêtes peuvent être envoyées par lots en envoyant un tableau d'objets de requête JSON-RPC comme données pour un seul POST.

Exemple de requête

Le paramètre d'engagement doit être inclus comme dernier élément dans le tableau 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"
}
]
}
'

Définitions

  • Hash : Un hachage SHA-256 d'un bloc de données.
  • Pubkey : La clé publique d'une paire de clés Ed25519.
  • Transaction : Une liste d'instructions Solana signées par une paire de clés client pour autoriser ces actions.
  • Signature : Une signature Ed25519 des données de charge utile de la transaction, y compris les instructions. Cela peut être utilisé pour identifier les transactions.

Vérification de l'état

Bien qu'il ne s'agisse pas d'une API JSON RPC, une requête GET /health au point de terminaison HTTP RPC fournit un mécanisme de vérification de l'état pour les équilibreurs de charge ou d'autres infrastructures réseau. Cette requête renverra toujours une réponse HTTP 200 OK avec un corps "ok", "behind" ou "unknown" :

  • ok : Le nœud est à moins de HEALTH_CHECK_SLOT_DISTANCE slots du dernier slot confirmé par le cluster
  • behind { distance } : Le nœud est en retard de plus de distance slots par rapport au dernier slot confirmé par le cluster où distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown : Le nœud est incapable de déterminer sa position par rapport au cluster

Is this page helpful?

Table des matières

Modifier la page