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 erkend
  • confirmed - 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 een slot 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:

ProgrammaAccountstatusInstructies
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

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 starten
    • bytes: string - data om te matchen, als gecodeerde string
    • encoding: string - codering voor filter bytes 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?

Inhoudsopgave

Pagina Bewerken