getProgramAccountsV2
Versão aprimorada de getProgramAccounts com paginação baseada em cursor e suporte a changedSinceSlot para consulta eficiente de grandes conjuntos de contas de programas específicos do Solana com atualizações incrementais.
Visão Geral
getProgramAccountsV2 é uma versão aprimorada do método padrão getProgramAccounts, projetada para aplicativos que precisam consultar eficientemente grandes conjuntos de contas de programas específicos do Solana. Este método introduz paginação baseada em cursor e capacidades de atualização incremental.
- Paginação baseada em cursor: Configure limites de 1 a 10.000 contas por requisição
- Atualizações incrementais: Use
changedSinceSlotpara buscar apenas contas recentemente modificadas - Melhor performance: Evita timeouts e reduz o uso de memória para grandes conjuntos de dados
- Compatibilidade reversa: Suporta todos os parâmetros existentes de
getProgramAccounts - Opcional
withContext:trueadicionasloteapiVersionsobresult.context; omita oufalsee eles não serão incluídos
Benefícios Principais
Consultas Escaláveis
Sincronização em Tempo Real
changedSinceSlot para atualizações incrementais e sincronização de dados em tempo realEvitar Timeouts
Eficiente em Memória
Melhores Práticas de Paginação
Padrão Básico de Paginação
Atualizações Incrementais
Dicas de Performance
- Comece com limites menores (1000) e aumente com base na performance da sua rede
- Use a codificação apropriada:
jsonParsedpara conveniência,base64para performance - Aplique filtros para reduzir o tamanho do conjunto de dados antes da paginação
- Armazene
paginationKeypara retomar consultas se interrompidas - Monitore os tempos de resposta e ajuste os limites conforme necessário
withContext (opcional)
Boolean no objeto de configuração do programa (params[1]). Apenas a forma de result muda, não filtros, limites ou paginação.
Migração de getProgramAccounts
Migrar do método original é simples - basta substituir o nome do método e adicionar parâmetros de paginação:Métodos Relacionados
getProgramAccounts
getTokenAccountsByOwnerV2
Parâmetros de Requisição
confirmedfinalizedprocessed
true, retorna result.context (metadados do instantâneo: slot, apiVersion) e aninha
accounts e paginationKey sob result.value. Quando false ou omitido,
esses campos aparecem diretamente em result (por exemplo, result.accounts). Mesmos filtros e limites se aplicam.jsonParsedbase58base64base64+zstd
Autorizações
Corpo
A versão do protocolo JSON-RPC.
2.0 "2.0"
Um identificador único para a solicitação.
"1"
O nome do método RPC a ser invocado.
getProgramAccountsV2 "getProgramAccountsV2"
Parâmetros para o método paginado aprimorado.
A chave pública do programa Solana (endereço) para consultar contas, como uma string codificada em base-58.
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Resposta
Contas de programa paginadas recuperadas com sucesso.
A versão do protocolo JSON-RPC.
2.0 "2.0"
Identificador correspondente à solicitação.
"1"
Contas de programa paginadas. Os mesmos campos aparecem no resultado quando withContext é falso ou omitido, ou em result.value quando withContext é verdadeiro.
- sem withContext
- com withContext