Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
OnFinality Learn
Infraestructura y operaciones14 min de lectura

Requisitos de un nodo RPC de Solana: hardware, almacenamiento y dimensionamiento de ancho de banda

Guía práctica de dimensionamiento para nodos RPC de Solana: separa los roles de validador y RPC, dimensiona CPU, RAM, almacenamiento NVMe y ancho de banda a partir de la ingesta medida, y evita las conjeturas de las hojas de especificaciones.

TL;DR

El dimensionamiento de un nodo RPC de Solana comienza con la separación de roles: un validador participa en el consenso y gestiona claves de voto y de stake, mientras que un nodo RPC atiende tráfico de lectura y puede ejecutarse sin votar. Un nodo completo conserva el historial reciente del ledger, mientras que un nodo de archivo/ledger retiene mucho más historial para consultas históricas. Cuatro dimensiones de recursos dominan: CPU para la ejecución de transacciones y la verificación de firmas ed25519, RAM para el estado de cuentas y los índices, almacenamiento NVMe para el ledger en crecimiento continuo, y ancho de banda de red de alto rendimiento y con ráfagas, con peering de baja latencia. La documentación oficial de Solana publica guías de hardware mínimas y recomendadas que deben tratarse como punto de partida y conciliarse con la versión actual, ya que los requisitos aumentan con la carga de la red. En lugar de copiar una hoja de especificaciones, deriva el almacenamiento de la tasa de crecimiento del ledger multiplicada por la ventana de retención, la RAM del tamaño del conjunto de cuentas, y la CPU/NIC de los picos de ingesta observados. Este artículo proporciona diagnósticos ejecutables para capturar esos números y una tabla de resultados para comparar los valores medidos con los mínimos y recomendaciones documentados.

Separación de roles: validador versus nodo RPC

La primera decisión de dimensionamiento no es el hardware, sino el rol. Un validador de Solana participa en el consenso, vota sobre bloques y requiere la gestión de claves de voto y de stake; su perfil de hardware está determinado por la participación en el consenso y exige cada vez más CPU, memoria y red de gama alta. Un nodo RPC, en cambio, atiende tráfico de lectura para los clientes y puede ejecutarse sin votar, lo que desplaza el equilibrio de recursos hacia el almacenamiento, la memoria y el rendimiento de red en lugar de la latencia de voto.

Esta distinción es importante porque muchas discusiones en línea sobre hardware confunden los requisitos de validador y de RPC. Si tu objetivo es un acceso de lectura fiable para aplicaciones, estás dimensionando un nodo RPC, no un validador. La documentación de Solana sobre requisitos de validador publica una guía de hardware que a menudo se cita para ambos roles, pero deberías leerla teniendo en cuenta el rol y ajustarla a tu carga de lectura.

Otra división relacionada es la de nodo completo versus nodo de archivo. Un nodo completo (no de archivo) conserva solo el historial reciente del ledger, lo que limita el crecimiento del almacenamiento. Un nodo de archivo o ledger retiene mucho más historial para consultas históricas, multiplicando muchas veces los requisitos de capacidad. Para una comparación más detallada, consulta Nodo de archivo vs nodo completo.

  • Validador: participación en el consenso, claves de voto/stake, CPU y red de gama alta.
  • Nodo RPC: tráfico de lectura, sin votación, con gran peso de almacenamiento y memoria.
  • Nodo completo: solo historial reciente del ledger, crecimiento de almacenamiento limitado.
  • Nodo de archivo/ledger: historial extenso, el almacenamiento se multiplica muchas veces.

CPU: ejecución de transacciones y verificación de firmas

La ejecución de transacciones y la verificación de firmas en Solana dependen de la CPU. Cada transacción incluye firmas ed25519 que deben verificarse, y el runtime ejecuta programas que consumen unidades de cómputo. Durante la ingesta, el nodo debe seguir el ritmo de transacciones de la red, por lo que tanto el número de núcleos como la velocidad de un solo hilo importan. Una CPU con muchos núcleos lentos puede tener dificultades para verificar firmas y ejecutar transacciones lo suficientemente rápido como para mantenerse sincronizada.

La implicación práctica es que debes medir el margen de CPU bajo carga, no solo contar núcleos. Si tu nodo se queda atrás durante la actividad máxima de la red, el cuello de botella suele ser el rendimiento de un solo hilo o la insuficiencia de núcleos para la verificación paralela de firmas. La documentación de Solana proporciona orientación sobre la operación de nodos y el manejo del ledger que informa las expectativas de CPU, pero debes conciliarla con la versión actual, ya que los requisitos aumentan con la carga de la red.

Para los nodos RPC, la CPU también afecta la rapidez con la que puedes atender solicitudes JSON-RPC que desencadenan cómputo, como la simulación o las consultas de cuentas que requieren deserialización. La API JSON-RPC de Solana define la superficie de lectura que sirve tu nodo, y un tráfico de lectura intenso puede competir con la ingesta por la CPU.

  • La verificación de firmas (ed25519) consume mucha CPU.
  • La ejecución de transacciones consume unidades de cómputo y tiempo de CPU.
  • Tanto el número de núcleos como la velocidad de un solo hilo importan para la ingesta.
  • Mide el margen de CPU bajo carga máxima, no solo el número de núcleos.

RAM: estado de cuentas y estructuras de índices

Los nodos de Solana mantienen el estado de las cuentas y las estructuras de índices en memoria. Si la RAM es insuficiente, el sistema operativo hará swapping al disco y degradará drásticamente el rendimiento. El conjunto de cuentas crece con el tiempo, por lo que los requisitos de RAM tienden a aumentar con el uso de la red. Para los nodos RPC, la memoria también almacena en caché los datos de acceso frecuente, lo que puede mejorar la latencia de lectura.

Dimensionar la RAM no es un cálculo único. Debes monitorear la presión de memoria y tener en cuenta el crecimiento. Un nodo que funciona cómodamente hoy puede necesitar más RAM en seis meses a medida que se expande el conjunto de cuentas. La documentación de Solana analiza el estado de las cuentas y el almacenamiento del ledger, que son los principales consumidores de memoria.

Al planificar, considera la diferencia entre nodos completos y de archivo. Un nodo de archivo puede necesitar más RAM para los índices que cubren datos históricos, mientras que un nodo completo puede funcionar con menos. Para cargas de lectura sensibles a la latencia, consulta Latencia RPC de Solana para saber cómo la memoria y el almacenamiento en caché afectan los tiempos de respuesta.

  • El estado de las cuentas y los índices residen en memoria.
  • Una RAM insuficiente provoca swapping y thrashing.
  • El conjunto de cuentas crece con el tiempo; planifica la expansión.
  • Los nodos de archivo pueden necesitar más RAM para índices históricos.

Almacenamiento: crecimiento del ledger y resistencia del NVMe

El ledger de Solana consta de cuentas y shreds y crece continuamente. El almacenamiento debe ser NVMe rápido con alta resistencia TBW (terabytes escritos) porque el nodo escribe constantemente. Los SSD de consumo pueden desgastarse rápidamente bajo esta carga de escritura. Para los nodos de archivo, los requisitos de capacidad se multiplican muchas veces porque se retienen datos históricos del ledger.

Para dimensionar el almacenamiento, derívalo de la tasa de crecimiento del ledger multiplicada por la ventana de retención. Si conoces el tamaño actual del ledger y la tasa de crecimiento, puedes estimar cuánto espacio necesitas para un período de retención determinado. La documentación de Solana proporciona orientación sobre el almacenamiento del ledger y la operación de nodos. Para consultas de datos históricos, consulta Datos históricos de Solana vía RPC.

La resistencia es tan importante como la capacidad. Una unidad que es lo suficientemente grande pero no está calificada para cargas de escritura intensas fallará prematuramente. Verifica la calificación TBW de la unidad y asegúrate de que supere las escrituras esperadas durante la vida útil del nodo. Para un diagnóstico ejecutable que mida el rendimiento de escritura en disco, consulta la sección a continuación.

  • El ledger crece continuamente; se requiere NVMe.
  • La resistencia TBW alta es crítica para cargas de escritura intensas.
  • Los nodos de archivo multiplican muchas veces los requisitos de capacidad.
  • Deriva el almacenamiento de la tasa de crecimiento por la ventana de retención.

Red: ancho de banda y peering de baja latencia

El tráfico de transacciones y Turbine de Solana es de alto rendimiento y con ráfagas. El ancho de banda y el peering de baja latencia importan más que en muchas otras cadenas. Durante la actividad máxima, el nodo debe ingerir un gran volumen de transacciones y propagar shreds. Un ancho de banda insuficiente o una latencia alta pueden hacer que el nodo se quede atrás, lo que provoca problemas de sincronización y lecturas obsoletas.

Para los nodos RPC, la red también afecta la rapidez con la que los clientes pueden llegar a ti. Si atiendes tráfico público, necesitas suficiente ancho de banda para manejar solicitudes concurrentes y un peering de baja latencia con la red de Solana para mantener tu nodo sincronizado. La documentación de Solana proporciona orientación sobre la operación de nodos, pero debes medir tu propio rendimiento y latencia de red bajo carga.

Al dimensionar, considera tanto el ancho de banda de entrada como el de salida. La ingesta es principalmente de entrada, mientras que atender solicitudes RPC es de salida. El tráfico con ráfagas significa que necesitas margen por encima de la utilización promedio. Para solucionar problemas relacionados con la red, consulta Tiempos de espera y reintentos de RPC de Solana.

  • Tráfico de transacciones y Turbine de alto rendimiento y con ráfagas.
  • El peering de baja latencia mantiene el nodo sincronizado.
  • Entrada para la ingesta, salida para las respuestas RPC.
  • Proporciona margen para picos con ráfagas.

Guía mínima documentada versus recomendada

La documentación oficial de Solana publica una guía de hardware que debe tratarse como punto de partida. La página de requisitos del validador enumera especificaciones mínimas y recomendadas, pero no son estáticas. Los requisitos aumentan con la carga de la red y entre versiones, por lo que debes conciliarlos con la versión actual y tu propia carga de trabajo.

La especificación mínima suele ser apenas suficiente para ejecutar un nodo en condiciones ideales. La especificación recomendada proporciona margen para cargas máximas y crecimiento futuro. Para nodos RPC de producción que atienden tráfico real, deberías apuntar al nivel recomendado o superior, y validarlo con mediciones. El comportamiento específico de cada proveedor varía, así que si usas un servicio gestionado, verifica sus especificaciones documentadas.

No trates la documentación como una garantía. Es una línea base. Tus requisitos reales dependen de tu volumen de lectura, necesidades de retención y objetivos de latencia. Las siguientes secciones muestran cómo medir y comparar.

  • La documentación oficial publica especificaciones mínimas y recomendadas.
  • Los requisitos aumentan con la carga de la red y las versiones.
  • El mínimo es para condiciones ideales; el recomendado añade margen.
  • Valida con tu propia carga de trabajo y mediciones.

Derivar el dimensionamiento de la carga de trabajo en lugar de las hojas de especificaciones

En lugar de copiar una hoja de especificaciones, deriva el dimensionamiento de tu carga de trabajo. El almacenamiento es igual a la tasa de crecimiento del ledger multiplicada por la ventana de retención. La RAM escala con el tamaño del conjunto de cuentas y los requisitos de índices. La CPU y la NIC se dimensionan a partir de los picos de ingesta observados. Este enfoque garantiza que aprovisiones para tus necesidades reales en lugar de una línea base genérica.

Comienza midiendo tu nodo actual o un host candidato. Captura el modelo y número de núcleos de la CPU, la memoria, el modelo y espacio libre del dispositivo NVMe, la velocidad de la NIC y una muestra de rendimiento de escritura en disco. También captura la salida de sincronización y estado del propio nodo. Estos números forman la base para la comparación con los mínimos y recomendaciones documentados.

Las siguientes secciones proporcionan diagnósticos ejecutables para recopilar estas mediciones. Úsalos en un host candidato o en un nodo existente. Luego completa la tabla de resultados para emitir un veredicto y decidir las acciones.

  • Almacenamiento = tasa de crecimiento del ledger × ventana de retención.
  • RAM = tamaño del conjunto de cuentas + sobrecarga de índices.
  • CPU/NIC = picos de ingesta observados.
  • Mide antes de aprovisionar.

Diagnóstico ejecutable: captura de métricas del host y del nodo

El siguiente script de Node.js recopila métricas clave del host: modelo y número de núcleos de la CPU, memoria total, modelo y espacio libre del dispositivo NVMe, velocidad de la NIC y una muestra de rendimiento de escritura en disco. También consulta el estado de salud y sincronización del nodo de Solana a través de JSON-RPC. Ejecútalo en el host candidato o en el nodo existente.

El script utiliza módulos estándar de Node.js y el módulo child_process para ejecutar comandos del sistema. Asume un entorno Linux con lscpu, lsblk, df, ethtool y dd disponibles. Ajusta los comandos para tu sistema operativo si es necesario. La llamada JSON-RPC utiliza los métodos getHealth y getEpochInfo de la API JSON-RPC de Solana.

const { execSync } = require('child_process');
const https = require('https');

function run(cmd) {
  try {
    return execSync(cmd, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
  } catch (e) {
    return 'N/A';
  }
}

function getCpuInfo() {
  const model = run("lscpu | grep 'Model name' | cut -d: -f2").trim();
  const cores = run("nproc");
  return { model, cores };
}

function getMemory() {
  const mem = run("free -h | awk '/^Mem:/ {print $2}'");
  return mem;
}

function getNvmeInfo() {
  const device = run("lsblk -d -o NAME,MODEL | grep nvme | head -1");
  const free = run("df -h / | awk 'NR==2 {print $4}'");
  return { device, free };
}

function getNicSpeed() {
  const iface = run("ip route | grep default | awk '{print $5}' | head -1");
  const speed = run(`ethtool ${iface} | grep Speed | awk '{print $2}'`);
  return { iface, speed };
}

function measureDiskWrite() {
  const out = run("dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 conv=fdatasync 2>&1 | tail -1");
  run("rm -f /tmp/testfile");
  return out;
}

function rpcCall(method, params = []) {
  return new Promise((resolve, reject) => {
    const data = JSON.stringify({ jsonrpc: '2.0', id: 1, method, params });
    const req = https.request({
      hostname: 'localhost',
      port: 8899,
      path: '/',
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'Content-Length': data.length }
    }, (res) => {
      let body = '';
      res.on('data', chunk => body += chunk);
      res.on('end', () => resolve(JSON.parse(body)));
    });
    req.on('error', reject);
    req.write(data);
    req.end();
  });
}

(async () => {
  console.log('CPU:', getCpuInfo());
  console.log('Memory:', getMemory());
  console.log('NVMe:', getNvmeInfo());
  console.log('NIC:', getNicSpeed());
  console.log('Disk write:', measureDiskWrite());
  try {
    const health = await rpcCall('getHealth');
    const epoch = await rpcCall('getEpochInfo');
    console.log('Health:', health.result);
    console.log('Epoch:', epoch.result);
  } catch (e) {
    console.log('RPC error:', e.message);
  }
})();

Tabla de resultados: comparación de valores medidos con la guía documentada

Después de ejecutar el diagnóstico, completa la tabla a continuación con tus valores medidos. Compáralos con las especificaciones mínimas y recomendadas documentadas en la página de requisitos del validador de Solana o en la documentación de tu proveedor. La columna de veredicto te ayuda a decidir si el host es adecuado. La columna de acción sugiere los siguientes pasos.

Esta tabla es una plantilla. Debes completarla con tus propias mediciones. No te bases en números genéricos; tu carga de trabajo determina el veredicto. Para los nodos RPC, considera también el tráfico de lectura y las necesidades de retención. Si utilizas un proveedor gestionado, verifica sus especificaciones documentadas y compáralas con tus requisitos.

  • Dimensión: CPU, RAM, Almacenamiento, Red.
  • Valor medido: del script de diagnóstico.
  • Mínimo documentado: de la documentación oficial o del proveedor.
  • Recomendado documentado: de la documentación oficial o del proveedor.
  • Veredicto: adecuado, marginal o inadecuado.
  • Acción: actualizar, monitorear o proceder.
| Dimensión | Valor medido | Mínimo documentado | Recomendado documentado | Veredicto | Acción |
|-----------|----------------|--------------------|------------------------|---------|--------|
| CPU       |                |                    |                        |         |        |
| RAM       |                |                    |                        |         |        |
| Almacenamiento |           |                    |                        |         |        |
| Red       |                |                    |                        |         |        |

Solución de cuellos de botella comunes de dimensionamiento

Cuando un nodo RPC de Solana tiene un rendimiento bajo, el cuello de botella suele ser una de las cuatro dimensiones. Si el nodo se queda atrás durante la actividad máxima de la red, verifica la utilización de la CPU y el rendimiento de un solo hilo. Si el nodo no responde o va lento, verifica la presión de memoria y el swapping. Si la E/S de disco está saturada, verifica el rendimiento de escritura y la resistencia del NVMe. Si el nodo pierde la sincronización o tiene alta latencia, verifica el ancho de banda de red y el peering.

Para problemas específicos de RPC, como tiempos de espera o lecturas obsoletas, consulta Tiempos de espera y reintentos de RPC de Solana. Para la optimización de latencia, consulta Latencia RPC de Solana. Para consultas de datos históricos, consulta Datos históricos de Solana vía RPC.

Recuerda que ejecutar un nodo RPC público para tráfico real también requiere limitación de velocidad, TLS y monitoreo. Estas son preocupaciones operativas más allá del dimensionamiento del hardware. Si necesitas acceso de lectura fiable a escala, un proveedor gestionado puede ser más rentable. Consulta Endpoints RPC de Solana (RPC Assistant) para ver las opciones de proveedores.

  • Cuello de botella de CPU: el nodo se queda atrás durante la actividad máxima.
  • Cuello de botella de RAM: swapping, nodo que no responde.
  • Cuello de botella de almacenamiento: E/S de disco saturada, escrituras lentas.
  • Cuello de botella de red: pérdida de sincronización, alta latencia.
  • Necesidades operativas: limitación de velocidad, TLS, monitoreo.

Limitaciones, compensaciones y próximos pasos

La guía de hardware de Solana cambia entre versiones y debe volver a verificarse. Los números que midas hoy pueden no ser suficientes el año que viene. Ejecutar un nodo RPC público para tráfico real también requiere limitación de velocidad, TLS y monitoreo, lo que añade sobrecarga operativa. Un nodo autoalojado rara vez es la vía más económica para un acceso de lectura fiable a escala en comparación con un proveedor gestionado.

Si decides autoalojar, comienza con el script de diagnóstico, completa la tabla de resultados y compárala con la guía documentada. Para opciones gestionadas, revisa Precios de RPC y Servicio de API. Para detalles específicos de la red, consulta Solana. Para más guías de infraestructura, visita el centro de aprendizaje de OnFinality.

Próximos pasos: ejecuta el diagnóstico en tu host candidato, completa la tabla de resultados y decide si autoalojar o usar un proveedor gestionado. Si autoalojas, monitorea las cuatro dimensiones de forma continua y planifica el crecimiento. Si usas un proveedor, verifica sus especificaciones documentadas y prueba con tu carga de trabajo.

  • La guía de hardware cambia; vuelve a verificarla con cada versión.
  • El RPC público requiere limitación de velocidad, TLS y monitoreo.
  • El autoalojamiento puede no ser lo más económico a escala.
  • Ejecuta diagnósticos, completa la tabla, decide.
  • Monitorea continuamente y planifica el crecimiento.

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar