Solana RPC-methoden & documentatie
Communiceer direct met Solana-nodes via de JSON RPC API met behulp van HTTP- en Websocket-methoden.
Configureren van state commitment
Voor preflight-controles en transactieverwerking kiezen Solana-nodes welke bank state ze bevragen op basis van een commitment-vereiste die door de client wordt ingesteld. De commitment beschrijft hoe definitief een blok op dat moment is. Bij het bevragen van de ledger-status wordt aangeraden om lagere commitment-niveaus te gebruiken om voortgang te rapporteren en hogere niveaus om ervoor te zorgen dat de status niet wordt teruggedraaid.
In aflopende volgorde van commitment (meest definitief naar minst definitief) kunnen clients het volgende specificeren:
finalized
- de node zal het meest recente blok bevragen dat door een supermeerderheid van het cluster is bevestigd als hebbende de maximale lockout bereikt, wat betekent dat het cluster dit blok als definitief heeft erkendconfirmed
- de node zal het meest recente blok bevragen waarop is gestemd door een supermeerderheid van het cluster.- Het bevat stemmen van gossip en replay.
- Het telt geen stemmen op afstammelingen van een blok, alleen directe stemmen op dat blok.
- Dit bevestigingsniveau handhaaft ook "optimistische bevestiging"-garanties in release 1.3 en later.
processed
- de node zal zijn meest recente blok bevragen. Merk op dat het blok nog steeds door het cluster kan worden overgeslagen.
Voor het verwerken van veel afhankelijke transacties in serie wordt aangeraden
om confirmed
commitment te gebruiken, wat snelheid en terugdraaibeveiliging in
balans brengt. Voor totale veiligheid wordt aangeraden om finalized
commitment
te gebruiken.
Standaard commitment
Als er geen commitment-configuratie wordt opgegeven, zal de node
standaard finalized
commitment
gebruiken
Alleen methoden die de bankstatus opvragen accepteren de commitment-parameter. Deze worden aangegeven in de API-referentie hieronder.
RpcResponse structuur
Veel methoden die een commitment-parameter accepteren, retourneren een RpcResponse JSON-object dat uit twee delen bestaat:
context
: Een RpcResponseContext JSON-structuur met eenslot
veld waarin de operatie werd geëvalueerd.value
: De waarde die door de operatie zelf wordt geretourneerd.
Geparseerde responses
Sommige methoden ondersteunen een encoding
parameter en kunnen account- of
instructiegegevens in geparseerd JSON-formaat retourneren als
"encoding":"jsonParsed"
wordt aangevraagd en de node een parser heeft voor het
eigenaarsprogramma. Solana-nodes ondersteunen momenteel JSON-parsing voor de
volgende native en SPL-programma's:
Programma | Accountstatus | Instructies |
---|---|---|
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 |
De lijst met account-parsers is te vinden hier, en instructie-parsers hier.
Filtercriteria
Sommige methoden ondersteunen het opgeven van een filters
object om
voorfiltering mogelijk te maken van de gegevens die worden geretourneerd binnen
het RpcResponse JSON-object. De volgende filters bestaan:
-
memcmp: object
- vergelijkt een opgegeven reeks bytes met program account data op een bepaalde offset. Velden:offset: usize
- offset in program account data om vergelijking te startenbytes: string
- data om te matchen, als gecodeerde stringencoding: string
- codering voor filterbytes
data, ofwel "base58" of "base64". Data is beperkt in grootte tot 128 of minder gedecodeerde bytes.
NIEUW: Dit veld, en base64-ondersteuning in het algemeen, is alleen beschikbaar in solana-core v1.14.0 of nieuwer. Laat dit weg bij het bevragen van nodes op eerdere versies
-
dataSize: u64
- vergelijkt de lengte van de program account data met de opgegeven datagrootte
Is this page helpful?