getLeaderSchedule RPC 메서드는 특정 epoch에 대한 검증자에게 블록 생성 리더십 할당을 반환합니다. 리더 일정을 이해하면 네트워크 분석, 특정 시간에 블록을 생성할 검증자를 예측하거나 특정 리더와 상호작용하는 도구에 유용할 수 있습니다.
일반적인 사용 사례
- 네트워크 모니터링: epoch 내 검증자 간의 리더 슬롯 분포를 관찰합니다.
- 거래 라우팅(고급): 일부 고급 애플리케이션은 현재 또는 다음 리더에게 거래를 라우팅하려 할 수 있지만, 이는 일반적으로 네트워크와 RPC 노드에서 처리됩니다.
- 검증자 성능 분석: 리더 일정과 실제 블록 생성을 연관시켜 검증자의 가동 시간과 성능을 평가합니다.
- 에폭 진행 이해: epoch 동안 블록을 생성할 책임이 있는 검증자를 확인합니다.
요청 매개변수
이 메서드는 최대 두 개의 선택적 매개변수를 받을 수 있습니다:slot(u64, 선택 사항): 슬롯 번호입니다. 제공된 경우, 이 슬롯을 포함하는 epoch에 대한 리더 일정이 가져옵니다.null가 제공되지 않거나 생략된 경우, 현재 epoch에 대한 리더 일정이 가져옵니다.config(객체, 선택 사항): 포함할 수 있는 구성 객체입니다:commitment(문자열, 선택 사항): 커밋 수준을 지정합니다. 제공되지 않은 경우 노드의 기본 커밋이 사용됩니다.identity(문자열, 선택 사항): 검증자의 base-58로 인코딩된 공개 키입니다. 제공된 경우, 반환된 일정은 이 특정 검증자에게 할당된 슬롯만 포함합니다.
응답 구조
JSON-RPC 응답의result 필드는 다음과 같습니다:
null: 요청한slot에 해당하는 epoch(슬롯이 제공되지 않은 경우 현재 epoch)이 발견되지 않거나 리더 일정이 사용 불가능한 경우(예: 미래, 계산되지 않은 epoch).- 객체: 일정이 발견된 경우. 이 객체는 다음과 같은 맵입니다:
- 각각의 키는 검증자의 base-58로 인코딩된 공개 키(아이덴티티)입니다.
- 해당 값은 숫자 배열입니다. 각 숫자는 해당 검증자가 리더인 epoch 시작에 상대적인 슬롯 인덱스입니다.
1000에서 시작하고 검증자가 일정에 [0, 1, 5]을 가진 경우, 해당 검증자는 슬롯 1000, 1001, 1005의 리더입니다.
예제
1. 현재 Epoch에 대한 리더 일정 가져오기
이 예제는 현재 epoch의 전체 리더 일정을 가져옵니다.2. 특정 Epoch의 특정 검증자에 대한 리더 일정 가져오기(슬롯별)
이 예제는 슬롯200000을 포함하는 epoch에 대한 주어진 검증자 아이덴티티의 리더 일정을 가져옵니다.
개발자 팁
- Epoch 경계: 리더 일정은 전체 epoch 동안 고정됩니다.
getEpochInfo를 사용하여 epoch의 시작 및 종료 슬롯을 찾을 수 있습니다. - 미래 Epochs: 네트워크가 아직 계산하지 않은 경우, 먼 미래 epoch에 대한 일정을 요청하면
null가 반환될 수 있습니다. - 상대적 슬롯 인덱스: 응답의 슬롯 번호는 요청된 epoch의 첫 슬롯에 상대적이며, 블록체인의 절대 슬롯 번호가 아닙니다.
- 대용량 응답: 아이덴티티 필터가 없는 전체 epoch 일정의 경우, 응답은 모든 검증자와 할당된 슬롯을 나열하여 클 수 있습니다.
getLeaderSchedule를 사용하는 데 필요한 정보를 제공합니다.
관련 메서드
getEpochInfo
슬롯 경계를 포함한 현재 epoch 정보 얻기
getSlotLeaders
특정 범위의 슬롯에 대한 리더 얻기