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
- 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.