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 niezalecanymethod: <string>
- ciąg znaków zawierający metodę do wywołaniaparams: <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ą żądaniaid: <number>
- zgodne z identyfikatorem żądaniaresult: <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ściHEALTH_CHECK_SLOT_DISTANCE
slotów od najnowszego potwierdzonego slotu klastrabehind { distance }
: Węzeł jest opóźniony odistance
slotów od najnowszego potwierdzonego slotu klastra, gdziedistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Węzeł nie jest w stanie określić, gdzie się znajduje w stosunku do klastra
Is this page helpful?