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 finalizzatoconfirmed
- 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 camposlot
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:
Programma | Stato dell'account | Istruzioni |
---|---|---|
Address Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | stable |
BPF Upgradeable Loader | stable | stable |
Config | stable | |
SPL Associated Token Account | n/a | stable |
SPL Memo | n/a | stable |
SPL Token | stable | stable |
SPL Token 2022 | stable | stable |
Stake | stable | stable |
Vote | stable | stable |
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 confrontobytes: string
- dati da confrontare, come stringa codificataencoding: string
- codifica per i dati del filtrobytes
, "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?