Leader Slot 정보 API 문서

Leader Slot 정보 (getLeaderSlots) API란?

getLeaderSlots는 validator 신원, stake 가중치, 네트워크 endpoint 메타데이터, 추정 leader 위치, 참조 지연 측정값과 함께 다가오는 leader slot 레코드를 반환하는 확장 Solana RPC 메서드입니다. ERPC 사용 Credits(API Token)를 보유하고 있다면 표준 Solana RPC 메서드와 동일한 형식으로 호출할 수 있습니다.
이 API는 다음을 제공합니다.
  • 요청한 slot부터 시작하는 leader validator 일정
  • 각 leader validator에 대한 stakeWeight
  • 추정 leader 지역, 도시, 국가, 좌표, ASN 조직, 시간대
  • pingToLeaders를 통한 ERPC 관측 지역으로부터의 참조 ping 측정값

Endpoint 및 요청 본문 예시

text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
params에 시작 slot 번호를 지정합니다.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLeaderSlots",
  "params": [436946064]
}

예시 (HTTP)

bash
curl 'https://edge.erpc.global?api-key=<YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"getLeaderSlots",
    "params":[436946064]
  }'

응답 예시 (JSON)

현재 응답은 레코드를 result.data[]로 감쌉니다. result.total은 반환된 레코드 수를 보여줍니다. 아래 data[] 배열은 이번 요청의 100개 레코드 중 3개만 발췌한 것입니다. 첫 번째 항목은 ERPC 관측 지역 7곳 전체의 pingToLeaders를 보여주며, 나머지 항목은 가독성을 위해 1곳으로 줄였습니다.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "success": true,
    "message": "Leader schedule records retrieved successfully",
    "total": 100,
    "data": [
      {
        "identity": "BXAxLMMMUNYfC1z166VjWHR3WjTmqzLxB837o5ghmRtH",
        "epoch": 1011,
        "slot": "436946064",
        "stakeWeight": 819031.365477103,
        "ipAddress": "202.8.10.164",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 5010,
        "rpcAddress": null,
        "version": "4.1.2",
        "featureSet": "3345198602",
        "leaderRegion": "dublin",
        "leaderCity": "Crumlin",
        "leaderCountry": "IE",
        "leaderLat": 53.32154,
        "leaderLon": -6.31439,
        "leaderOrg": "AS20326 TeraSwitch Networks Inc.",
        "leaderTimezone": "Europe/Dublin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 18.438,
            "icmpReplied": true,
            "fromIp": "185.191.118.11",
            "country": "DE",
            "lat": 50.139,
            "lon": 8.6725,
            "org": "AS213896 UAB Cherry Servers",
            "postal": "60320",
            "timezone": "Europe/Berlin",
            "measuredAt": "2026-08-03T06:20:48.000Z"
          },
          {
            "city": "Newark",
            "region": "ny",
            "ms": 74.981,
            "icmpReplied": true,
            "fromIp": "64.130.37.222",
            "country": "US",
            "lat": 40.73566,
            "lon": -74.17237,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "07102",
            "timezone": "America/New_York",
            "measuredAt": "2026-08-03T06:22:21.000Z"
          },
          {
            "city": "London",
            "region": "london",
            "ms": 10.978,
            "icmpReplied": true,
            "fromIp": "67.209.52.250",
            "country": "GB",
            "lat": 51.50853,
            "lon": -0.12574,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "WC2N",
            "timezone": "Europe/London",
            "measuredAt": "2026-08-03T06:23:06.000Z"
          },
          {
            "city": "Singapore",
            "region": "singapore",
            "ms": 166.379,
            "icmpReplied": true,
            "fromIp": "202.8.11.52",
            "country": "SG",
            "lat": 1.2959,
            "lon": 103.7907,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "139963",
            "timezone": "Asia/Singapore",
            "measuredAt": "2026-08-03T06:24:52.000Z"
          },
          {
            "city": "Amsterdam",
            "region": "amsterdam",
            "ms": 12.827,
            "icmpReplied": true,
            "fromIp": "84.32.103.245",
            "country": "NL",
            "lat": 52.37403,
            "lon": 4.88969,
            "org": "AS59642 UAB Cherry Servers",
            "postal": "1012",
            "timezone": "Europe/Amsterdam",
            "measuredAt": "2026-08-03T06:21:33.000Z"
          },
          {
            "city": "Ebara",
            "region": "tokyo",
            "ms": 212.499,
            "icmpReplied": true,
            "fromIp": "198.13.133.88",
            "country": "JP",
            "lat": 35.617,
            "lon": 139.7486,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "140-0002",
            "timezone": "Asia/Tokyo",
            "measuredAt": "2026-08-03T06:24:01.000Z"
          },
          {
            "city": "Sydney",
            "region": "sydney",
            "ms": 274.379,
            "icmpReplied": true,
            "fromIp": "82.26.116.36",
            "country": "AU",
            "lat": -33.86785,
            "lon": 151.20732,
            "org": "AS29802 HIVELOCITY, Inc.",
            "postal": "1001",
            "timezone": "Australia/Sydney",
            "measuredAt": "2026-08-03T06:25:50.000Z"
          }
        ]
      },
      {
        "identity": "BXAxLMMMUNYfC1z166VjWHR3WjTmqzLxB837o5ghmRtH",
        "epoch": 1011,
        "slot": "436946065",
        "stakeWeight": 819031.365477103,
        "ipAddress": "202.8.10.164",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 5010,
        "rpcAddress": null,
        "version": "4.1.2",
        "featureSet": "3345198602",
        "leaderRegion": "dublin",
        "leaderCity": "Crumlin",
        "leaderCountry": "IE",
        "leaderLat": 53.32154,
        "leaderLon": -6.31439,
        "leaderOrg": "AS20326 TeraSwitch Networks Inc.",
        "leaderTimezone": "Europe/Dublin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 18.438,
            "icmpReplied": true,
            "fromIp": "185.191.118.11",
            "country": "DE",
            "lat": 50.139,
            "lon": 8.6725,
            "org": "AS213896 UAB Cherry Servers",
            "postal": "60320",
            "timezone": "Europe/Berlin",
            "measuredAt": "2026-08-03T06:20:48.000Z"
          }
        ]
      },
      {
        "identity": "BXAxLMMMUNYfC1z166VjWHR3WjTmqzLxB837o5ghmRtH",
        "epoch": 1011,
        "slot": "436946066",
        "stakeWeight": 819031.365477103,
        "ipAddress": "202.8.10.164",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 5010,
        "rpcAddress": null,
        "version": "4.1.2",
        "featureSet": "3345198602",
        "leaderRegion": "dublin",
        "leaderCity": "Crumlin",
        "leaderCountry": "IE",
        "leaderLat": 53.32154,
        "leaderLon": -6.31439,
        "leaderOrg": "AS20326 TeraSwitch Networks Inc.",
        "leaderTimezone": "Europe/Dublin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 18.438,
            "icmpReplied": true,
            "fromIp": "185.191.118.11",
            "country": "DE",
            "lat": 50.139,
            "lon": 8.6725,
            "org": "AS213896 UAB Cherry Servers",
            "postal": "60320",
            "timezone": "Europe/Berlin",
            "measuredAt": "2026-08-03T06:20:48.000Z"
          }
        ]
      }
    ]
  }
}

응답 필드

필드의미
result.success요청 성공 여부.
result.message사람이 읽을 수 있는 상태 메시지.
result.total반환된 leader slot 레코드 수. 현재 API는 요청당 100개의 레코드를 반환합니다.
result.data[]요청한 slot부터 시작하여 순서대로 정렬된 leader slot 레코드.
identityLeader validator 신원 공개 키.
epoch해당 slot이 포함된 Solana epoch.
slotSlot 번호. 문자열로 반환되므로 클라이언트는 JSON 숫자로 가정해서는 안 됩니다.
stakeWeightLeader validator에 위임된 stake. 일반적으로 stake가 높을수록 시간이 지나면서 해당 validator가 leader 일정에 더 자주 나타납니다.
leaderRegion라우팅 및 분석에 사용되는 정규화된 운영 지역 라벨. 인접한 도시나 제공자 위치를 묶을 수 있습니다.
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezoneLeader validator의 추정 지리적 위치 및 네트워크 조직.
pingToLeaders[]ERPC 관측 지역(frankfurt, amsterdam, ny, london, tokyo, singapore, sydney)에서 leader까지의 참조 지연. 지역, 도시, ms, icmpReplied, fromIp, 국가, 좌표, ASN 조직, 우편번호, 시간대, measuredAt을 포함합니다.
pingToLeaders[].icmpReplied이 validator가 ICMP 측정에 응답했는지 여부. false이면 ms에는 실측 지연이 아니라 저장된 센티널 값이 담기므로 지연으로 읽어서는 안 됩니다. false는 멀다거나 쓸 수 없다는 뜻이 아니라 알 수 없음으로 다루세요. ICMP에 응답하지 않아도 TPU와 QUIC은 정상적으로 처리하는 validator가 있어, 이 값으로 걸러내면 건강한 leader를 전송 경로에서 빼버릴 수 있습니다. ms를 지연으로 신뢰하기 전에 icmpReplied를 확인하세요. 이 필드는 그 숫자를 쓸 수 있는지를 정할 뿐, 어느 validator로 보낼지를 정하지 않습니다.
pingToLeaders[].measuredAt해당 지연을 마지막으로 측정한 시각 (ISO-8601 UTC). 값이 얼마나 최신인지 판단하는 데 사용하세요. 측정은 관측 지역마다 독립적으로 이루어지므로, 같은 pingToLeaders 배열 안에서도 항목마다 measuredAt이 다를 수 있습니다. measuredAt이 오래되었다고 해서 잘못된 값은 아닙니다. 측정 실행이 끝까지 완료되지 않으면 저장된 값을 지어낸 값으로 덮어쓰지 않고 그대로 두므로, 과거에 실제로 계측이 이루어진 시각이 그대로 남아 있는 것입니다.

Leader Slot 시각화

동일한 응답을 slot 단위 운영 타임라인으로 볼 수 있습니다. 이 예시는 Frankfurt를 관측 지점으로 사용합니다.
Slot 구간Leader 지역Leader 위치Stake 가중치Frankfurt로부터의 Ping운영 해석
436946064-436946066dublinCrumlin, IE819,031.3718.438 ms한 leader가 세 개의 연속된 slot을 담당함. Frankfurt가 18.4 ms로 서비스하지만 London(11.0 ms)과 Amsterdam(12.8 ms)이 더 가까우므로, 이 구간에서는 London이나 Amsterdam 용량이 Frankfurt보다 유리함.
436946068frankfurtFrankfurt am Main, DE166,438.250.062 ms동일 대도시권 leader. 이 slot에서는 Frankfurt 리소스가 강력하게 유리함.
이 관점이 유용한 이유는 Solana가 글로벌하기 때문입니다. 하나의 매칭 엔진 근처에 자리 잡는 것이 주요 목표인 전통적인 HFT와 달리, Solana leader는 전 세계 validator를 가로질러 순환합니다. Leader 일정이 바뀌면 가장 빠른 지역도 바뀝니다.

Solana 네트워크 데이터 웹사이트

Validators Solutions - Solana network data
validator 및 네트워크 분포를 공개적으로 확인하려면 Validators Solutions를 사용하세요. 이를 통해 더 넓은 Solana 네트워크를 이해한 뒤, 운영 라우팅에 필요한 slot 단위 일정, stake 가중치, validator 위치, 측정된 지연 데이터를 얻으려면 getLeaderSlots를 사용하세요.

Token 사용량

이 API는 지정한 slot부터 시작하여 100개의 leader slot 레코드를 가져옵니다. 각 요청은 420 Token을 소비합니다.
slot 1개당 1개 항목이 아니라 epoch 전체에 대해 validator 1대당 1개 항목이 필요하다면, 반환된 validator 수를 기준으로 과금되는 Validators Information API를 사용하세요.

Leader Slot 정보가 중요한 이유

  • Leader가 지리적으로 또는 네트워크 경로상 멀리 떨어져 있으면 직접 트랜잭션 전달이 비효율적입니다.
  • Stake 가중치는 시간이 지나면서 validator가 leader 일정에 얼마나 자주 나타날지 추정하는 데 도움이 됩니다.
  • 글로벌 leader 전환 중에는 단일 글로벌 평균 지연보다 지역 전환 전략이 더 중요합니다.
  • slot 일정, stake 가중치, leader 위치, 측정된 ping 데이터를 결합하면 최적화된 라우팅과 validator 배치가 가능합니다.

배경

단일 Solana epoch는 약 432,000개의 slot으로 구성됩니다. Leader 일정, validator 메타데이터, 지리적 위치, 지연 측정값을 지속적으로 수집하려면 전용 데이터 파이프라인이 필요합니다. ERPC는 이 데이터를 유지하고 RPC 인터페이스를 통해 즉시 사용 가능한 leader slot 맵으로 제공합니다.

전략적 활용 사례

  • 탐지 최적화: 가깝고 지연이 낮은 leader 구간을 우선시.
  • 멀티 리전 배포: FRA, AMS, NY, TY, SGP 및 기타 전략적 지역에 배포하여 전환 격차를 줄임.
  • Stake 인식 계획: stakeWeight를 활용하여 더 긴 구간에서 어떤 leader가 더 자주 중요한지 파악.
  • 시각화 및 분석: 지역별 leader 비율, stake 분포, 지연 분포를 모니터링.

이용 가능 여부

getLeaderSlots는 모든 ERPC 사용자가 이용할 수 있습니다. API Token 및 사용 Credits는 ERPC 웹 Dashboard에서 발급하거나 확인할 수 있습니다.

트랜잭션 성공률 및 SWQoS Endpoint

트랜잭션 성공률과 실행 속도를 더욱 높이려면 SWQoS Endpoint 사용을 권장합니다. SWQoS(Stake-weighted Quality of Service)는 stake 연결이 있는 validator를 우선시합니다. Leader는 대역폭의 약 80%를 우선 트래픽에, 20%를 비우선 트래픽에 할당하며, 우선 레인은 약 5배의 처리량을 제공합니다. 이 스케줄링은 Priority-fee 평가 이전에 이루어지므로, SWQoS 우선 레인에 진입하는 것이 진정한 저지연 성능의 전제 조건입니다.