Skip to main content
O método RPC getLatestBlockhash é essencial para preparar e enviar transações na rede Solana. Ele recupera o blockhash mais recente processado pelo nó, junto com a última altura do bloco em que este blockhash permanecerá válido. Para mais detalhes sobre como usar blockhashes de forma eficaz e garantir que suas transações sejam realizadas, consulte nosso guia abrangente. Toda transação em Solana deve referenciar um blockhash recente. Este mecanismo ajuda a prevenir certos tipos de ataques, como repetição de transações em uma cadeia bifurcada. Nota de Versão: Este método está disponível na solana-core v1.9 ou mais recente. Para nós executando solana-core v1.8 ou mais antigo, use o método getRecentBlockhash.

Casos de Uso Comuns

  • Construção de Transações: Obtenha um blockhash recente para incluir em uma nova transação antes de assinar e enviá-la.
  • Gerenciamento do Tempo de Vida da Transação: Use lastValidBlockHeight para entender por quanto tempo uma transação referenciando o blockhash obtido pode ser considerada válida.
  • Verificações de Pré-execução: Enquanto simulateTransaction pode fazer isso implicitamente, aplicações podem buscar um blockhash para preparar manualmente uma transação para simulação.

Parâmetros de Solicitação

Este método pode opcionalmente receber um objeto de configuração com os seguintes parâmetros:
  • commitment (string, opcional): Especifica o nível de compromisso para a consulta. Se omitido, o compromisso padrão do nó é usado. Para transações, é comum usar confirmed ou finalized para garantir que o blockhash seja de uma parte razoavelmente estável da cadeia.
  • minContextSlot (inteiro, opcional): O slot mínimo em que a solicitação pode ser avaliada. Isso garante que a consulta seja feita contra um estado do livro razão que tenha processado até pelo menos este slot.

Estrutura da Resposta

O campo result da resposta JSON-RPC será um objeto RpcResponse. O campo value dentro deste objeto contém:
  • blockhash (string): Uma string codificada em base-58 representando o blockhash mais recente.
  • lastValidBlockHeight (u64): A altura do bloco em que o blockhash expirará. Uma transação citando este blockhash é válida até que a rede atinja este lastValidBlockHeight.
A resposta também inclui um objeto context com o slot no qual a informação foi recuperada.

Exemplos

1. Obter o Blockhash Mais Recente com Compromisso Padrão

Este exemplo busca o blockhash mais recente usando o compromisso padrão do nó.

2. Obter o Blockhash Mais Recente com Compromisso ‘confirmed’

Este exemplo solicita explicitamente o blockhash mais recente com compromisso confirmed.

Dicas para Desenvolvedores

  • Validade do Blockhash: Um blockhash é válido por tempo limitado, aproximadamente 2 minutos (embora isso possa variar). As transações devem ser confirmadas pela rede antes de seu lastValidBlockHeight ser atingido. Sempre busque um novo blockhash se um tempo considerável tiver passado desde o último obtido.
  • Escolhendo o Compromisso: Para transações críticas, usar o compromisso finalized oferece a garantia mais forte de que o blockhash é do fork principal da cadeia, mas pode ser um pouco mais antigo. confirmed oferece um bom equilíbrio. Saiba mais sobre níveis de compromisso para informações detalhadas.
  • Taxas de Transação: Lembre-se de também calcular e incluir as taxas de transação apropriadas. O blockhash em si não determina a taxa.
  • Lógica de Repetição: Se uma transação expirar porque seu lastValidBlockHeight foi ultrapassado, você deve assinar novamente com um blockhash novo e mais recente e reenviar.
Este guia fornece os passos para usar getLatestBlockhash de forma eficaz, um elemento essencial para interagir com a rede Solana através de transações.

Métodos Relacionados

simulateTransaction

Simular uma transação antes de enviar

isBlockhashValid

Verificar se um blockhash ainda é válido