getProgramAccountsV2
getProgramAccountsV2 est une version améliorée de getProgramAccounts avec pagination par curseur et mises à jour changedSinceSlot pour interroger de grands ensembles de comptes Solana.
Vue d’ensemble
getProgramAccountsV2 est une version améliorée de la méthode standard getProgramAccounts, conçue pour les applications qui ont besoin de consulter efficacement de grands ensembles de comptes appartenant à des programmes Solana spécifiques. Cette méthode introduit des capacités de pagination par curseur et de mise à jour incrémentielle.
- Pagination par curseur : Configurez des limites de 1 à 10 000 comptes par requête
- Mises à jour incrémentielles : Utilisez
changedSinceSlotpour récupérer uniquement les comptes récemment modifiés - Meilleure performance : Évite les dépassements de délai et réduit l’utilisation de la mémoire pour les grands ensembles de données
- Compatibilité ascendante : Prend en charge tous les paramètres existants
getProgramAccounts - Optionnel
withContext:trueajouteslotetapiVersionsousresult.context; omettez oufalseet ils ne sont pas inclus
Principaux avantages
Requêtes évolutives
Synchronisation en temps réel
changedSinceSlot pour les mises à jour incrémentielles et la synchronisation des données en temps réelPrévenir les dépassements de délai
Efficacité de la mémoire
Bonnes pratiques de pagination
Modèle de pagination de base
Mises à jour incrémentielles
Conseils de performance
- Commencez avec des limites plus petites (1000) et augmentez selon les performances de votre réseau
- Utilisez un encodage approprié :
jsonParsedpour la commodité,base64pour la performance - Appliquez des filtres pour réduire la taille du jeu de données avant la pagination
- Stockez
paginationKeypour reprendre les requêtes en cas d’interruption - Surveillez les temps de réponse et ajustez les limites en conséquence
withContext (optionnel)
Booléen sur l’objet de configuration du programme (params[1]). Seule la forme de result change, pas les filtres, limites ou pagination.
Migration depuis getProgramAccounts
La migration depuis la méthode originale est simple - remplacez simplement le nom de la méthode et ajoutez des paramètres de pagination :Méthodes connexes
getProgramAccounts
getTokenAccountsByOwnerV2
Paramètres de la requête
confirmedfinalizedprocessed
true, retourne result.context (métadonnées instantanées : slot, apiVersion) et imbrique
accounts et paginationKey sous result.value. Lorsque false ou omis,
ces champs apparaissent directement sur result (par exemple result.accounts). Les mêmes filtres et limites s’appliquent.jsonParsedbase58base64base64+zstd
Autorisations
Corps
La version du protocole JSON-RPC.
2.0 "2.0"
Un identifiant unique pour la requête.
"1"
Le nom de la méthode RPC à invoquer.
getProgramAccountsV2 "getProgramAccountsV2"
Paramètres pour la méthode paginée améliorée.
La clé publique du programme Solana (adresse) pour interroger les comptes, sous forme de chaîne encodée en base-58.
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Réponse
Program accounts paginés récupérés avec succès.
La version du protocole JSON-RPC.
2.0 "2.0"
Identifiant correspondant à la requête.
"1"
Comptes de programme paginés. Les mêmes champs apparaissent dans le résultat lorsque withContext est faux ou omis, ou sous result.value lorsque withContext est vrai.
- sans withContext
- avec withContext