Validators 資訊 API 文件

什麼是 Validators 資訊(getValidatorsInformation)API?

getValidatorsInformation 是一個擴充套件 Solana RPC 方法,用於返回當前 epoch 中至少領導一個 slot 的 validator,並將 stake weight、網路端點後設資料、估算的 leader 位置與參考延遲測量彙整為每個 validator 一筆記錄。它不會返回網路上所有節點的清單,也不會返回 RPC 節點。持有 ERPC 使用額度(API token)的使用者,可以用與標準 Solana RPC 相同的格式呼叫。
此 API 提供:
  • 當前 epoch 中領導 slot 的每個 validator 一筆記錄,slotCount 表示它領導的 slot 數量——與每個 slot 一筆記錄的 getLeaderSlots 不同
  • 每個 leader validator 的 stakeWeight
  • 估算的 leader region、city、country、座標、ASN organization 與 timezone
  • ERPC 觀測 region 到 leader 的參考 ping 測量(pingToLeaders

端點和請求體示例

text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
所有參數皆為選填;省略 params 或傳入 params: [],將返回當前 epoch 中領導 slot 的全部 validator。
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getValidatorsInformation",
  "params": []
}
若要縮小結果範圍,可傳入包含 limitcountryregion 的物件。下面的示例請求德國境內最多 5 個 validator,其消耗也低於上面未篩選的請求。
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getValidatorsInformation",
  "params": [{ "limit": 5, "country": "DE" }]
}
這三個參數皆為選填。country 使用 ISO 3166-1 alpha-2 代碼與 leaderCountry 比對,不分大小寫。regionleaderRegion 做區分大小寫的完全比對——可先送出未篩選的請求,從響應中讀取 leaderRegion,以了解目標 validator 的有效取值。limit 接受 1 到 2000,並會收斂為該 epoch 中 validator 的實際數量,因此超過實際數量的 limit 不會出錯。

示例(HTTP)

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

響應示例(JSON)

result.total 表示本次請求返回的 validator 數量。下面的 data[] 陣列從本 epoch 的 670 筆記錄中節錄了三筆,並且為便於閱讀,每筆記錄的 pingToLeaders 只保留一個觀測 region。
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "success": true,
    "message": "Validator information retrieved successfully",
    "epoch": 1010,
    "total": 670,
    "totalValidators": 670,
    "data": [
      {
        "identity": "JupmVLmA8RoyTUbTMMuTtoPWHEiNQobxgTeGTrPNkzT",
        "gossipNodeId": 2233,
        "slotCount": 13232,
        "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,
            "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-01T06:02:18.000Z"
          }
        ]
      },
      {
        "identity": "BSVckjdW2f8kcXPGcrPPtV9kUDBZ8w8PjrrGVnxgEdwq",
        "gossipNodeId": 1487,
        "slotCount": 2704,
        "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,
            "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-01T06:02:53.000Z"
          }
        ]
      },
      {
        "identity": "2oHUYyW2PU9VJh4XBs5TbGgzdernunvGqyKth3kxW4ns",
        "gossipNodeId": 902,
        "slotCount": 304,
        "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,
            "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-01T06:03:07.000Z"
          }
        ]
      }
    ]
  }
}

響應欄位

欄位含義
result.success請求是否成功。
result.message可讀的狀態訊息。
result.epoch所返回 leader 集合所屬的 epoch。這是 leader schedule 中最新的 epoch。
result.totaldata 中的 validator 數量。計費依據的就是這個數量。
result.totalValidators套用 countryregionlimit 之前,該 epoch 中的 leader validator 數量。與 result.total 對照即可看出篩選縮小了多少範圍。
result.data[]每個 validator 一筆記錄,依 slotCount 遞減排序,其次依 identity 排序,因此設定 limit 時返回的是領導最多 slot 的 validator。
identityValidator identity 公鑰。
gossipNodeId與此 validator 關聯的 gossip 節點記錄的識別碼。未關聯 gossip 節點時為 null,此時位置、連接埠與 ping 欄位同樣為空。沒有關聯 gossip 節點的 validator 會出現在未篩選的請求中,但無法滿足 countryregion 篩選。
slotCount此 validator 在所報告 epoch 中領導的 slot 數量。每筆記錄對應一個 validator,而非一個 slot。
stakeWeight此 validator identity 的啟用質押量,單位為 SOL。沒有關聯 gossip 節點的 validator 返回 0
ipAddress, gossipPort, tpuPort, tpuQuicPort, rpcAddress此 validator 的 gossip 網路端點後設資料。
version, featureSet此 validator 回報的 Solana 用戶端版本與 feature set。
leaderRegion用於路由與分析的正規化運營 region 標籤。它可能將鄰近的城市或供應商位置歸為一組,也是 region 請求參數所比對的值。
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezone此 validator 的估算地理位置與網路組織。
pingToLeaders[]從各個 ERPC 觀測 region 到此 validator 的參考延遲,包含 region、city、ms、icmpReplied、fromIp、country、座標、ASN organization、郵遞區號、timezone 與 measuredAt。
pingToLeaders[].icmpReplied此 validator 是否回應了本次測量。為 false 時,ms 帶的是預設的哨兵值而非延遲實測值,不應以延遲解讀。
pingToLeaders[].measuredAt最近一次測量此延遲的時間,採用 ISO-8601 UTC 格式。可用它判斷讀數的新鮮程度。

視覺化 Validator 覆蓋

同一響應可以按 epoch 層級的覆蓋分佈來閱讀,而非逐 slot 查詢。下面示例以 Frankfurt 作為觀測點。
Validator region位置epoch 內 slot 數Stake weight來自 Frankfurt 的 ping運營含義
frankfurtFrankfurt am Main, DE13,23212,254,651.760.974 ms本 epoch 約 432,000 個 slot 中的 13,232 個,且位於同一 metro。Frankfurt 的資源在整個 epoch 都在服務此 validator,而不只是在某一個 slot 視窗內。
stockholmŠiauliai, LT2,7042,502,391.1427.742 ms在 epoch 中反覆佔有一定比例,但這個延遲由另一個歐洲位置來服務會更好。
amsterdamAmsterdam, NL304280,745.6916.835 ms每個 epoch 的 slot 很少。路徑雖然短,但僅憑這一點還不足以成為部署資源的理由。
getLeaderSlots 回答的是接下來的 slot 由哪些 validator 領導,因此適合當下的交易路由;本方法回答的是整個 epoch 中究竟有哪些 validator 領導、各自領導多少次,因此適合決定該 epoch 的資源應當部署在何處。

Solana 網路資料網站

Validators Solutions - Solana network data
網路分佈的公開檢視可以透過 Validators Solutions 查看,接著使用 getValidatorsInformation 獲取每個 validator 的 slot 數量、stake、位置與實測延遲。

Token 使用量

該方法依實際返回的 validator 數量計費,以 10 個為一個計費單位:每 10 個 validator 收取 100 tokens,不足一個單位也以一個完整單位計算。因此返回 95 個 validator 時以 10 個單位計費,即 1,000 tokens。
由於計費依據的是實際返回的數量而非請求的數量,用 countryregion 縮小範圍會按比例減少消耗,沒有符合任何 validator 的請求則不計費。超過該 epoch 中 validator 數量的 limit 會被收斂為實際數量,因此請求不會為不存在的 validator 付費。
leader 集合的規模會隨 epoch 變動。在上面示例的 epoch 中為 670 個 validator,因此完整讀取約需 6,700 tokens。

為什麼 Validator 資訊重要

  • 每個 validator 一筆記錄,可直接回答本 epoch 由誰領導、領導多少,無需在用戶端彙總數十萬筆 slot 記錄。
  • slotCount 表明某個 validator 在本 epoch 中擔任 leader 的頻率,因此通往高 slotCount validator 的短路徑會反覆帶來收益。
  • countryregion 表明該 epoch 的 leader 資源實際位於何處。
  • Ping 結合 measuredAt 可以區分「路徑慢」與「讀數過時」。

背景

一個 Solana epoch 大約包含 432,000 個 slot。將這些 slot 的 leader 分配依 validator identity 歸組之後,會收斂為大約 670 筆 validator 記錄。ERPC 維護 leader schedule、validator metadata、geolocation 與 latency 收集,並透過 RPC 介面提供結果。

戰略使用場景

  • epoch 層級容量規劃:依當前 epoch 全部 leader validator 的集合來規劃基礎設施規模,而非依滾動的 slot 視窗。
  • 區域候選名單:使用 countryregion 取出在目標位置領導 slot 的 validator。
  • 結合 slot 數與 stake 的優先順序:組合 slotCountstakeWeight,在候選名單內為 validator 排序。
  • 跨 epoch 監控:比較不同 epoch 之間的 leaderRegion 分佈,觀察 leader 地理分佈如何變化。

可用性

getValidatorsInformation 對所有 ERPC 使用者可用。API token 與使用額度可在 ERPC Web 儀表盤發行或確認。

交易成功率與 SWQoS Endpoint

若要進一步提高交易成功率和執行速度,建議使用 SWQoS Endpoint。SWQoS(Stake-weighted Quality of Service)會優先處理擁有 stake connection 的 validator。Leader 大約將 80% 頻寬分配給 priority traffic,20% 分配給 non-priority traffic,priority lane 約有 5 倍 throughput。該排程發生在 Priority fee 評估之前,因此進入 SWQoS priority lane 是實現真正低延遲效能的前提。