Validators जानकारी API दस्तावेज़

Validators जानकारी (getValidatorsInformation) API क्या है?

getValidatorsInformation एक विस्तारित Solana RPC method है जो वर्तमान epoch में कम से कम एक slot का नेतृत्व करने वाले validator लौटाता है, जिसमें stake भार, नेटवर्क endpoint मेटाडेटा, अनुमानित leader स्थान और संदर्भ latency माप प्रति validator एक पंक्ति में समाहित होते हैं। यह नेटवर्क के हर node की सूची नहीं लौटाता, और यह RPC nodes नहीं लौटाता। यदि आपके पास ERPC उपयोग Credits (API Token) हैं, तो आप इसे एक मानक Solana RPC method के समान प्रारूप में कॉल कर सकते हैं।
यह API प्रदान करता है:
  • वर्तमान epoch में slot का नेतृत्व करने वाले प्रत्येक validator के लिए एक पंक्ति, जिसमें slotCount दर्शाता है कि वह कितने slot का नेतृत्व करता है — getLeaderSlots के विपरीत, जो प्रति slot एक पंक्ति लौटाता है
  • प्रत्येक leader validator के लिए stakeWeight
  • अनुमानित leader क्षेत्र, शहर, देश, निर्देशांक, ASN संगठन और समय क्षेत्र
  • pingToLeaders के माध्यम से ERPC observation क्षेत्रों से संदर्भ ping माप

Endpoint और Request Body उदाहरण

text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
प्रत्येक parameter वैकल्पिक है; params छोड़ देने पर, या params: [] भेजने पर, वर्तमान epoch में slot का नेतृत्व करने वाला प्रत्येक validator लौटाया जाता है।
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getValidatorsInformation",
  "params": []
}
परिणाम को संकीर्ण करने के लिए, limit, country और region वाला एक object भेजें। यह उदाहरण जर्मनी में अधिकतम 5 validator माँगता है, जिसकी लागत ऊपर दिए गए बिना-filter अनुरोध से कम भी होती है।
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getValidatorsInformation",
  "params": [{ "limit": 5, "country": "DE" }]
}
तीनों parameter वैकल्पिक हैं। country का मिलान leaderCountry से ISO 3166-1 alpha-2 कोड का उपयोग करके किया जाता है, और यह case-insensitive है। region का मिलान leaderRegion से बिल्कुल सटीक और case-sensitive रूप में किया जाता है — अपने लक्षित validator के लिए मान्य मान जानने हेतु बिना-filter प्रतिक्रिया से leaderRegion पढ़ें। 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[] array को इस epoch की 673 entries में से तीन तक संक्षिप्त किया गया है। पहली entry में सभी सात ERPC observation क्षेत्रों के pingToLeaders दिखाए गए हैं; शेष entries को पठनीयता के लिए एक क्षेत्र तक सीमित किया गया है।
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "success": true,
    "message": "Validator information retrieved successfully",
    "epoch": 1011,
    "total": 673,
    "totalValidators": 673,
    "data": [
      {
        "identity": "Fd7btgySsrjuo25CJCj7oE7VPMyezDhnx7pZkj2v69Nk",
        "gossipNodeId": 734,
        "slotCount": 16912,
        "stakeWeight": 16803592.923637684,
        "ipAddress": "141.95.45.24",
        "gossipPort": 8001,
        "tpuPort": null,
        "tpuQuicPort": 8022,
        "rpcAddress": null,
        "version": "4.1.1",
        "featureSet": "2220189554",
        "leaderRegion": "frankfurt",
        "leaderCity": "Frankfurt am Main",
        "leaderCountry": "DE",
        "leaderLat": 50.11552,
        "leaderLon": 8.68417,
        "leaderOrg": "AS16276 OVH SAS",
        "leaderTimezone": "Europe/Berlin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 1.374,
            "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": "London",
            "region": "london",
            "ms": 16.174,
            "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": "Ebara",
            "region": "tokyo",
            "ms": 234.25,
            "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": "Amsterdam",
            "region": "amsterdam",
            "ms": 14.072,
            "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": "Newark",
            "region": "ny",
            "ms": 87.983,
            "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": "Singapore",
            "region": "singapore",
            "ms": 221.655,
            "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": "Sydney",
            "region": "sydney",
            "ms": 270.79,
            "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": "HEL1USMZKAL2odpNBj2oCjffnFGaYwmbGmyewGv1e2TU",
        "gossipNodeId": 678,
        "slotCount": 15656,
        "stakeWeight": 16025294.32908543,
        "ipAddress": "207.241.184.11",
        "gossipPort": 8001,
        "tpuPort": null,
        "tpuQuicPort": 8002,
        "rpcAddress": null,
        "version": "4.1.0-rc.1",
        "featureSet": "3345198602",
        "leaderRegion": "london",
        "leaderCity": "London",
        "leaderCountry": "GB",
        "leaderLat": 51.50853,
        "leaderLon": -0.12574,
        "leaderOrg": "AS399460 Helius",
        "leaderTimezone": "Europe/London",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 11.246,
            "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": "JUPiTERrZqgf1jUyR7dSkhMx4Kn2qJyekWsg3LT1h4b",
        "gossipNodeId": 273524,
        "slotCount": 12920,
        "stakeWeight": 12539698.447203109,
        "ipAddress": "88.216.36.133",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 9007,
        "rpcAddress": null,
        "version": "4.2.0-rc.0",
        "featureSet": "4119855713",
        "leaderRegion": "frankfurt",
        "leaderCity": "Frankfurt am Main",
        "leaderCountry": "DE",
        "leaderLat": 50.139,
        "leaderLon": 8.6725,
        "leaderOrg": "AS213896 UAB \"Cherry Servers\"",
        "leaderTimezone": "Europe/Berlin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 0.061,
            "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.epochवह epoch जिससे लौटाया गया leader set संबंधित है। यह leader शेड्यूल में मौजूद नवीनतम epoch है।
result.totaldata में validator की संख्या। कॉल का शुल्क इसी मात्रा पर लगता है।
result.totalValidatorscountry, region या limit लागू होने से पहले उस epoch में leader validator की संख्या। किसी filter ने set को कितना संकीर्ण किया, यह देखने के लिए इसकी तुलना result.total से करें।
result.data[]प्रति validator एक entry, slotCount के अवरोही क्रम में और फिर identity के क्रम में, इसलिए limit सबसे अधिक slot का नेतृत्व करने वाले validator लौटाता है।
identityValidator पहचान सार्वजनिक कुंजी।
gossipNodeIdइस validator से जुड़े gossip node रिकॉर्ड का पहचानकर्ता। जब कोई gossip node जुड़ा न हो तो यह null होता है, और उस स्थिति में स्थान, port और ping फील्ड भी खाली रहते हैं। बिना जुड़े gossip node वाले validator बिना-filter अनुरोध में लौटाए जाते हैं, परंतु country या region filter से मेल नहीं खा सकते।
slotCountरिपोर्ट किए गए epoch में यह validator जितने slot का नेतृत्व करता है। प्रत्येक entry एक validator को कवर करती है, एक slot को नहीं।
stakeWeightvalidator पहचान का सक्रिय stake, SOL में। बिना जुड़े gossip node वाले validator 0 रिपोर्ट करते हैं।
ipAddress, gossipPort, tpuPort, tpuQuicPort, rpcAddressvalidator के लिए gossip नेटवर्क endpoint मेटाडेटा।
version, featureSetvalidator द्वारा रिपोर्ट किया गया Solana क्लाइंट संस्करण और feature set।
leaderRegionरूटिंग और विश्लेषण के लिए उपयोग किया जाने वाला सामान्यीकृत परिचालन क्षेत्र लेबल। यह निकटवर्ती शहरों या प्रदाता स्थानों को समूहित कर सकता है, और यही वह मान है जिससे region अनुरोध parameter मेल खाता है।
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezonevalidator के लिए अनुमानित भू-स्थान और नेटवर्क संगठन।
pingToLeaders[]प्रत्येक ERPC observation क्षेत्र (frankfurt, amsterdam, ny, london, tokyo, singapore, sydney) से इस validator तक संदर्भ latency, जिसमें क्षेत्र, शहर, ms, icmpReplied, fromIp, देश, निर्देशांक, ASN संगठन, डाक कोड, समय क्षेत्र और measuredAt शामिल हैं।
pingToLeaders[].icmpRepliedvalidator ने ICMP माप का उत्तर दिया या नहीं। जब यह false हो, तो ms में latency नहीं बल्कि एक संग्रहीत sentinel मान होता है और उसे latency के रूप में नहीं पढ़ना चाहिए। false को अज्ञात मानें, न कि दूर या अनुपयोगी: कुछ validator ICMP का उत्तर नहीं देते, फिर भी TPU और QUIC सामान्य रूप से चलाते हैं, और उन्हें छाँटकर हटाने पर एक स्वस्थ leader आपके send path से निकल सकता है। ms को latency मानने से पहले icmpReplied जाँचें: यह तय करता है कि वह संख्या उपयोग योग्य है या नहीं, यह नहीं कि किस validator को भेजना है।
pingToLeaders[].measuredAtlatency अंतिम बार कब मापी गई, ISO-8601 UTC में। किसी रीडिंग की नवीनता आँकने के लिए इसका उपयोग करें। प्रत्येक observation क्षेत्र स्वतंत्र रूप से मापता है, इसलिए एक ही pingToLeaders array की entries में measuredAt अलग-अलग हो सकता है। पुराना measuredAt ख़राब रीडिंग नहीं है: जब कोई माप चक्र पूरा नहीं हो पाता, तो संग्रहीत मान वैसा ही रहता है और उसे किसी गढ़े हुए मान से नहीं बदला जाता, इसलिए वह अब भी वास्तव में की गई पिछली माप को दर्शाता है।

Validator कवरेज का दृश्यीकरण

उसी प्रतिक्रिया को slot-दर-slot खोज के बजाय epoch-स्तरीय कवरेज मानचित्र के रूप में पढ़ा जा सकता है। यह उदाहरण Frankfurt को observation बिंदु के रूप में उपयोग करता है।
Validator क्षेत्रस्थानepoch में slotStake भारFrankfurt से Pingपरिचालनात्मक रीडिंग
frankfurtFrankfurt am Main, DE16,91216,803,592.921.374 msslot संख्या के अनुसार epoch का सबसे बड़ा leader, उसी मेट्रो में। Frankfurt क्षमता इस validator की सेवा पूरे epoch में करती है, केवल एक slot विंडो के दौरान नहीं।
londonLondon, GB15,65616,025,294.3311.246 msदूसरा सबसे बड़ा leader। Frankfurt इसकी पर्याप्त सेवा करता है, परंतु London क्षमता इस पथ को मेट्रो-स्तरीय latency के निकट ला देगी।
frankfurtFrankfurt am Main, DE12,92012,539,698.450.061 msशीर्ष entry के slot का लगभग तीन-चौथाई रखने वाला एक और समान मेट्रो leader। समान-क्षेत्र क्षमता इसे भी उतनी ही अच्छी तरह कवर करती है।
getLeaderSlots यह उत्तर देता है कि अगले slot का नेतृत्व कौन से validator करते हैं, इसलिए यह अभी किसी लेनदेन को रूट करने के लिए उपयुक्त है; यह method उत्तर देता है कि epoch में कौन से validator नेतृत्व करते हैं और कितनी बार, इसलिए यह तय करने के लिए उपयुक्त है कि epoch के लिए क्षमता कहाँ रखी जाए।

Solana नेटवर्क डेटा वेबसाइट

Validators Solutions - Solana network data
नेटवर्क वितरण के सार्वजनिक दृश्य के लिए Validators Solutions का उपयोग करें, फिर प्रति-validator slot संख्या, stake, स्थान और मापे गए latency के लिए getValidatorsInformation का उपयोग करें।

Token उपयोग

इस method का शुल्क उसके द्वारा लौटाए गए validator की संख्या पर, 10 की इकाइयों में लगता है: प्रत्येक 10 validator की लागत 100 Token है, और अधूरी इकाई भी पूरी इकाई गिनी जाती है। इसलिए 95 validator की प्रतिक्रिया का शुल्क 10 इकाइयों, यानी 1,000 Token के रूप में लगता है।
चूँकि शुल्क माँगे गए के बजाय लौटाए गए के अनुसार लगता है, country या region से set को संकीर्ण करने पर लागत आनुपातिक रूप से कम होती है, और जिस अनुरोध से कोई validator मेल न खाए उसका कोई शुल्क नहीं लगता। epoch में validator की संख्या से बड़ा limit वास्तविक संख्या तक सीमित कर दिया जाता है, इसलिए कोई अनुरोध कभी उन validator के लिए भुगतान नहीं करता जो अस्तित्व में ही नहीं हैं।
leader set का आकार epoch-दर-epoch बदलता रहता है। ऊपर दिखाए गए epoch में यह 673 validator था, जिससे एक पूरा read लगभग 6,800 Token का पड़ता है।

Validator जानकारी क्यों महत्वपूर्ण है

  • प्रति validator एक पंक्ति यह उत्तर देती है कि इस epoch में कौन और कितना नेतृत्व करता है, बिना क्लाइंट-साइड पर सैकड़ों हज़ार slot पंक्तियों को एकत्रित किए।
  • slotCount दर्शाता है कि इस epoch में कोई validator कितनी बार leader होता है, इसलिए उच्च slotCount वाले validator तक छोटा पथ बार-बार लाभ देता है।
  • country और region दर्शाते हैं कि epoch की leader क्षमता वास्तव में कहाँ स्थित है।
  • measuredAt के साथ मिलाकर देखा गया ping धीमे पथ को पुरानी रीडिंग से अलग करता है।

पृष्ठभूमि

एक Solana epoch में लगभग 432,000 slot होते हैं। उन slot के leader आवंटन को validator पहचान के अनुसार समूहित करने पर वे लगभग 670 validator पंक्तियों में सिमट जाते हैं। ERPC leader शेड्यूल, validator मेटाडेटा, भू-स्थान और latency संग्रह का रखरखाव करता है, और परिणाम को RPC इंटरफ़ेस के माध्यम से उजागर करता है।

रणनीतिक उपयोग के मामले

  • epoch-स्तरीय क्षमता योजना: अवसंरचना का आकार किसी रोलिंग slot विंडो के बजाय वर्तमान epoch का नेतृत्व करने वाले validator के पूरे set के अनुसार तय करें।
  • क्षेत्रीय शॉर्टलिस्ट: किसी लक्षित स्थान में slot का नेतृत्व करने वाले validator निकालने के लिए country और region का उपयोग करें।
  • slot-संख्या- और stake-अवगत प्राथमिकता: शॉर्टलिस्ट के भीतर validator को क्रम देने के लिए slotCount और stakeWeight को संयोजित करें।
  • epoch-पार निगरानी: leader भूगोल कैसे बदलता है यह देखने के लिए epoch के बीच leaderRegion वितरण की तुलना करें।

उपलब्धता

getValidatorsInformation सभी ERPC उपयोगकर्ताओं के लिए उपलब्ध है। API Token और उपयोग Credits को ERPC Web Dashboard पर जारी या सत्यापित किया जा सकता है।

लेनदेन सफलता दर और SWQoS Endpoint

लेनदेन सफलता दर और निष्पादन गति को और बेहतर बनाने के लिए, हम SWQoS Endpoint का उपयोग करने की अनुशंसा करते हैं। SWQoS (Stake-weighted Quality of Service) stake कनेक्शन वाले validator को प्राथमिकता देता है। leaders लगभग 80% बैंडविड्थ प्राथमिकता ट्रैफ़िक को और 20% गैर-प्राथमिकता ट्रैफ़िक को आवंटित करते हैं, जहाँ प्राथमिकता लेन लगभग 5x थ्रूपुट प्रदान करती है। यह शेड्यूलिंग Priority-fee मूल्यांकन से पहले होती है, जिसका अर्थ है कि SWQoS प्राथमिकता लेन में प्रवेश करना ही वास्तविक कम-latency प्रदर्शन के लिए पूर्वापेक्षा है।