Skip to main content
O método RPC getLeaderSchedule retorna a atribuição de liderança na produção de blocos para validadores em um epoch específico. Entender a programação dos líderes pode ser útil para análise de rede, prever qual validador produzirá blocos em determinados momentos ou para ferramentas que interagem com líderes específicos.

Casos de Uso Comuns

  • Monitoramento de Rede: Observe a distribuição de slots de líderes entre validadores em um epoch.
  • Roteamento de Transações (Avançado): Algumas aplicações avançadas podem tentar rotear transações para o líder atual ou futuro, embora isso seja geralmente gerenciado pela rede e nós RPC.
  • Análise de Desempenho de Validadores: Correlacione a programação dos líderes com a produção de blocos real para avaliar o tempo de atividade e desempenho dos validadores.
  • Compreensão da Progressão do Epoch: Veja quais validadores são responsáveis por produzir blocos ao longo de um epoch.

Parâmetros de Solicitação

O método pode aceitar até dois parâmetros opcionais:
  1. slot (u64, opcional): Um número de slot. Se fornecido, a programação dos líderes para o epoch contendo este slot será buscada. Se null ou omitido, a programação dos líderes para o epoch atual é buscada.
  2. config (objeto, opcional): Um objeto de configuração que pode conter:
    • commitment (string, opcional): Especifica o nível de compromisso. Se não for fornecido, o compromisso padrão do nó é usado.
    • identity (string, opcional): Uma chave pública codificada em base-58 de um validador. Se fornecido, a programação retornada incluirá apenas slots atribuídos a este validador específico.

Estrutura da Resposta

O campo result da resposta JSON-RPC será:
  • null: Se o epoch correspondente ao slot solicitado (ou epoch atual se nenhum slot for fornecido) não for encontrado ou sua programação de líderes não estiver disponível (por exemplo, para um epoch futuro, ainda não calculado).
  • Um objeto: Se uma programação for encontrada. Este objeto é um mapa onde:
    • Cada chave é a chave pública codificada em base-58 (identidade) de um validador.
    • O valor correspondente é um array de números. Cada número é um índice de slot relativo ao início do epoch para o qual esse validador é o líder.
Por exemplo, se um epoch começa no slot 1000 e um validador tem [0, 1, 5] em sua programação, isso significa que o validador é o líder para os slots 1000, 1001, e 1005.

Exemplos

1. Obter a Programação de Líderes para o Epoch Atual

Este exemplo busca a programação completa de líderes para o epoch atual.

2. Obter a Programação de Líderes para um Validador Específico em um Epoch Específico (por Slot)

Este exemplo busca a programação de líderes para uma identidade de validador dada para o epoch que contém o slot 200000.

Dicas para Desenvolvedores

  • Limites do Epoch: A programação dos líderes é fixa para um epoch inteiro. Você pode usar getEpochInfo para encontrar o início e o fim dos slots de um epoch.
  • Epochs Futuros: Solicitar a programação para um epoch muito no futuro pode retornar null se a rede ainda não a calculou.
  • Índices de Slot Relativos: Lembre-se de que os números de slot na resposta são relativos ao primeiro slot do epoch solicitado, não números absolutos na blockchain.
  • Resposta Grande: Para uma programação completa de epoch sem filtro de identidade, a resposta pode ser grande, listando todos os validadores e seus slots atribuídos.
Este guia fornece as informações necessárias para usar getLeaderSchedule para consultar as atribuições de produtores de blocos para qualquer epoch na rede Solana.

Métodos Relacionados

getEpochInfo

Obter informações do epoch atual, incluindo limites de slots

getSlotLeaders

Obter líderes para um intervalo específico de slots