getProgramAccountsV2
getProgramAccountsV2 es una versión mejorada de getProgramAccounts que incluye paginación basada en cursor y actualizaciones mediante changedSinceSlot para consultar grandes conjuntos de cuentas de Solana.
Descripción general
getProgramAccountsV2 es una versión mejorada del método estándar getProgramAccounts, diseñada para aplicaciones que necesitan consultar de manera eficiente grandes conjuntos de cuentas pertenecientes a programas específicos de Solana. Este método incorpora paginación basada en cursor y funciones de actualización incremental.
- Paginación basada en cursor: Configura límites de 1 a 10 000 cuentas por solicitud
- Actualizaciones incrementales: Usa
changedSinceSlotpara obtener solo las cuentas modificadas recientemente - Mejor rendimiento: Evita tiempos de espera agotados y reduce el uso de memoria con conjuntos de datos grandes
- Compatibilidad con versiones anteriores: Admite todos los parámetros existentes de
getProgramAccounts withContextopcional:trueagregaslotyapiVersiondentro deresult.context; omítelo o usafalsepara que no se incluyan
Beneficios principales
Consultas escalables
Sincronización en tiempo real
changedSinceSlot para realizar actualizaciones incrementales y sincronizar datos en tiempo realEvita tiempos de espera agotados
Uso eficiente de la memoria
Prácticas recomendadas de paginación
Patrón básico de paginación
Actualizaciones incrementales
Consejos de rendimiento
- Comienza con límites más pequeños (1000) y auméntalos según el rendimiento de tu red
- Usa la codificación adecuada:
jsonParsedpara mayor comodidad,base64para mayor rendimiento - Aplica filtros para reducir el tamaño del conjunto de datos antes de la paginación
- Guarda
paginationKeypara reanudar las consultas si se interrumpen - Supervisa los tiempos de respuesta y ajusta los límites según corresponda
withContext (opcional)
Valor booleano en el objeto de configuración del programa (params[1]). Solo cambia la estructura de result, no los filtros, los límites ni la paginación.
Migración desde getProgramAccounts
Migrar desde el método original es sencillo: solo reemplaza el nombre del método y agrega los parámetros de paginación:Métodos relacionados
getProgramAccounts
getTokenAccountsByOwnerV2
Parámetros de la solicitud
confirmedfinalizedprocessed
true, devuelve result.context (metadatos de la instantánea: slot, apiVersion) y anida
accounts y paginationKey dentro de result.value. Cuando es false o se omite,
esos campos aparecen directamente en result (por ejemplo, result.accounts). Se aplican los mismos filtros y límites.jsonParsedbase58base64base64+zstd
Autorizaciones
Cuerpo
La versión del protocolo JSON-RPC.
2.0 "2.0"
Un identificador único para la solicitud.
"1"
El nombre del método RPC que se invocará.
getProgramAccountsV2 "getProgramAccountsV2"
Parámetros del método paginado mejorado.
La clave pública (dirección) del programa de Solana cuyas cuentas se consultarán, como una cadena codificada en base 58.
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Respuesta
Las cuentas de programas paginadas se recuperaron correctamente.
La versión del protocolo JSON-RPC.
2.0 "2.0"
Identificador que coincide con la solicitud.
"1"
Cuentas de programas paginadas. Los mismos campos aparecen en result cuando withContext es false o se omite, o en result.value cuando withContext es true.
- sin withContext
- con withContext