Документация по Leader Slot Information API
Что такое Leader Slot Information API (getLeaderSlots)?
getLeaderSlots - это расширенный метод Solana RPC, который возвращает будущие записи leader slot: validator identity, stake weight, сетевые endpoint metadata, предполагаемую локацию leader и справочные измерения latency. Если у вас есть usage credits ERPC (API tokens), вы можете вызывать его в том же формате, что и стандартный Solana RPC method.API предоставляет:
- расписание leader validators, начиная с указанного slot
stakeWeightдля каждого leader validator- предполагаемые leader region, city, country, coordinates, ASN organization и timezone
- справочные ping-измерения из observation regions ERPC через
pingToLeaders
Пример endpoint и request body
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>https://edge.erpc.global?api-key=<YOUR_API_KEY>Укажите начальный slot в
params.json
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLeaderSlots",
"params": [416462031]
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getLeaderSlots",
"params": [416462031]
}Пример (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":[416462031]
}'curl 'https://edge.erpc.global?api-key=<YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"id":1,
"method":"getLeaderSlots",
"params":[416462031]
}'Пример response (JSON)
Текущий response помещает записи в
result.data[]. result.total показывает количество возвращенных записей.json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"message": "Leader schedule records retrieved successfully",
"total": 100,
"data": [
{
"identity": "BSVckjdW2f8kcXPGcrPPtV9kUDBZ8w8PjrrGVnxgEdwq",
"epoch": 964,
"slot": "416462031",
"stakeWeight": 2502391.138720913,
"ipAddress": "5.199.172.175",
"gossipPort": 12000,
"tpuPort": 12003,
"tpuQuicPort": 12009,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "stockholm",
"leaderCity": "Šiauliai",
"leaderCountry": "LT",
"leaderLat": 55.93333,
"leaderLon": 23.31667,
"leaderOrg": "AS16125 UAB Cherry Servers",
"leaderTimezone": "Europe/Vilnius",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 27.742,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "2oHUYyW2PU9VJh4XBs5TbGgzdernunvGqyKth3kxW4ns",
"epoch": 964,
"slot": "416462032",
"stakeWeight": 280745.689124988,
"ipAddress": "64.130.43.229",
"gossipPort": 8001,
"tpuPort": 5004,
"tpuQuicPort": 5010,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "amsterdam",
"leaderCity": "Amsterdam",
"leaderCountry": "NL",
"leaderLat": 52.37403,
"leaderLon": 4.88969,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Amsterdam",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 16.835,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "JupmVLmA8RoyTUbTMMuTtoPWHEiNQobxgTeGTrPNkzT",
"epoch": 964,
"slot": "416462036",
"stakeWeight": 12254651.761860535,
"ipAddress": "64.130.41.46",
"gossipPort": 8000,
"tpuPort": 9001,
"tpuQuicPort": 9007,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "frankfurt",
"leaderCity": "Frankfurt am Main",
"leaderCountry": "DE",
"leaderLat": 50.1924,
"leaderLon": 8.6753,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Berlin",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 0.974,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
}
]
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"message": "Leader schedule records retrieved successfully",
"total": 100,
"data": [
{
"identity": "BSVckjdW2f8kcXPGcrPPtV9kUDBZ8w8PjrrGVnxgEdwq",
"epoch": 964,
"slot": "416462031",
"stakeWeight": 2502391.138720913,
"ipAddress": "5.199.172.175",
"gossipPort": 12000,
"tpuPort": 12003,
"tpuQuicPort": 12009,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "stockholm",
"leaderCity": "Šiauliai",
"leaderCountry": "LT",
"leaderLat": 55.93333,
"leaderLon": 23.31667,
"leaderOrg": "AS16125 UAB Cherry Servers",
"leaderTimezone": "Europe/Vilnius",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 27.742,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "2oHUYyW2PU9VJh4XBs5TbGgzdernunvGqyKth3kxW4ns",
"epoch": 964,
"slot": "416462032",
"stakeWeight": 280745.689124988,
"ipAddress": "64.130.43.229",
"gossipPort": 8001,
"tpuPort": 5004,
"tpuQuicPort": 5010,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "amsterdam",
"leaderCity": "Amsterdam",
"leaderCountry": "NL",
"leaderLat": 52.37403,
"leaderLon": 4.88969,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Amsterdam",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 16.835,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "JupmVLmA8RoyTUbTMMuTtoPWHEiNQobxgTeGTrPNkzT",
"epoch": 964,
"slot": "416462036",
"stakeWeight": 12254651.761860535,
"ipAddress": "64.130.41.46",
"gossipPort": 8000,
"tpuPort": 9001,
"tpuQuicPort": 9007,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "frankfurt",
"leaderCity": "Frankfurt am Main",
"leaderCountry": "DE",
"leaderLat": 50.1924,
"leaderLon": 8.6753,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Berlin",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 0.974,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
}
]
}
}Поля response
| Поле | Значение |
|---|---|
result.success | Whether the request succeeded. |
result.message | Human-readable status message. |
result.total | Number of returned leader slot records. The API currently returns 100 records per request. |
result.data[] | Ordered leader slot records starting from the requested slot. |
identity | Leader validator identity public key. |
epoch | Solana epoch containing the slot. |
slot | Slot number. It is returned as a string, so clients should not assume a JSON number. |
stakeWeight | Stake delegated to the leader validator. Higher stake generally means the validator appears in leader schedules more often over time. |
leaderRegion | Normalized operational region label used for routing and analysis. It may group nearby cities or provider locations. |
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezone | Estimated geolocation and network organization for the leader validator. |
pingToLeaders[] | Reference latency from ERPC observation regions to the leader, including region, city, ms, fromIp, country, coordinates, ASN organization, postal code, and timezone. |
Визуализация Leader Slots
Тот же response можно читать как операционный timeline по slot. В примере ниже точкой наблюдения является Frankfurt.
| Окно slot | Leader region | Локация leader | Stake weight | Ping из Frankfurt | Операционный вывод |
|---|---|---|---|---|---|
| 416462031 | stockholm | Šiauliai, LT | 2,502,391.14 | 27.742 ms | Нормальная европейская latency, но не тот же metro. |
| 416462032-416462035 | amsterdam | Amsterdam, NL | 280,745.69 | 16.835 ms | Низколатентное европейское окно. Amsterdam resources могут быть полезны. |
| 416462036 | frankfurt | Frankfurt am Main, DE | 12,254,651.76 | 0.974 ms | Leader в той же region. Frankfurt resources имеют сильное преимущество. |
Это важно, потому что Solana является глобальной сетью. В отличие от традиционного HFT, где часто достаточно быть рядом с одним matching engine, leaders Solana ротируются между validators по всему миру. Самая быстрая region меняется вместе с leader schedule.
Сайт данных сети Solana
Для публичного просмотра распределения validators и сети используйте Validators Solutions. Он помогает понять широкую картину сети Solana, а
getLeaderSlots нужен для slot-level schedule, stake weight, validator location и измеренной latency, необходимых для operational routing.Использование tokens
API получает 100 leader slot records, начиная с указанного slot. Каждый request потребляет 420 tokens.
Почему Leader Slot Information важна
- Если leader далеко географически или по network path, direct transaction delivery становится неэффективной.
- Stake weight помогает оценить, какие validators будут чаще появляться в leader schedule на длинном горизонте.
- При глобальных leader transitions regional switching важнее, чем одно среднее значение latency.
- Сочетание slot schedule, stake weight, leader location и measured ping позволяет оптимизировать routing и размещение инфраструктуры.
Контекст
Одна Solana epoch состоит примерно из 432 000 slots. Непрерывный сбор leader schedules, validator metadata, geolocation и latency measurements требует отдельного datapipeline. ERPC поддерживает эти данные и предоставляет их через RPC как готовую к использованию leader slot map.
Стратегические сценарии
- Detection optimization: приоритизируйте близкие leader windows с низкой latency.
- Multi-region deployment: размещайтесь в FRA, AMS, NY, TY, SGP и других стратегических regions, чтобы уменьшить gaps при transitions.
- Stake-aware planning: используйте
stakeWeight, чтобы понимать, какие leaders чаще важны на длинных окнах. - Visualization и analytics: отслеживайте leader ratios, stake distribution и latency distribution по region.
Доступность
getLeaderSlots доступен всем пользователям ERPC. API tokens и usage credits можно выпустить или проверить в ERPC Web Dashboard.- ERPC Web Dashboard: ERPC Web Dashboard
Успешность транзакций и SWQoS Endpoint
Чтобы дополнительно повысить успешность транзакций и скорость исполнения, мы рекомендуем использовать SWQoS Endpoint. SWQoS (Stake-weighted Quality of Service) приоритизирует validators со stake connections. Leaders выделяют примерно 80% bandwidth для priority traffic и 20% для non-priority traffic; priority lane дает около 5x throughput. Эта scheduling происходит до оценки Priority fee, поэтому попадание в SWQoS priority lane является предпосылкой настоящей low-latency performance.
