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 finalizado
  • confirmed - 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 campo slot 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:

ProgramaEstado da contaInstruções
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

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ção
    • bytes: string - dados para correspondência, como string codificada
    • encoding: string - codificação para filtrar dados bytes, 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?

Índice

Editar Página