Metodi RPC di Solana e Documentazione

Interagisci direttamente con i nodi Solana tramite l'API JSON RPC utilizzando i metodi HTTP e Websocket.

Configurazione dell'impegno di stato

Per i controlli preliminari e l'elaborazione delle transazioni, i nodi Solana scelgono quale stato della banca interrogare in base a un requisito di impegno (commitment) impostato dal client. Il commitment descrive quanto è finalizzato un blocco in quel momento. Quando si interroga lo stato del registro, si consiglia di utilizzare livelli di commitment più bassi per mostrare i progressi e livelli più alti per garantire che lo stato non venga annullato.

In ordine decrescente di commitment (dal più finalizzato al meno finalizzato), i client possono specificare:

  • finalized - il nodo interrogherà il blocco più recente confermato dalla maggioranza del cluster come avente raggiunto il massimo lockout, il che significa che il cluster ha riconosciuto questo blocco come finalizzato
  • confirmed - il nodo interrogherà il blocco più recente che è stato votato dalla maggioranza del cluster.
    • Incorpora i voti dal gossip e dal replay.
    • Non conta i voti sui discendenti di un blocco, solo i voti diretti su quel blocco.
    • Questo livello di conferma mantiene anche le garanzie di "conferma ottimistica" nella versione 1.3 e successive.
  • processed - il nodo interrogherà il suo blocco più recente. Nota che il blocco potrebbe ancora essere saltato dal cluster.

Per elaborare molte transazioni dipendenti in serie, si consiglia di utilizzare il commitment confirmed, che bilancia velocità con sicurezza contro i rollback. Per una sicurezza totale, si consiglia di utilizzare il commitment finalized.

Commitment predefinito

Se la configurazione del commitment non viene fornita, il nodo utilizzerà per impostazione predefinita il commitment finalized

Solo i metodi che interrogano lo stato della bank accettano il parametro commitment. Sono indicati nel riferimento API qui sotto.

Struttura RpcResponse

Molti metodi che accettano un parametro commitment restituiscono un oggetto JSON RpcResponse composto da due parti:

  • context : Una struttura JSON RpcResponseContext che include un campo slot in cui è stata valutata l'operazione.
  • value : Il valore restituito dall'operazione stessa.

Risposte analizzate

Alcuni metodi supportano un parametro encoding e possono restituire dati di account o istruzioni in formato JSON analizzato se viene richiesto "encoding":"jsonParsed" e il nodo dispone di un parser per il programma proprietario. I nodi Solana attualmente supportano l'analisi JSON per i seguenti programmi nativi e SPL:

ProgrammaStato dell'accountIstruzioni
Address Lookupv1.15.0v1.15.0
BPF Loadern/astable
BPF Upgradeable Loaderstablestable
Configstable
SPL Associated Token Accountn/astable
SPL Memon/astable
SPL Tokenstablestable
SPL Token 2022stablestable
Stakestablestable
Votestablestable

L'elenco dei parser di account può essere trovato qui, e i parser di istruzioni qui.

Criteri di filtro

Alcuni metodi supportano la fornitura di un oggetto filters per abilitare il pre-filtraggio dei dati restituiti all'interno dell'oggetto JSON RpcResponse. Esistono i seguenti filtri:

  • memcmp: object - confronta una serie di byte fornita con i dati del program account a un particolare offset. Campi:

    • offset: usize - offset nei dati del program account da cui iniziare il confronto
    • bytes: string - dati da confrontare, come stringa codificata
    • encoding: string - codifica per i dati del filtro bytes, "base58" o "base64". I dati sono limitati in dimensione a 128 o meno byte decodificati.
      NOVITÀ: Questo campo, e il supporto base64 in generale, è disponibile solo in solana-core v1.14.0 o versioni più recenti. Si prega di omettere quando si interrogano nodi su versioni precedenti
  • dataSize: u64 - confronta la lunghezza dei dati del program account con la dimensione dei dati fornita

Is this page helpful?

Indice

Modifica Pagina