Metody RPC Solana i dokumentacja

Interakcja z węzłami Solana bezpośrednio za pomocą JSON RPC API poprzez metody HTTP i Websocket.

Konfigurowanie zaangażowania stanu

Podczas kontroli wstępnych i przetwarzania transakcji węzły Solana wybierają, który stan banku zapytać, na podstawie wymogu zaangażowania określonego przez klienta. Zaangażowanie opisuje, jak bardzo blok jest sfinalizowany w danym momencie. Podczas zapytań o stan księgi zaleca się używanie niższych poziomów zaangażowania do raportowania postępów i wyższych poziomów, aby upewnić się, że stan nie zostanie cofnięty.

W kolejności malejącej zaangażowania (od najbardziej sfinalizowanego do najmniej sfinalizowanego) klienci mogą określić:

  • finalized - węzeł zapyta o najnowszy blok potwierdzony przez superwiększość klastra jako osiągający maksymalne zablokowanie, co oznacza, że klaster uznał ten blok za sfinalizowany
  • confirmed - węzeł zapyta o najnowszy blok, na który głosowała superwiększość klastra.
    • Uwzględnia głosy z gossip i odtwarzania.
    • Nie uwzględnia głosów na potomkach bloku, tylko bezpośrednie głosy na ten blok.
    • Ten poziom potwierdzenia zapewnia również gwarancje "optymistycznego potwierdzenia" w wersji 1.3 i nowszych.
  • processed - węzeł zapyta o swój najnowszy blok. Należy zauważyć, że blok ten może zostać pominięty przez klaster.

Do przetwarzania wielu zależnych transakcji w serii zaleca się użycie zaangażowania confirmed, które równoważy szybkość z bezpieczeństwem cofnięcia. Dla całkowitego bezpieczeństwa zaleca się użycie zaangażowania finalized.

Domyślne zaangażowanie

Jeśli konfiguracja zaangażowania nie zostanie podana, węzeł domyślnie użyje zaangażowania finalized

Tylko metody, które zapytują o stan banku, akceptują parametr zaangażowania. Są one wskazane w poniższej Referencji API.

Struktura RpcResponse

Wiele metod, które przyjmują parametr zaangażowania, zwraca obiekt JSON RpcResponse składający się z dwóch części:

  • context : Struktura JSON RpcResponseContext zawierająca pole slot, w którym operacja została oceniona.
  • value : Wartość zwrócona przez samą operację.

Parsowane odpowiedzi

Niektóre metody obsługują parametr encoding i mogą zwracać dane konta lub instrukcji w parsowanym formacie JSON, jeśli zostanie zażądane "encoding":"jsonParsed" i węzeł posiada parser dla programu właściciela. Węzły Solana obecnie obsługują parsowanie JSON dla następujących natywnych i SPL programów:

ProgramStan kontaInstrukcje
Address Lookupv1.15.0v1.15.0
BPF Loadern/astabilny
BPF Upgradeable Loaderstabilnystabilny
Configstabilny
SPL Associated Token Accountn/astabilny
SPL Memon/astabilny
SPL Tokenstabilnystabilny
SPL Token 2022stabilnystabilny
Stakestabilnystabilny
Votestabilnystabilny

Lista parserów kont można znaleźć tutaj, a parserów instrukcji tutaj.

Kryteria filtrowania

Niektóre metody obsługują podanie obiektu filters, aby umożliwić wstępne filtrowanie danych zwracanych w obiekcie JSON RpcResponse. Dostępne są następujące filtry:

  • memcmp: object - porównuje podany ciąg bajtów z danymi konta programu na określonym przesunięciu. Pola:

    • offset: usize - przesunięcie w danych konta programu, od którego rozpoczyna się porównanie
    • bytes: string - dane do dopasowania, zakodowane jako ciąg znaków
    • encoding: string - kodowanie dla filtra bytes danych, "base58" lub "base64". Dane są ograniczone do rozmiaru 128 lub mniej bajtów po dekodowaniu.
      NOWOŚĆ: To pole oraz ogólne wsparcie dla base64 są dostępne tylko w solana-core v1.14.0 lub nowszym. Proszę pominąć przy zapytaniach do węzłów na wcześniejszych wersjach
  • dataSize: u64 - porównuje długość danych konta programu z podanym rozmiarem danych

Is this page helpful?

Spis treści

Edytuj stronę