Skip to main content
O método RPC getBlockCommitment fornece informações sobre o status de commitment de um bloco específico no ledger do Solana. Isso é útil para entender quão finalizado um bloco está, com base no stake que votou nele.

Casos de Uso Comuns

  • Avaliação da Finalidade do Bloco: Determine o nível de consenso que um bloco alcançou examinando os votos ponderados por stake em diferentes profundidades de confirmação.
  • Entendendo a Saúde do Cluster: O getBlockCommitment fornece informações sobre o total de stake ativo no cluster no momento em que o bloco foi processado.
  • Lógica Avançada de Confirmação: Para aplicações que requerem garantias muito específicas sobre a finalidade do bloco além dos níveis de commitment padrão (processed, confirmed).

Parâmetros

  1. slot (número, obrigatório): O número do slot (u64) do bloco para o qual se busca informações de commitment.

Resposta

O campo commitment da resposta JSON-RPC será um objeto contendo:
  • commitment (array de inteiros u64 | null):
    • Um array de inteiros u64, onde cada inteiro representa a quantidade de stake do cluster (em lamports) que votou no bloco em uma profundidade de confirmação específica.
    • O array geralmente tem 32 elementos (representando profundidades de 0 a 31).
    • O índice commitment do array mostra o stake que votou no bloco, considerando votos no próprio bloco e seus descendentes até commitment níveis de profundidade.
    • Se o bloco não for encontrado ou suas informações de commitment não estiverem disponíveis (por exemplo, é muito antigo e foi removido do rastreamento de commitment), este campo será null.
  • totalStake (número):
    • O total de stake ativo no cluster (em lamports) no slot em que este bloco foi processado. Este valor é usado para calcular a porcentagem de stake que se comprometeu com o bloco.

Dicas para Desenvolvedores

  • Interpretando o Array commitment:
    • O array commitment mostra o stake (em lamports) que votou no bloco em diferentes profundidades de confirmação. Valores mais altos em índices mais profundos significam maior finalidade.
    • Um array commitment null geralmente significa que o nó não possui dados para o slot, possivelmente porque é muito antigo ou foi pulado.
    • Você pode avaliar a finalidade na profundidade commitment se houver maioria qualificada (supermajority).
  • Casos de Uso Avançados: O getBlockCommitment é para análise de finalidade detalhada. Para a maioria dos cenários comuns, confiar nos níveis padrão de commitment (processed, confirmed ou finalized) com outros métodos RPC (como getBlock e getBlockTime) é mais simples e suficiente.
  • Entendendo Commitment: Para aproveitar ao máximo o getBlockCommitment, é essencial entender bem os níveis de commitment do Solana. Veja Níveis de Commitment do Solana para informações detalhadas.
  • Podas: Esteja ciente de que os nós RPC podem remover informações antigas de commitment, resultando em resultados null para slots mais antigos.

Exemplo: Buscando Informações de Commitment de Bloco

Vamos tentar buscar informações de commitment para um número de slot ilustrativo na Devnet. Importante: Os números de slot são processados rapidamente. O número de slot usado abaixo (placeholderSlot) é um espaço reservado. Você deve substituí-lo por um slot recente e confirmado que você saiba que existe na sua rede de destino (por exemplo, Devnet ou Mainnet) quando executar o exemplo. Você pode encontrar números de slot recentes usando um explorador de blocos Solana. Nota: Substitua yourAPIKey pelo seu real Helius API key nos exemplos abaixo.