Skip to main content
getVoteAccounts RPC 메소드는 현재 은행의 모든 투표 계정(검증자)에 대한 정보를 반환합니다. 이는 current (활성) 및 delinquent 검증자를 구분하고, 그들의 스테이크, 투표 활동 및 정체성에 대한 세부 정보를 제공합니다.

일반적인 사용 사례

  • 검증자 모니터링: 네트워크 상의 검증자의 상태, 스테이크 및 성능 추적.
  • 스테이킹 대시보드: SOL을 위임하려는 사용자를 위해 사용 가능한 검증자 정보를 표시.
  • 네트워크 건강 분석: 스테이크 분포 및 검증자 활동을 조사하여 네트워크의 전반적인 건강 및 분산도를 평가.
  • 비정상 검증자 식별: 합의에 적극적으로 참여하지 않는 검증자를 찾습니다.

요청 매개변수

이 메소드는 다음 필드를 포함하는 선택적 구성 객체를 허용합니다:
  1. commitment (string, optional): 쿼리의 커밋 수준을 지정합니다 (예: "finalized", "confirmed", "processed"). 생략할 경우 노드의 기본 커밋이 사용됩니다.
  2. votePubkey (string, optional): 제공된 경우, 결과는 지정된 검증자 투표 계정 주소 (base-58 인코딩)만 포함하도록 필터링됩니다.
  3. keepUnstakedDelinquents (boolean, optional): 기본값은 false입니다. true로 설정하면 delinquent 목록에 활성화된 스테이크가 없는 검증자가 포함됩니다. 그렇지 않으면 필터링됩니다.
  4. delinquentSlotDistance (u64, optional): 검증자가 장부의 팁에 뒤쳐져 비정상으로 간주되는 슬롯 수를 지정합니다. 지정하지 않으면 노드는 기본값을 사용합니다.

응답 구조

JSON-RPC 응답의 result 필드는 두 개의 배열이 포함된 객체입니다:
  • current: 각 객체가 다음 필드를 포함하는 활성 투표 계정을 나타내는 객체 배열:
    • votePubkey (string): 투표 계정 주소 (base-58 인코딩).
    • nodePubkey (string): 검증자 노드의 공개 키 (base-58 인코딩).
    • activatedStake (u64): 이 투표 계정에 위임되고 현재 에포크에서 활성화된 lamports 수.
    • epochVoteAccount (boolean): 현재 에포크 동안 최소한 한 번 활성화된 경우 true.
    • commission (number): 검증자가 부과하는 커미션 비율 (0-100).
    • lastVote (u64): 이 검증자가 가장 최근에 투표한 슬롯 번호.
    • rootSlot (u64): 노드가 루트로 간주하는 마지막 슬롯 (완전히 확인되고 롤백되지 않을 블록).
    • epochCredits (array): 각 내부 배열에 [epoch, credits_earned_in_epoch, previous_total_credits]가 포함된 배열의 배열.
  • delinquent: 노드에 의해 비정상으로 간주되는 검증자를 나타내는 객체 배열. 구조는 current와 동일합니다.
응답 예시 코드:

코드 예제

개발자 팁

  • 큰 응답: 이 메소드는 특히 Mainnet Beta와 같이 많은 검증자가 있는 네트워크에서 대량의 데이터를 반환할 수 있습니다. 응답 크기와 처리 시간을 염두에 두십시오.
  • 비정상 정의: “비정상”의 정의는 delinquentSlotDistance 및 노드의 관점에 따라 다를 수 있습니다. 한 노드에서는 비정상으로 보이지만 다른 노드에서는 그렇지 않을 수 있습니다.
  • 스테이크 활성화: activatedStake는 현재 에포크에서 활성화된 스테이크를 반영합니다. 스테이크가 활성화되고 비활성화되는 데는 시간이 걸립니다.
  • 에포크 신용: epochCredits는 투표를 통해 신용을 얻는 검증자의 성과 이력을 제공합니다.
이 가이드는 getVoteAccounts RPC 메소드를 다루며, 이를 통해 Solana 네트워크의 검증자 정보를 쿼리하고 이해할 수 있습니다.