Métodos RPC da Solana e Documentação
Interaja diretamente com os nós da Solana através da API JSON RPC via métodos HTTP e Websocket.
Configurando o Compromisso de Estado
Para verificações prévias e processamento de transações, os nós da Solana escolhem qual estado do banco consultar com base em um requisito de compromisso definido pelo cliente. O compromisso descreve quão finalizado está um bloco naquele momento. Ao consultar o estado do ledger, é recomendado usar níveis mais baixos de compromisso para reportar progresso e níveis mais altos para garantir que o estado não será revertido.
Em ordem decrescente de compromisso (do mais finalizado para o menos finalizado), os clientes podem especificar:
finalized
- o nó consultará o bloco mais recente confirmado pela supermaioria do cluster como tendo atingido o bloqueio máximo, significando que o cluster reconheceu este bloco como finalizadoconfirmed
- o nó consultará o bloco mais recente que foi votado pela supermaioria do cluster.- Incorpora votos do gossip e replay.
- Não conta votos em descendentes de um bloco, apenas votos diretos naquele bloco.
- Este nível de confirmação também mantém garantias de "confirmação otimista" na versão 1.3 e posteriores.
processed
- o nó consultará seu bloco mais recente. Note que o bloco ainda pode ser ignorado pelo cluster.
Para processar muitas transações dependentes em série, é recomendado usar o
compromisso confirmed
, que equilibra velocidade com segurança contra
reversões. Para segurança total, é recomendado usar o compromisso finalized
.
Compromisso padrão
Se a configuração de compromisso não for fornecida, o nó irá
usar por padrão o compromisso finalized
Apenas métodos que consultam o estado do banco aceitam o parâmetro de compromisso. Eles são indicados na Referência da API abaixo.
Estrutura RpcResponse
Muitos métodos que aceitam um parâmetro de compromisso retornam um objeto JSON RpcResponse composto por duas partes:
context
: Uma estrutura JSON RpcResponseContext incluindo um camposlot
no qual a operação foi avaliada.value
: O valor retornado pela própria operação.
Respostas analisadas
Alguns métodos suportam um parâmetro encoding
, e podem retornar dados de conta
ou instrução em formato JSON analisado se "encoding":"jsonParsed"
for
solicitado e o nó tiver um analisador para o programa proprietário. Os nós
Solana atualmente suportam análise JSON para os seguintes programas nativos e
SPL:
Programa | Estado da conta | Instruções |
---|---|---|
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 |
A lista de analisadores de contas pode ser encontrada aqui, e analisadores de instruções aqui.
Critérios de filtro
Alguns métodos suportam o fornecimento de um objeto filters
para permitir a
pré-filtragem dos dados retornados dentro do objeto JSON RpcResponse. Os
seguintes filtros existem:
-
memcmp: object
- compara uma série de bytes fornecida com os dados da program account em um deslocamento específico. Campos:offset: usize
- deslocamento nos dados da program account para iniciar a comparaçãobytes: string
- dados para correspondência, como string codificadaencoding: string
- codificação para filtrar dadosbytes
, seja "base58" ou "base64". Os dados são limitados em tamanho a 128 ou menos bytes decodificados.
NOVO: Este campo e o suporte a base64 em geral estão disponíveis apenas no solana-core v1.14.0 ou mais recente. Por favor, omita ao consultar nós em versões anteriores
-
dataSize: u64
- compara o tamanho dos dados da program account com o tamanho de dados fornecido
Is this page helpful?