Solana RPC
getProgramAccountsV2
getProgramAccountsV2는 커서 기반 페이지 매김과 변경된 슬롯 업데이트를 지원하여 대규모 Solana 계정 세트를 쿼리하는 향상된 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"
응답
페이지가 매긴 프로그램 계정을 성공적으로 검색했습니다.