getVoteAccounts RPC 메소드는 현재 은행의 모든 투표 계정(검증자)에 대한 정보를 반환합니다. 이는 current (활성) 및 delinquent 검증자를 구분하고, 그들의 스테이크, 투표 활동 및 정체성에 대한 세부 정보를 제공합니다.
일반적인 사용 사례
- 검증자 모니터링: 네트워크 상의 검증자의 상태, 스테이크 및 성능 추적.
- 스테이킹 대시보드: SOL을 위임하려는 사용자를 위해 사용 가능한 검증자 정보를 표시.
- 네트워크 건강 분석: 스테이크 분포 및 검증자 활동을 조사하여 네트워크의 전반적인 건강 및 분산도를 평가.
- 비정상 검증자 식별: 합의에 적극적으로 참여하지 않는 검증자를 찾습니다.
요청 매개변수
이 메소드는 다음 필드를 포함하는 선택적 구성 객체를 허용합니다:commitment(string, optional): 쿼리의 커밋 수준을 지정합니다 (예:"finalized","confirmed","processed"). 생략할 경우 노드의 기본 커밋이 사용됩니다.votePubkey(string, optional): 제공된 경우, 결과는 지정된 검증자 투표 계정 주소 (base-58 인코딩)만 포함하도록 필터링됩니다.keepUnstakedDelinquents(boolean, optional): 기본값은false입니다.true로 설정하면delinquent목록에 활성화된 스테이크가 없는 검증자가 포함됩니다. 그렇지 않으면 필터링됩니다.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 네트워크의 검증자 정보를 쿼리하고 이해할 수 있습니다.