Solana RPC Metody HTTP

Węzły Solana akceptują żądania HTTP zgodnie ze specyfikacją JSON-RPC 2.0.

W aplikacjach JavaScript użyj biblioteki @solana/web3.js jako wygodnego interfejsu dla metod RPC do interakcji z węzłem Solana. Aby nawiązać połączenie PubSub z węzłem Solana, skorzystaj z Websocket API.

Punkt końcowy RPC HTTP

Domyślny port: 8899

Formatowanie żądań

Aby wysłać żądanie JSON-RPC, wyślij żądanie HTTP POST z nagłówkiem Content-Type: application/json. Dane żądania JSON powinny zawierać 4 pola:

  • jsonrpc: <string> - ustawione na "2.0"
  • id: <string | number | null> - unikalny identyfikator żądania, generowany przez klienta. Zazwyczaj jest to ciąg znaków lub liczba, chociaż null jest technicznie dozwolony, ale niezalecany
  • method: <string> - ciąg znaków zawierający metodę do wywołania
  • params: <array> - tablica JSON z uporządkowanymi wartościami parametrów

Przykład użycia 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"
]
}
'

Wyjście odpowiedzi będzie obiektem JSON zawierającym następujące pola:

  • jsonrpc: <string> - zgodne ze specyfikacją żądania
  • id: <number> - zgodne z identyfikatorem żądania
  • result: <array|number|object|string> - żądane dane lub potwierdzenie sukcesu

Żądania mogą być wysyłane w partiach poprzez przesłanie tablicy obiektów żądań JSON-RPC jako danych dla pojedynczego POST.

Przykład żądania

Parametr commitment powinien być uwzględniony jako ostatni element w tablicy 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"
}
]
}
'

Definicje

  • Hash: Hash SHA-256 fragmentu danych.
  • Pubkey: Klucz publiczny pary kluczy Ed25519.
  • Transaction: Lista instrukcji Solana podpisana przez parę kluczy klienta w celu autoryzacji tych działań.
  • Signature: Podpis Ed25519 danych ładunku transakcji, w tym instrukcji. Może być używany do identyfikacji transakcji.

Kontrola stanu

Chociaż nie jest to JSON RPC API, GET /health w RPC HTTP Endpoint zapewnia mechanizm kontroli stanu do wykorzystania przez load balancery lub inną infrastrukturę sieciową. To żądanie zawsze zwróci odpowiedź HTTP 200 OK z treścią "ok", "behind" lub "unknown":

  • ok: Węzeł znajduje się w odległości HEALTH_CHECK_SLOT_DISTANCE slotów od najnowszego potwierdzonego slotu klastra
  • behind { distance }: Węzeł jest opóźniony o distance slotów od najnowszego potwierdzonego slotu klastra, gdzie distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: Węzeł nie jest w stanie określić, gdzie się znajduje w stosunku do klastra

Is this page helpful?

Spis treści

Edytuj stronę