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>https://edge.erpc.global?api-key=<YOUR_API_KEY>所有參數皆為選填;省略
params 或傳入 params: [],將返回當前 epoch 中領導 slot 的全部 validator。json
{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": []
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": []
}若要縮小結果範圍,可傳入包含
limit、country 與 region 的物件。下面的示例請求德國境內最多 5 個 validator,其消耗也低於上面未篩選的請求。json
{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": [{ "limit": 5, "country": "DE" }]
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": [{ "limit": 5, "country": "DE" }]
}這三個參數皆為選填。
country 使用 ISO 3166-1 alpha-2 代碼與 leaderCountry 比對,不分大小寫。region 與 leaderRegion 做區分大小寫的完全比對——可先送出未篩選的請求,從響應中讀取 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":[]
}'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"
}
]
}
]
}
}{
"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.total | data 中的 validator 數量。計費依據的就是這個數量。 |
result.totalValidators | 套用 country、region 或 limit 之前,該 epoch 中的 leader validator 數量。與 result.total 對照即可看出篩選縮小了多少範圍。 |
result.data[] | 每個 validator 一筆記錄,依 slotCount 遞減排序,其次依 identity 排序,因此設定 limit 時返回的是領導最多 slot 的 validator。 |
identity | Validator identity 公鑰。 |
gossipNodeId | 與此 validator 關聯的 gossip 節點記錄的識別碼。未關聯 gossip 節點時為 null,此時位置、連接埠與 ping 欄位同樣為空。沒有關聯 gossip 節點的 validator 會出現在未篩選的請求中,但無法滿足 country 或 region 篩選。 |
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 | 運營含義 |
|---|---|---|---|---|---|
| frankfurt | Frankfurt am Main, DE | 13,232 | 12,254,651.76 | 0.974 ms | 本 epoch 約 432,000 個 slot 中的 13,232 個,且位於同一 metro。Frankfurt 的資源在整個 epoch 都在服務此 validator,而不只是在某一個 slot 視窗內。 |
| stockholm | Šiauliai, LT | 2,704 | 2,502,391.14 | 27.742 ms | 在 epoch 中反覆佔有一定比例,但這個延遲由另一個歐洲位置來服務會更好。 |
| amsterdam | Amsterdam, NL | 304 | 280,745.69 | 16.835 ms | 每個 epoch 的 slot 很少。路徑雖然短,但僅憑這一點還不足以成為部署資源的理由。 |
getLeaderSlots 回答的是接下來的 slot 由哪些 validator 領導,因此適合當下的交易路由;本方法回答的是整個 epoch 中究竟有哪些 validator 領導、各自領導多少次,因此適合決定該 epoch 的資源應當部署在何處。
Solana 網路資料網站
網路分佈的公開檢視可以透過 Validators Solutions 查看,接著使用
getValidatorsInformation 獲取每個 validator 的 slot 數量、stake、位置與實測延遲。Token 使用量
該方法依實際返回的 validator 數量計費,以 10 個為一個計費單位:每 10 個 validator 收取 100 tokens,不足一個單位也以一個完整單位計算。因此返回 95 個 validator 時以 10 個單位計費,即 1,000 tokens。
由於計費依據的是實際返回的數量而非請求的數量,用
country 或 region 縮小範圍會按比例減少消耗,沒有符合任何 validator 的請求則不計費。超過該 epoch 中 validator 數量的 limit 會被收斂為實際數量,因此請求不會為不存在的 validator 付費。leader 集合的規模會隨 epoch 變動。在上面示例的 epoch 中為 670 個 validator,因此完整讀取約需 6,700 tokens。
為什麼 Validator 資訊重要
- 每個 validator 一筆記錄,可直接回答本 epoch 由誰領導、領導多少,無需在用戶端彙總數十萬筆 slot 記錄。
slotCount表明某個 validator 在本 epoch 中擔任 leader 的頻率,因此通往高slotCountvalidator 的短路徑會反覆帶來收益。country與region表明該 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 視窗。
- 區域候選名單:使用
country與region取出在目標位置領導 slot 的 validator。 - 結合 slot 數與 stake 的優先順序:組合
slotCount與stakeWeight,在候選名單內為 validator 排序。 - 跨 epoch 監控:比較不同 epoch 之間的
leaderRegion分佈,觀察 leader 地理分佈如何變化。
可用性
getValidatorsInformation 對所有 ERPC 使用者可用。API token 與使用額度可在 ERPC Web 儀表盤發行或確認。- ERPC Web 儀表盤: 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 是實現真正低延遲效能的前提。







