Tài liệu API thông tin Validators
API thông tin Validators (getValidatorsInformation) là gì?
getValidatorsInformation là phương thức Solana RPC mở rộng trả về các validator nắm giữ ít nhất một leader slot trong epoch hiện tại, với stake weight, metadata endpoint mạng, vị trí leader ước tính và số đo latency tham chiếu được gộp thành một hàng cho mỗi validator. Phương thức này không trả về danh sách mọi node trên mạng và không trả về các node RPC. Nếu bạn có credit sử dụng ERPC (API token), bạn có thể gọi phương thức này với cùng định dạng như Solana RPC tiêu chuẩn.API này cung cấp:
- Một hàng cho mỗi validator nắm giữ slot trong epoch hiện tại, với
slotCountcho biết validator đó nắm giữ bao nhiêu slot — khác vớigetLeaderSlots, vốn trả về một hàng cho mỗi slot stakeWeightcủa từng validator leader- Region, city, country, tọa độ, ASN organization và timezone ước tính của leader
- Số đo ping tham chiếu từ các region quan sát của ERPC qua
pingToLeaders
Endpoint và ví dụ Request Body
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>https://edge.erpc.global?api-key=<YOUR_API_KEY>Mọi parameter đều tùy chọn; bỏ qua
params hoặc gửi params: [] sẽ trả về mọi validator nắm giữ slot trong epoch hiện tại.json
{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": []
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": []
}Để thu hẹp kết quả, hãy gửi một object với
limit, country và region. Ví dụ này yêu cầu tối đa 5 validator tại Đức, và cũng tốn ít hơn request không lọc ở trên.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" }]
}Cả ba parameter đều tùy chọn.
country được khớp với leaderCountry bằng mã ISO 3166-1 alpha-2, không phân biệt hoa thường. region được khớp chính xác với leaderRegion và phân biệt hoa thường — hãy đọc leaderRegion từ một response không lọc để biết các giá trị hợp lệ cho những validator bạn nhắm tới. limit nhận giá trị từ 1 đến 2000 và được ép về đúng số validator thực tế trong epoch, nên limit lớn hơn số thực không bao giờ gây lỗi.Ví dụ (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":[]
}'Ví dụ Response (JSON)
result.total cho biết request này trả về bao nhiêu validator. Mảng data[] bên dưới được rút gọn còn 3 trong 670 mục của epoch này, và pingToLeaders của mỗi mục được cắt còn một region quan sát cho dễ đọc.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"
}
]
}
]
}
}Trường trong response
| Trường | Ý nghĩa |
|---|---|
result.success | Request có thành công hay không. |
result.message | Thông báo trạng thái dễ đọc. |
result.epoch | Epoch mà tập leader được trả về thuộc về. Đây là epoch mới nhất có trong leader schedule. |
result.total | Số validator trong data. Giá được tính theo con số này, không phải theo số bạn yêu cầu. |
result.totalValidators | Số validator leader trong epoch đó trước khi áp dụng country, region hoặc limit. So sánh với result.total để thấy bộ lọc đã thu hẹp tập kết quả đến đâu. |
result.data[] | Một mục cho mỗi validator, sắp xếp theo slotCount giảm dần rồi theo identity, nên limit sẽ trả về các validator nắm giữ nhiều slot nhất. |
identity | Public key identity của validator. |
gossipNodeId | Định danh của bản ghi node gossip liên kết với validator này. Là null khi không có node gossip nào liên kết, khi đó các trường vị trí, port và ping cũng trống. Validator không có node gossip liên kết vẫn được trả về trong request không lọc, nhưng không thể khớp bộ lọc country hay region. |
slotCount | Số leader slot mà validator này nắm giữ trong epoch được báo cáo. Mỗi mục ứng với một validator, không phải một slot. |
stakeWeight | Stake đang kích hoạt của identity validator, tính bằng SOL. Validator không có node gossip liên kết báo cáo 0. |
ipAddress, gossipPort, tpuPort, tpuQuicPort, rpcAddress | Metadata endpoint mạng gossip của validator. |
version, featureSet | Phiên bản client Solana và feature set do validator báo cáo. |
leaderRegion | Nhãn region vận hành đã chuẩn hóa, dùng cho routing và phân tích. Nó có thể gộp các thành phố hoặc vị trí nhà cung cấp gần nhau, và là giá trị mà parameter region khớp tới. |
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezone | Vị trí địa lý và tổ chức mạng ước tính của validator. |
pingToLeaders[] | Latency tham chiếu tới validator này từ mỗi điểm đo của ERPC, gồm region, city, ms, icmpReplied, fromIp, country, tọa độ, ASN organization, mã bưu chính, timezone và measuredAt. |
pingToLeaders[].icmpReplied | Validator có phản hồi phép đo hay không. Khi là false, ms chứa giá trị sentinel được lưu sẵn chứ không phải latency, và không nên đọc như latency. |
pingToLeaders[].measuredAt | Thời điểm latency được đo lần cuối, theo ISO-8601 UTC. Dùng nó để đánh giá số đo còn mới đến mức nào. |
Hiển thị độ phủ validator trực quan
Cùng một response có thể được đọc như bản đồ độ phủ ở cấp epoch thay vì tra cứu theo từng slot. Ví dụ dưới đây dùng Frankfurt làm điểm quan sát.
| Region của validator | Vị trí | Slot trong epoch | Stake weight | Ping từ Frankfurt | Cách đọc vận hành |
|---|---|---|---|---|---|
| frankfurt | Frankfurt am Main, DE | 13,232 | 12,254,651.76 | 0.974 ms | 13,232 trong khoảng 432,000 slot của epoch, cùng một metro. Tài nguyên Frankfurt phục vụ validator này suốt cả epoch, không chỉ trong một cửa sổ slot. |
| stockholm | Šiauliai, LT | 2,704 | 2,502,391.14 | 27.742 ms | Một phần epoch lặp lại đều đặn, nhưng một vị trí châu Âu khác sẽ cho latency tốt hơn. |
| amsterdam | Amsterdam, NL | 304 | 280,745.69 | 16.835 ms | Ít slot mỗi epoch. Đường đi ngắn, nhưng riêng điều đó chưa phải lý do để đặt tài nguyên. |
getLeaderSlots trả lời validator nào nắm giữ các slot kế tiếp, nên phù hợp để định tuyến một transaction ngay lúc này; phương thức này trả lời validator nào nắm giữ slot trong cả epoch và với tần suất ra sao, nên phù hợp để quyết định nên đặt tài nguyên ở đâu cho epoch đó.
Website dữ liệu mạng Solana
Hãy dùng Validators Solutions cho góc nhìn công khai về phân bố mạng, sau đó dùng
getValidatorsInformation để lấy số slot, stake, vị trí và latency đo được của từng validator.Sử dụng token
Phương thức này được tính phí theo số validator mà nó trả về, theo đơn vị 10: cứ 10 validator tốn 100 tokens, và một đơn vị lẻ được tính như một đơn vị đầy đủ. Vì vậy response có 95 validator được tính là 10 đơn vị, tức 1.000 tokens.
Vì mức phí đi theo những gì được trả về chứ không phải những gì được yêu cầu, thu hẹp tập kết quả bằng
country hoặc region sẽ tốn ít hơn theo tỷ lệ, và request không khớp validator nào thì không tốn gì. limit lớn hơn số validator trong epoch sẽ được ép về đúng số thực, nên request không bao giờ phải trả cho những validator không tồn tại.Quy mô tập leader thay đổi theo từng epoch. Trong epoch hiển thị ở trên là 670 validator, nên đọc toàn bộ tốn khoảng 6.700 tokens.
Vì sao thông tin validator quan trọng
- Một hàng cho mỗi validator trả lời ai nắm giữ epoch này và nhiều đến đâu, mà không cần tổng hợp hàng trăm nghìn hàng slot ở phía client.
slotCountcho biết một validator làm leader thường xuyên đến mức nào trong epoch này, nên đường đi ngắn tới validator cóslotCountcao sẽ có lợi lặp đi lặp lại.countryvàregioncho thấy năng lực leader của epoch thực sự nằm ở đâu.- Ping kết hợp với
measuredAtgiúp phân biệt một đường đi chậm với một số đo đã cũ.
Bối cảnh
Một Solana epoch có khoảng 432.000 slot. Khi các phân công leader cho những slot đó được nhóm theo identity của validator, chúng thu gọn lại còn khoảng 670 hàng validator. ERPC duy trì leader schedule, validator metadata, geolocation và việc thu thập latency, rồi cung cấp kết quả qua giao diện RPC.
Trường hợp sử dụng chiến lược
- Lập kế hoạch năng lực ở cấp epoch: định cỡ hạ tầng theo toàn bộ tập validator nắm giữ slot trong epoch hiện tại, không phải theo một cửa sổ slot trượt.
- Danh sách rút gọn theo khu vực: dùng
countryvàregionđể lấy các validator nắm giữ slot tại vị trí mục tiêu. - Ưu tiên theo số slot và stake: kết hợp
slotCountvàstakeWeightđể xếp hạng validator trong danh sách rút gọn. - Giám sát xuyên epoch: so sánh phân bố
leaderRegiongiữa các epoch để thấy địa lý của leader dịch chuyển thế nào.
Khả dụng
getValidatorsInformation khả dụng cho tất cả người dùng ERPC. API token và credit sử dụng có thể được phát hành hoặc kiểm tra trên ERPC Web Dashboard.- ERPC Web Dashboard: ERPC Web Dashboard
Tỷ lệ thành công giao dịch và SWQoS Endpoint
Để cải thiện thêm tỷ lệ thành công giao dịch và tốc độ thực thi, chúng tôi khuyến nghị sử dụng SWQoS Endpoint. SWQoS (Stake-weighted Quality of Service) ưu tiên các validator có stake connection. Leader phân bổ khoảng 80% bandwidth cho priority traffic và 20% cho non-priority traffic; priority lane có throughput khoảng 5x. Scheduling này diễn ra trước khi đánh giá Priority fee, nghĩa là vào được SWQoS priority lane là điều kiện nền tảng cho hiệu năng low-latency thực sự.







