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_DISTANCEslotów od najnowszego potwierdzonego slotu klastrabehind { distance }: Węzeł jest opóźniony odistanceslotów od najnowszego potwierdzonego slotu klastra, gdziedistance > HEALTH_CHECK_SLOT_DISTANCEunknown: Węzeł nie jest w stanie określić, gdzie się znajduje w stosunku do klastra
Is this page helpful?