Documentation de l'API d'information sur les slots leaders

Qu'est-ce que l'API Leader Slot (getLeaderSlots)?

getLeaderSlots est une méthode Solana RPC étendue qui renvoie les prochains slots leaders avec l'identité du validateur, le poids de stake, les métadonnées d'endpoint réseau, l'emplacement estimé du leader et des mesures de latence de référence. Si vous disposez de crédits d'utilisation ERPC (tokens API), vous pouvez l'appeler au même format qu'une méthode Solana RPC standard.
Cette API fournit:
  • Planning des validateurs leaders à partir du slot demandé
  • stakeWeight pour chaque validateur leader
  • Région, ville, pays, coordonnées, organisation ASN et fuseau horaire estimés du leader
  • Mesures de ping de référence depuis les régions d'observation ERPC via pingToLeaders

Exemple d'endpoint et de corps de requête

text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
Spécifiez le numéro du slot de départ dans params.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLeaderSlots",
  "params": [436946064]
}

Exemple (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]
 }'

Exemple de réponse (JSON)

La réponse actuelle enveloppe les enregistrements dans result.data[]. result.total indique le nombre d'enregistrements renvoyés. Le tableau data[] ci-dessous est abrégé à trois des 100 enregistrements de cette requête. La première entrée montre pingToLeaders depuis les sept régions d'observation ERPC; les entrées restantes sont réduites à une seule région pour faciliter la lecture.
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"
          }
        ]
      }
    ]
  }
}

Champs de réponse

ChampSignification
result.successIndique si la requête a réussi.
result.messageMessage de statut lisible par un humain.
result.totalNombre d'enregistrements de slots leaders renvoyés. L'API renvoie actuellement 100 enregistrements par requête.
result.data[]Enregistrements de slots leaders ordonnés à partir du slot demandé.
identityClé publique d'identité du validateur leader.
epochÉpoque Solana contenant le slot.
slotNuméro du slot. Il est renvoyé sous forme de chaîne, les clients ne doivent donc pas supposer qu'il s'agit d'un nombre JSON.
stakeWeightStake délégué au validateur leader. Un stake plus élevé signifie généralement que le validateur apparaît plus souvent dans les plannings leaders au fil du temps.
leaderRegionLibellé de région opérationnelle normalisé, utilisé pour le routage et l'analyse. Il peut regrouper des villes proches ou des emplacements de fournisseurs.
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezoneGéolocalisation et organisation réseau estimées du validateur leader.
pingToLeaders[]Latence de référence depuis les régions d'observation ERPC (frankfurt, amsterdam, ny, london, tokyo, singapore, sydney) vers le leader, avec région, ville, ms, icmpReplied, fromIp, pays, coordonnées, organisation ASN, code postal, fuseau horaire et measuredAt.
pingToLeaders[].icmpRepliedIndique si le validateur a répondu à la mesure ICMP. Lorsqu'il vaut false, ms contient une valeur sentinelle stockée et non une latence, et ne doit pas être lu comme telle. Traitez false comme une valeur inconnue, et non comme un signe d'éloignement ou d'inutilisabilité : certains validateurs qui ne répondent pas à ICMP servent TPU et QUIC tout à fait normalement, et les écarter peut retirer un leader sain de votre chemin d'envoi. Vérifiez icmpReplied avant de considérer ms comme une latence : ce champ détermine si le nombre est exploitable, pas à quel validateur envoyer.
pingToLeaders[].measuredAtDate de la dernière mesure de latence, au format ISO-8601 UTC. Utilisez-la pour juger de la fraîcheur d'un relevé. Chaque région d'observation mesure indépendamment : les entrées d'un même tableau pingToLeaders peuvent donc porter des measuredAt différents. Un measuredAt plus ancien n'est pas un relevé défectueux : lorsqu'une campagne de mesure n'aboutit pas, la valeur stockée est conservée au lieu d'être remplacée par une valeur inventée, et elle reflète donc toujours une mesure réellement effectuée.

Visualisation des slots leaders

La même réponse peut être visualisée comme une chronologie opérationnelle slot par slot. Cet exemple utilise Francfort comme point d'observation.
Fenêtre de slotRégion leaderLieu du leaderPoids de stakePing de FrancfortLecture opérationnelle
436946064-436946066dublinCrumlin, IE819,031.3718.438 msUn leader détient trois slots consécutifs. Francfort le sert à 18.4 ms, mais Londres (11.0 ms) et Amsterdam (12.8 ms) sont plus proches — pour cette fenêtre, la capacité de Londres ou d'Amsterdam l'emporte sur Francfort.
436946068frankfurtFrankfurt am Main, DE166,438.250.062 msLeader dans la même métropole. Les ressources de Francfort sont fortement favorisées pour ce slot.
Cette vue est utile parce que Solana est un réseau mondial. Contrairement au HFT traditionnel, où l'objectif principal consiste souvent à se placer près d'un matching engine, les leaders Solana tournent entre des validateurs répartis dans le monde entier. La région la plus rapide change donc avec le planning des leaders.

Site Web des données du réseau Solana

Validators Solutions - Solana network data
Pour une vue publique de la distribution des validateurs et du réseau, utilisez Validators Solutions. Servez-vous-en pour comprendre le réseau Solana dans son ensemble, puis utilisez getLeaderSlots pour obtenir le planning au niveau du slot, le poids de stake, l'emplacement des validateurs et les données de latence mesurées nécessaires au routage opérationnel.

Utilisation des jetons

L'API récupère 100 enregistrements de slots leaders à partir du slot spécifié. Chaque requête consomme 420 tokens.
Si vous avez besoin d'une entrée par validateur pour toute l'époque plutôt que d'une entrée par slot, utilisez la Validators Information API, qui est facturée selon le nombre de validateurs qu'elle renvoie.

Pourquoi l'information sur les slots leaders compte-t-elle?

  • Si le leader est éloigné géographiquement ou en réseau, la livraison directe des transactions devient inefficace.
  • Le poids de stake aide à estimer la fréquence à laquelle un validateur est susceptible d'apparaître dans le planning des leaders au fil du temps.
  • Lors des transitions entre leaders mondiaux, les stratégies de bascule régionale comptent davantage qu'une simple latence moyenne globale.
  • La combinaison du planning des slots, du poids de stake, de l'emplacement du leader et des données de ping mesurées permet d'optimiser le routage et le placement des validateurs.

Historique

Une époque Solana comprend environ 432 000 slots. Collecter en continu les plannings des leaders, les métadonnées des validateurs, la géolocalisation et les mesures de latence exige un pipeline de données dédié. ERPC maintient ces données et les expose via l'interface RPC sous forme de carte des slots leaders immédiatement exploitable.

Cas d'utilisation stratégique

  • Optimisation de la détection: prioriser les fenêtres de leaders proches et à faible latence.
  • Déploiement multi-régions: déployer en FRA, AMS, NY, TY, SGP et dans d'autres régions stratégiques pour réduire les écarts lors des transitions.
  • Planification fondée sur stakeWeight: comprendre quels leaders comptent le plus souvent sur des fenêtres longues.
  • Visualisation et analyse: surveiller les ratios de leaders, la répartition du stake et la distribution des latences par région.

Disponibilité

getLeaderSlots est disponible pour tous les utilisateurs ERPC. Les tokens API et les crédits d'utilisation peuvent être émis ou vérifiés depuis le tableau de bord Web ERPC.

Taux de réussite des transactions et endpoint SWQoS

Pour améliorer encore le taux de réussite des transactions et la vitesse d'exécution, nous recommandons d'utiliser le SWQoS Endpoint. SWQoS (Stake-weighted Quality of Service) donne la priorité aux validateurs disposant de connexions pondérées par le stake. Les leaders attribuent environ 80 % de la bande passante au trafic prioritaire et 20 % au trafic non prioritaire, la voie prioritaire offrant un débit d'environ 5x. Cette allocation intervient avant l'évaluation des frais de priorité: l'accès à la voie prioritaire SWQoS est donc une condition préalable pour obtenir de vraies performances à faible latence.