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" gesetzt
  • id: <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 ist
  • method: <string> - ein String, der die aufzurufende Methode enthält
  • params: <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 Anfragespezifikation
  • id: <number> - entspricht der Anfrage-ID
  • result: <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 von HEALTH_CHECK_SLOT_DISTANCE slots vom neuesten bestätigten Cluster-Slot entfernt
  • behind { distance }: Der Knoten ist mehr als distance slots vom neuesten bestätigten Cluster-Slot entfernt, wobei distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: Der Knoten kann nicht bestimmen, wo er in Bezug auf den Cluster steht

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten