HTTP メソッド
getProgramAccountsV2
特定のSolanaプログラムが所有する大量のアカウントを効率的にクエリするための、カーソルベースのページネーションとchangedSinceSlotサポートを備えたgetProgramAccountsの強化バージョン。
POST
getProgramAccountsV2
概要
getProgramAccountsV2は、特定のSolanaプログラムが所有する大量のアカウントを効率的にクエリする必要があるアプリケーション向けに設計された標準的なgetProgramAccountsメソッドの強化バージョンです。このメソッドは、カーソルベースのページネーションとインクリメンタルアップデート機能を導入します。
V2の新機能:
- カーソルベースのページネーション: 1から10,000アカウントまでのリクエストごとの制限を設定
- インクリメンタルアップデート:
changedSinceSlotを使用して最近変更されたアカウントのみを取得 - パフォーマンスの向上: 大規模データセットでのタイムアウトを防止し、メモリ使用量を削減
- 後方互換性: すべての既存の
getProgramAccountsパラメータをサポート - オプションの
withContext:trueがslotとapiVersionをresult.contextの下に追加します。省略またはfalseの場合、それらは含まれません
主な利点
スケーラブルなクエリ
結果を効率的にページネーションすることで、数百万のアカウントを持つプログラムを処理
リアルタイム同期
インクリメンタルアップデートとリアルタイムデータ同期のために
changedSinceSlotを使用タイムアウト防止
大きなクエリがページネーションで確実に動作するようになります
メモリ効率
データを一度にすべて読み込むのではなく、チャンクで処理
ページネーションのベストプラクティス
基本的なページネーションパターン
インクリメンタルアップデート
パフォーマンスのヒント
- 小さい制限から始める (1000) そしてネットワークパフォーマンスに基づいて増やす
- 適切なエンコーディングを使用:
jsonParsedは利便性のため、base64はパフォーマンスのため - フィルタを適用してページネーション前にデータセットサイズを減らす
paginationKeyを保存して中断した場合にクエリを再開する- 応答時間を監視し、制限を適宜調整する
withContext (オプション)
プログラム構成オブジェクト(params[1])でのブール値。resultの形状のみが変化し、フィルタ、制限、ページネーションは変わりません。
getProgramAccountsからの移行
元のメソッドからの移行は簡単です - メソッド名を置き換え、ページネーションパラメータを追加するだけです。関連メソッド
getProgramAccounts
ページネーションなしの元のメソッド
getTokenAccountsByOwnerV2
トークンアカウントクエリ用のV2メソッド
リクエストパラメータ
Solanaプログラムの公開鍵(アドレス)、base-58エンコードされた文字列としてクエリするアカウントです。
リクエストのコミットメントレベル。
confirmedfinalizedprocessed
リクエストが評価されることのできる最小スロット。
trueの場合、インスタンスメタデータ(slot、apiVersion)を返し、accountsをresult.valueの下にネストします。省略またはfalseの場合、これらのフィールドはresultの上に直接表示されます(例: result.accounts)。同じフィルタと制限が適用されます。返されるアカウントデータのエンコーディングフォーマット。
jsonParsedbase58base64base64+zstd
アカウントのデータのスライスをリクエストします。
返すバイト数。
読み始めるバイトオフセット。
リクエストごとに返す最大アカウント数(1〜10,000)。
次のページを取得するためのbase-58エンコードされたページネーションクルーザー。前の応答からpaginationKeyを使用します。
このスロット番号以降に変更されたアカウントのみを返します。インクリメンタルアップデートに便利です。
特定のSolanaアカウントデータパターンを効率的にクエリするための強力なフィルタリングシステム。
ボディ
application/json
JSON-RPC プロトコルバージョン。
利用可能なオプション:
2.0 例:
"2.0"
リクエストの一意の識別子。
例:
"1"
呼び出すRPCメソッドの名前。
利用可能なオプション:
getProgramAccountsV2 例:
"getProgramAccountsV2"
強化されたページネーションメソッドのパラメータ。
ベース58エンコードされた文字列としてのSolanaプログラム公開鍵(アドレス)で、アカウントを照会します。
例:
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
レスポンス
ページネートされたプログラムアカウントを正常に取得しました。
前へ
getRecentPerformanceSamples最近のパフォーマンスサンプルのリストを、スロットの逆順で返します。パフォーマンスサンプルは60秒ごとに取得され、特定の時間枠で発生するトランザクション数とスロット数を含みます。
次へ
getProgramAccountsV2