Solana RPC HTTP-Methoden
Solana-Knoten akzeptieren HTTP-Anfragen unter Verwendung der JSON-RPC 2.0 Spezifikation.
Für JavaScript-Anwendungen nutzen Sie die @solana/web3.js Bibliothek als praktische Schnittstelle für die RPC-Methoden zur Interaktion mit einem Solana-Knoten. Für eine PubSub-Verbindung zu einem Solana-Knoten verwenden Sie die Websocket API.
RPC HTTP-Endpunkt
Standardport: 8899
Anfrage-Formatierung
Um eine JSON-RPC-Anfrage zu stellen, senden Sie eine HTTP-POST-Anfrage mit einem
Content-Type: application/json
Header. Die JSON-Anfragedaten sollten 4 Felder
enthalten:
jsonrpc: <string>
- auf"2.0"
gesetztid: <string | number | null>
- eine eindeutige Kennung für die Anfrage, die vom Client generiert wird. Typischerweise ein String oder eine Zahl, obwohl null technisch erlaubt, aber nicht empfohlen istmethod: <string>
- ein String, der die aufzurufende Methode enthältparams: <array>
- ein JSON-Array mit geordneten Parameterwerten
Beispiel mit 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"]}'
Die Antwortausgabe wird ein JSON-Objekt mit den folgenden Feldern sein:
jsonrpc: <string>
- entspricht der Anfragespezifikationid: <number>
- entspricht der Anfrage-IDresult: <array|number|object|string>
- angeforderte Daten oder Erfolgsbestätigung
Anfragen können in Batches gesendet werden, indem ein Array von JSON-RPC-Anfrageobjekten als Daten für einen einzelnen POST gesendet wird.
Beispielanfrage
Der Commitment-Parameter sollte als letztes Element im params
Array enthalten
sein:
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"}]}'
Definitionen
- Hash: Ein SHA-256-Hash eines Datenblocks.
- Pubkey: Der öffentliche Schlüssel eines Ed25519-Schlüsselpaars.
- Transaktion: Eine Liste von Solana Anweisungen, die von einem Client-Keypair signiert wurden, um diese Aktionen zu autorisieren.
- Signatur: Eine Ed25519-Signatur der Nutzlastdaten einer Transaktion einschließlich Anweisungen. Diese kann zur Identifizierung von Transaktionen verwendet werden.
Zustandsprüfung
Obwohl es keine JSON RPC API ist, bietet ein GET /health
am RPC HTTP Endpunkt
einen Zustandsprüfungsmechanismus für Load Balancer oder andere Netzwerk-
infrastruktur. Diese Anfrage wird immer eine HTTP 200 OK Antwort mit einem Body
von "ok", "behind" oder "unknown" zurückgeben:
ok
: Der Knoten ist innerhalb vonHEALTH_CHECK_SLOT_DISTANCE
slots vom neuesten bestätigten Cluster-Slot entferntbehind { distance }
: Der Knoten ist mehr alsdistance
slots vom neuesten bestätigten Cluster-Slot entfernt, wobeidistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Der Knoten kann nicht bestimmen, wo er in Bezug auf den Cluster steht
Is this page helpful?