---
title: "Leader Slot 信息 API 文档"
description: "Solana Leader Slot 信息 API（getLeaderSlots API）的概述与使用方法"
canonical: "https://erpc.global/zh/doc/rpc/leader-slot-api/"
locale: "zh"
---

# Leader Slot 信息 API 文档

## 什么是 Leader Slot 信息（getLeaderSlots）API？

`getLeaderSlots` 是一个扩展的 Solana RPC 方法，用于返回即将到来的 leader slot 记录，包括 validator identity、质押权重、网络端点元数据、估算的 leader 位置以及参考延迟测量。持有 ERPC 使用额度（API token）的用户，可以用与标准 Solana RPC 方法相同的格式调用。

此 API 提供：

- 从指定 slot 开始的 leader validator 调度
- 每个 leader validator 的 `stakeWeight`
- 估算的 leader 区域、城市、国家、坐标、ASN 组织与时区
- 通过 `pingToLeaders` 提供从 ERPC 各观测区域到 leader 的参考 ping 测量

## 端点和请求体示例

~~~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 条记录中摘录了三条：第一条记录展示了来自 ERPC 全部七个观测区域的 `pingToLeaders`，其余记录为便于阅读只保留了一个区域。

~~~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 记录。 |
| `identity` | Leader validator 的 identity 公钥。 |
| `epoch` | 该 slot 所属的 Solana epoch。 |
| `slot` | Slot 编号。以字符串形式返回，因此客户端不应假定它是 JSON 数字。 |
| `stakeWeight` | 委托给该 leader validator 的质押量。质押量越大，通常该 validator 在较长时间内出现在 leader 调度中的次数越多。 |
| `leaderRegion` | 用于路由与分析的规范化运营区域标签。它可能会把邻近的城市或服务商位置归为一组。 |
| `leaderCity`, `leaderCountry`, `leaderLat`, `leaderLon`, `leaderOrg`, `leaderTimezone` | 该 leader validator 的估算地理位置与网络组织。 |
| `pingToLeaders[]` | 从 ERPC 各观测区域（`frankfurt`、`amsterdam`、`ny`、`london`、`tokyo`、`singapore`、`sydney`）到该 leader 的参考延迟，包含 region、city、ms、icmpReplied、fromIp、country、坐标、ASN organization、邮政编码、timezone 与 measuredAt。 |
| `pingToLeaders[].icmpReplied` | 该 validator 是否回应了本次 ICMP 测量。为 `false` 时，`ms` 中是预置的哨兵值而不是延迟实测值，不应按延迟解读。请把 `false` 理解为「未知」，而不是「距离远」或「不可用」：有些 validator 不回应 ICMP，但 TPU 与 QUIC 仍然正常工作，据此过滤会把健康的 leader 从你的发送路径中剔除。在把 `ms` 当作延迟使用之前，先检查 `icmpReplied`：该字段决定这个数字是否可用，而不是决定该向哪个 validator 发送。 |
| `pingToLeaders[].measuredAt` | 最近一次测量该延迟的时间，采用 ISO-8601 UTC 格式。可用它判断读数的新鲜程度。各观测区域相互独立地进行测量，因此同一个 `pingToLeaders` 数组中的各条记录，`measuredAt` 可能并不相同。`measuredAt` 较旧并不表示读数有问题：某轮测量未能跑完时，系统会保留已存的数值，而不会用编造的数值覆盖它，因此它依然反映过去确实进行过的一次测量。 |

## 可视化 Leader Slot

同一响应可以按 slot 时间线来阅读。下面示例以 Frankfurt 作为观测点。

| Slot 范围 | Leader 区域 | Leader 位置 | 质押权重 | 来自 Frankfurt 的 ping | 运营含义 |
| --- | --- | --- | --- | --- | --- |
| 436946064-436946066 | dublin | Crumlin, IE | 819,031.37 | 18.438 ms | 一个 leader 连续持有三个 slot。Frankfurt 以 18.4 ms 服务它，但 London（11.0 ms）和 Amsterdam（12.8 ms）更近——在这个窗口中，London 或 Amsterdam 的资源优于 Frankfurt。 |
| 436946068 | frankfurt | Frankfurt am Main, DE | 166,438.25 | 0.062 ms | 同城的 leader。此 slot 明显有利于 Frankfurt 的资源。 |

这种视图很有用，因为 Solana 是全球性的。传统 HFT 的主要目标往往是靠近某一个撮合引擎，而 Solana 的 leader 会在全球各地的 validator 之间轮换。最快的区域会随着 leader 调度的变化而变化。

## Solana 网络数据网站

[![Validators Solutions - Solana 网络数据](https://erpc.global/faq/ValidatorsSolutionsEN.jpg)](https://validators.solutions/)

公开的 validator 与网络分布可以通过 [Validators Solutions](https://validators.solutions/) 查看。先用它了解 Solana 网络的整体情况，再使用 `getLeaderSlots` 获取运营路由所需的 slot 级调度、质押权重、validator 位置与实测延迟数据。

## Token 使用量

该 API 从指定 slot 开始返回 100 条 leader slot 记录。每次请求消耗 420 tokens。

如果需要的不是每个 slot 一条记录，而是整个 epoch 中每个 validator 一条记录，请使用 [Validators Information API](https://erpc.global/zh/doc/rpc/validators-information-api/)，它按实际返回的 validator 数量计费。

## 为什么 Leader Slot 信息重要

- 如果 leader 在地理或网络路径上很远，直接发送交易会变得低效。
- 质押权重有助于估计某个 validator 在较长时间内出现在 leader 调度中的频率。
- 在全球范围的 leader 切换期间，区域切换策略比单一的全球平均延迟更重要。
- 结合 slot 调度、质押权重、leader 位置和实测 ping 数据，可以优化路由和 validator 部署。

## 背景

一个 Solana epoch 大约包含 432,000 个 slot。持续收集 leader 调度、validator 元数据、地理位置与延迟测量数据需要专用的数据管线。ERPC 维护这些数据，并通过 RPC 接口以可立即使用的 leader slot 地图形式提供。

## 战略使用场景

- 检测优化：优先处理附近、低延迟的 leader 窗口。
- 多区域部署：在 FRA、AMS、NY、TY、SGP 等关键区域部署资源，以缩短切换空档。
- 考虑质押的规划：使用 `stakeWeight` 了解在较长时间窗口内哪些 leader 出现得更频繁。
- 可视化与分析：按区域监控 leader 比例、质押分布与延迟分布。

## 可用性

`getLeaderSlots` 对所有 ERPC 用户可用。API token 与使用额度可在 ERPC Web Dashboard 上发行或确认。

- ERPC Web Dashboard：[ERPC Web Dashboard](https://dashboard.erpc.global/zh)

## 交易成功率与 SWQoS 端点

若要进一步提高交易成功率和执行速度，建议使用 SWQoS 端点。SWQoS（Stake-weighted Quality of Service）会优先处理拥有质押连接的 validator。Leader 会将大约 80% 的带宽分配给优先流量，20% 分配给非优先流量，优先通道的吞吐量约为 5 倍。该调度发生在 Priority fee 评估之前，因此进入 SWQoS 优先通道是实现真正低延迟性能的前提。
