getProgramAccountsV2
getProgramAccountsV2 ist eine erweiterte Version von getProgramAccounts mit cursorbasierter Paginierung und changedSinceSlot-Updates zur Abfrage großer Solana-Kontensätze.
Übersicht
getProgramAccountsV2 ist eine erweiterte Version der standardmäßigen getProgramAccounts-Methode, die für Anwendungen entwickelt wurde, die effizient große Sätze von Konten abfragen müssen, die bestimmten Solana-Programmen gehören. Diese Methode führt eine cursorbasierte Paginierung und inkrementelle Aktualisierungsfunktionen ein.
- Cursorbasierte Paginierung: Konfigurieren Sie Limits von 1 bis 10.000 Konten pro Anfrage
- Inkrementelle Updates: Verwenden Sie
changedSinceSlot, um nur kürzlich geänderte Konten abzurufen - Bessere Leistung: Verhindert Zeitüberschreitungen und reduziert den Speicherbedarf bei großen Datensätzen
- Rückwärtskompatibilität: Unterstützt alle vorhandenen
getProgramAccounts-Parameter - Optionale
withContext:truefügtslotundapiVersionunterresult.contexthinzu; weglassen oderfalseund sie sind nicht enthalten
Hauptvorteile
Skalierbare Abfragen
Echtzeit-Synchronisierung
changedSinceSlot für inkrementelle Updates und Echtzeit-DatensynchronisierungVermeidung von Zeitüberschreitungen
Speichereffizient
Paginierungs-Best Practices
Grundlegendes Paginationsmuster
Inkrementelle Updates
Leistungstipps
- Mit kleineren Limits beginnen (1000) und basierend auf der Netzwerkleistung erhöhen
- Geeignete Codierung verwenden:
jsonParsedfür Bequemlichkeit,base64für Leistung - Filter anwenden, um die Datensatzgröße vor der Paginierung zu reduzieren
paginationKeyspeichern, um Abfragen bei Unterbrechung fortzusetzen- Antwortzeiten überwachen und Limits entsprechend anpassen
withContext (optional)
Boolean im Programmkonfigurationsobjekt (params[1]). Nur die Form von result ändert sich, nicht die Filter, Limits oder Paginierungen.
Migration von getProgramAccounts
Die Migration von der ursprünglichen Methode ist einfach - ersetzen Sie einfach den Methodennamen und fügen Sie Paginierungsparameter hinzu:Verwandte Methoden
getProgramAccounts
getTokenAccountsByOwnerV2
Anforderungsparameter
confirmedfinalizedprocessed
true, wird result.context (Snapshot-Metadaten: slot, apiVersion) zurückgegeben und
accounts und paginationKey werden unter result.value verschachtelt. Wenn false oder weggelassen,
erscheinen diese Felder direkt auf result (zum Beispiel result.accounts). Dieselben Filter und Limits gelten.jsonParsedbase58base64base64+zstd
Autorisierungen
Body
Die JSON-RPC-Protokollversion.
2.0 "2.0"
Ein eindeutiger Bezeichner für die Anfrage.
"1"
Der Name der aufzurufenden RPC-Methode.
getProgramAccountsV2 "getProgramAccountsV2"
Parameter für die erweiterte paginierte Methode.
Der Solana-Programm-Public-Key (Adresse), für den Konten abgefragt werden sollen, als base-58 kodierte Zeichenkette.
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Antwort
Erfolgreich paginierte Programmkonten abgerufen.
Die JSON-RPC-Protokollversion.
2.0 "2.0"
Kennung, die der Anfrage entspricht.
"1"
Paginierte Programmkonten. Dieselben Felder erscheinen im Ergebnis, wenn withContext falsch oder weggelassen wird, oder unter result.value, wenn withContext wahr ist.
- ohne withContext
- mit withContext