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 à invoquerparams: <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êteid: <number>
- correspondant à l'identifiant de la requêteresult: <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 deHEALTH_CHECK_SLOT_DISTANCE
slots du dernier slot confirmé par le clusterbehind { distance }
: Le nœud est en retard de plus dedistance
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?