Solana RPC
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 메서드
요청 매개변수
string
필수
쿼리할 Solana 프로그램 공개 키(주소)로, base-58로 인코딩된 문자열입니다.
string
요청에 대한 커밋 수준.
confirmedfinalizedprocessed
number
요청이 평가될 수 있는 최소 슬롯.
boolean
true일 때,
result.context(스냅샷 메타데이터: slot, apiVersion)을 반환하고,
accounts 및 paginationKey을 result.value에 중첩합니다. false 또는 생략된 경우, 이러한 필드는 result에 직접 나타납니다 (예: result.accounts).
동일한 필터와 제한이 적용됩니다.string
반환된 계정 데이터의 인코딩 형식.
jsonParsedbase58base64base64+zstd
object
계정 데이터의 슬라이스 요청.
number
반환할 바이트 수.
number
읽기를 시작할 바이트 오프셋.
number
요청당 반환할 최대 계정 수 (1-10,000).
string
후속 페이지를 가져오기 위한 base-58 인코딩된 페이지네이션 커서. 이전 응답에서의 paginationKey를 사용하십시오.
number
이 슬롯 번호에서 수정된 이후의 계정만 반환. 점진적 업데이트에 유용합니다.
array
특정 Solana 계정 데이터 패턴을 효율적으로 쿼리하기 위한 강력한 필터링 시스템.
본문
application/json
JSON-RPC 프로토콜 버전입니다.
사용 가능한 옵션:
2.0 예시:
"2.0"
요청에 대한 고유 식별자입니다.
예시:
"1"
호출할 RPC 메서드의 이름입니다.
사용 가능한 옵션:
getProgramAccountsV2 예시:
"getProgramAccountsV2"
향상된 페이징 메서드에 대한 매개변수입니다.
계정을 쿼리할 Solana 프로그램 공개 키(주소)이며, base-58로 인코딩된 문자열입니다.
예시:
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
응답
페이지가 매긴 프로그램 계정을 성공적으로 검색했습니다.