Documentación de la API de información de slot del líder

¿Qué es la API de información de slot del líder (getLeaderSlots)?

getLeaderSlots es un método extendido de Solana RPC que devuelve los registros de los próximos slots de líder con la identidad del validador, el peso de stake, los metadatos del endpoint de red, la ubicación estimada del líder y mediciones de latencia de referencia. Si tienes créditos de uso de ERPC (tokens de API), puedes llamarlo con el mismo formato que un método estándar de Solana RPC.
Esta API proporciona:
  • El calendario de validadores líderes a partir del slot solicitado
  • stakeWeight de cada validador líder
  • Región, ciudad, país, coordenadas, organización ASN y zona horaria estimadas del líder
  • Mediciones de ping de referencia desde las regiones de observación de ERPC mediante pingToLeaders

Ejemplo de endpoint y cuerpo de la solicitud

endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>
Especifica el número del slot inicial en params.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLeaderSlots",
  "params": [436946064]
}

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

Ejemplo de respuesta (JSON)

La respuesta actual agrupa los registros en result.data[]. result.total indica cuántos registros se devolvieron. El array data[] de abajo se ha abreviado a tres de los 100 registros de esta solicitud. La primera entrada muestra pingToLeaders desde las siete regiones de observación de ERPC; en las demás entradas se deja una sola región para facilitar la lectura.
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"
          }
        ]
      }
    ]
  }
}

Campos de la respuesta

CampoSignificado
result.successSi la solicitud tuvo éxito.
result.messageMensaje de estado legible para personas.
result.totalNúmero de registros de slots de líder devueltos. Actualmente, la API devuelve 100 registros por solicitud.
result.data[]Registros de slots de líder ordenados a partir del slot solicitado.
identityClave pública de identidad del validador líder.
epochÉpoca de Solana que contiene el slot.
slotNúmero de slot. Se devuelve como cadena, así que los clientes no deben suponer que es un número JSON.
stakeWeightStake delegado al validador líder. Por lo general, cuanto mayor es el stake, más a menudo aparece el validador en los calendarios de líderes con el tiempo.
leaderRegionEtiqueta normalizada de la región operativa que se usa para el enrutamiento y el análisis. Puede agrupar ciudades cercanas o ubicaciones de proveedores.
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezoneGeolocalización estimada y organización de red del validador líder.
pingToLeaders[]Latencia de referencia desde las regiones de observación de ERPC (frankfurt, amsterdam, ny, london, tokyo, singapore, sydney) hasta el líder, con región, ciudad, ms, icmpReplied, fromIp, país, coordenadas, organización ASN, código postal, zona horaria y measuredAt.
pingToLeaders[].icmpRepliedSi el validador respondió a la medición. Cuando es false, ms contiene un valor centinela almacenado en lugar de una latencia y no debe interpretarse como tal. Trata false como desconocido, no como lejano ni inservible: algunos validadores que no responden a ICMP siguen atendiendo TPU y QUIC con normalidad, y filtrarlos puede dejar fuera de tu ruta de envío a un líder sano. Comprueba icmpReplied antes de tomar ms como una latencia: ese campo decide si la cifra es utilizable, no a qué validador enviar.
pingToLeaders[].measuredAtCuándo se midió la latencia por última vez, en ISO-8601 UTC. Úsalo para juzgar hasta qué punto una lectura es actual. Cada región de observación mide de forma independiente, por lo que las entradas de un mismo array pingToLeaders pueden llevar valores de measuredAt distintos. Un measuredAt más antiguo no indica una lectura rota: cuando una ejecución de medición no llega a completarse, el valor almacenado se mantiene en lugar de sobrescribirse con uno inventado, de modo que sigue reflejando una medición real del pasado.

Visualización de los slots de líder

La misma respuesta puede verse como una línea de tiempo operativa slot a slot. Este ejemplo usa Frankfurt como punto de observación.
Ventana de slotsRegión del líderUbicación del líderPeso de stakePing desde FrankfurtLectura operativa
436946064-436946066dublinCrumlin, IE819,031.3718.438 msUn líder tiene tres slots consecutivos. Frankfurt lo atiende a 18.4 ms, pero London (11.0 ms) y Amsterdam (12.8 ms) están más cerca: para esta ventana, la capacidad en London o Amsterdam supera a la de Frankfurt.
436946068frankfurtFrankfurt am Main, DE166,438.250.062 msLíder en la misma área metropolitana. Los recursos de Frankfurt tienen una clara ventaja en este slot.
Esta vista es útil porque Solana es global. A diferencia del HFT tradicional, donde el objetivo principal suele ser situarse cerca de un único matching engine, en Solana el papel de líder rota entre validadores de todo el mundo. La región más rápida cambia a medida que cambia el calendario de líderes.

Sitio web de datos de la red de Solana

Validators Solutions - datos de la red de Solana
Para una vista pública de la distribución de los validadores y de la red, usa Validators Solutions. Úsalo para entender la red de Solana en su conjunto y, después, usa getLeaderSlots para obtener el calendario por slot, el peso de stake, la ubicación de los validadores y los datos de latencia medidos que necesita el enrutamiento operativo.

Uso de tokens

La API obtiene 100 registros de slots de líder a partir del slot especificado. Cada solicitud consume 420 tokens.
Si necesitas una entrada por validador para toda la época en lugar de una entrada por slot, usa la API de información de validadores, que se factura según el número de validadores que devuelve.

Por qué importa la información de slots de líder

  • Si el líder está lejos, geográficamente o por la ruta de red, la entrega directa de transacciones se vuelve ineficiente.
  • El peso de stake ayuda a estimar con qué frecuencia es probable que un validador aparezca en el calendario de líderes con el tiempo.
  • Durante las transiciones de líder por todo el mundo, las estrategias de cambio entre regiones importan más que una única latencia media global.
  • Combinar el calendario de slots, el peso de stake, la ubicación del líder y los datos de ping medidos permite optimizar el enrutamiento y la ubicación de los validadores.

Contexto

Una época de Solana consta de aproximadamente 432.000 slots. Recopilar de forma continua los calendarios de líderes, los metadatos de los validadores, la geolocalización y las mediciones de latencia requiere un pipeline de datos dedicado. ERPC mantiene estos datos y los ofrece a través de la interfaz RPC como un mapa de slots de líder listo para usar.

Casos de uso estratégicos

  • Optimización de la detección: prioriza las ventanas de líderes cercanas y de baja latencia.
  • Despliegue en varias regiones: despliega en FRA, AMS, NY, TY, SGP y otras regiones estratégicas para reducir los huecos en las transiciones.
  • Planificación según el stake: usa stakeWeight para entender qué líderes importan con más frecuencia en ventanas más largas.
  • Visualización y análisis: supervisa la proporción de líderes, la distribución del stake y la distribución de la latencia por región.

Disponibilidad

getLeaderSlots está disponible para todos los usuarios de ERPC. Los tokens de API y los créditos de uso se pueden emitir o comprobar en el ERPC Web Dashboard.

Tasa de éxito de las transacciones y endpoint SWQoS

Para mejorar aún más la tasa de éxito y la velocidad de ejecución de las transacciones, recomendamos usar el endpoint SWQoS. SWQoS (Stake-weighted Quality of Service) da prioridad a los validadores con conexiones respaldadas por stake. Los líderes asignan aproximadamente el 80% del ancho de banda al tráfico prioritario y el 20% al no prioritario, y el carril prioritario ofrece aproximadamente 5x de rendimiento. Esta asignación se hace antes de evaluar las comisiones de prioridad, por lo que entrar en el carril prioritario de SWQoS es el requisito previo para lograr una baja latencia real.