getVoteAccounts retorna informações sobre todas as contas de votação (validadores) no banco atual. Ele distingue entre validadores current (ativos) e delinquent e fornece detalhes sobre sua participação, atividade de votação e identidade.
Casos de Uso Comuns
- Monitoramento de Validadores: Rastreamento do status, participação e desempenho dos validadores na rede.
- Painéis de Staking: Exibição de informações sobre validadores disponíveis para usuários que desejam delegar seu SOL.
- Análise de Saúde da Rede: Avaliação da saúde geral e descentralização da rede, examinando a distribuição da participação e a atividade dos validadores.
- Identificação de Validadores Delinquentes: Encontrar validadores que não estão participando ativamente do consenso.
Parâmetros da Solicitação
Este método aceita um objeto de configuração opcional com os seguintes campos:commitment(string, opcional): Especifica o nível de compromisso para a consulta (por exemplo,"finalized","confirmed","processed"). Se omitido, o compromisso padrão do nó é utilizado.votePubkey(string, opcional): Se fornecido, os resultados serão filtrados para incluir apenas o endereço de conta de votação do validador especificado (codificado em base-58).keepUnstakedDelinquents(booleano, opcional): O padrão éfalse. Se definido comotrue, a listadelinquentincluirá validadores sem participação ativada. Caso contrário, eles serão filtrados.delinquentSlotDistance(u64, opcional): Especifica quantos slots um validador deve estar atrás do topo do livro razão para ser considerado delinquente. Se não especificado, o nó usa um valor padrão.
Estrutura de Resposta
O camporesult na resposta JSON-RPC é um objeto contendo dois arrays:
current: Um array de objetos, onde cada objeto representa uma conta de votação ativa com os seguintes campos:votePubkey(string): O endereço da conta de votação (codificado em base-58).nodePubkey(string): A chave pública de identidade do nó validador (codificado em base-58).activatedStake(u64): A quantidade de participação, em lamports, delegada a esta conta de votação e ativa no epoch atual.epochVoteAccount(booleano):truese a conta de votação esteve ativa pelo menos uma vez durante o epoch atual.commission(número): A porcentagem de comissão (0-100) cobrada pelo validador.lastVote(u64): O número mais recente de slot em que este validador votou.rootSlot(u64): O último slot que o nó considerou ser uma raiz (um bloco totalmente confirmado que não será revertido).epochCredits(array): Um array de arrays, onde cada array interno contém[epoch, credits_earned_in_epoch, previous_total_credits].
delinquent: Um array de objetos, com a mesma estrutura decurrent, representando validadores considerados delinquentes pelo nó.
Exemplos de Código
Dicas para Desenvolvedores
- Resposta Grande: Este método pode retornar uma grande quantidade de dados, especialmente em redes com muitos validadores, como a Mainnet Beta. Fique atento ao tamanho da resposta e ao tempo de processamento.
- Definição de Delinquência: A definição de “delinquente” pode depender do
delinquentSlotDistancee da perspectiva do nó. Um validador pode parecer delinquente em um nó, mas não em outro, se a visão deles do topo do livro razão for diferente. - Ativação de Participação:
activatedStakereflete a participação que está ativa no epoch atual. A participação leva tempo para ativar e desativar. - Créditos de Epoch:
epochCreditsfornece um histórico do desempenho de um validador em ganhar créditos por votação.
getVoteAccounts, permitindo que você consulte e entenda informações sobre validadores na rede Solana.