Resumen
El RPC compartido de Solana agrupa a muchos solicitantes en el mismo backend, lo que mantiene los costos bajos y la configuración simple, pero hace que el rendimiento y la latencia sean impredecibles bajo carga. Los nodos dedicados de Solana otorgan a una carga de trabajo su propia infraestructura, por lo que controlas la capacidad, los límites de velocidad y con qué agresividad haces polling o te suscribes. Este artículo desglosa las ventajas y desventajas, las cargas de trabajo que se ajustan a cada modelo y cómo evaluar a los proveedores antes de comprometerte.
El perfil de rendimiento de Solana es inusual. Los bloques llegan rápido, las cuentas se actualizan constantemente y una sola dApp ocupada puede generar más tráfico RPC que una cadena de tamaño medio completa. Por eso "compartido vs dedicado" importa más en Solana que en la mayoría de las redes: el mismo endpoint que se siente instantáneo durante períodos tranquilos puede estancarse cuando un vecino ruidoso comienza a martillar getProgramAccounts o a abrir miles de suscripciones WebSocket.
Esta página compara los dos modelos de acceso directamente y luego te ayuda a elegir uno según tu carga de trabajo en lugar de la copia de marketing. Si ya sabes que necesitas capacidad aislada, los nodos dedicados son la opción relevante; si aún estás sopesando proveedores, comienza con la página de la red Solana y los precios de RPC.
Recomendación rápida: qué modelo se ajusta a tu carga de trabajo
Usa esto como un primer filtro antes de leer el resto.
- El RPC compartido suele ser suficiente cuando estás prototipando, ejecutando una billetera con tráfico de lectura modesto, indexando un programa pequeño o sirviendo una dApp donde los picos de latencia ocasionales son tolerables.
- El acceso dedicado vale la pena cuando ejecutas infraestructura de trading, un bot de alta frecuencia, una dApp pública con tráfico irregular, un indexador que escanea grandes conjuntos de cuentas o cualquier cosa que dependa de una entrega estable de WebSocket.
- Una configuración híbrida es común en producción: endpoints compartidos para llamadas de UI con mucha lectura y un nodo dedicado para las rutas que no pueden permitirse contención.
Si aún no puedes describir tus solicitudes máximas por segundo, tu llamada más grande a getProgramAccounts y tu recuento de suscripciones WebSocket, mide esos primero. La comparación a continuación solo se vuelve útil una vez que tengas números aproximados.
Qué significan realmente "compartido" y "dedicado" en Solana
RPC compartido significa que muchos clientes son atendidos por el mismo grupo de nodos detrás de un balanceador de carga. Obtienes una URL, un límite de velocidad y la capacidad que quede después de otros inquilinos. Es barato, rápido de configurar y está bien para la mayoría de los patrones de lectura. La desventaja es la varianza: tu latencia y tasa de éxito dependen de la demanda agregada.
El acceso dedicado significa que el nodo (o clúster de nodos) se aprovisiona para tu carga de trabajo. No compites por espacios en una cola compartida, y tus límites de velocidad son una función del hardware que alquilas en lugar de una cuota compartida. OnFinality ofrece ambos modelos como API RPC e infraestructura de nodos dedicados, por lo que la elección se trata de adaptar el modelo a la carga de trabajo en lugar de la disponibilidad.
Tabla comparativa: RPC de Solana compartido vs dedicado
| Dimensión | RPC de Solana compartido | Nodo de Solana dedicado |
|---|---|---|
| Modelo de capacidad | Agrupada entre inquilinos | Aprovisionada para tu carga de trabajo |
| Comportamiento de latencia | Buena en promedio, variable en picos | Más consistente bajo carga sostenida |
| Límites de velocidad | Fijos por plan, backend compartido | Ligados al dimensionamiento de tu nodo |
| Suscripciones WebSocket | A menudo limitadas o con contención | Dimensionadas según tu número de conexiones |
Métodos pesados (getProgramAccounts, getSignaturesForAddress) | Pueden ser limitados o restringidos | Limitados principalmente por tu hardware |
| Consultas de archivo / históricas | Depende de la retención del proveedor | Configurable con tu nodo |
| Perfil de costo | Bajo, mensual predecible | Mayor, escala con la capacidad |
| Carga operativa | Ninguna | Gestionada por el proveedor, pero tú decides el dimensionamiento |
| Mejor para | Prototipos, billeteras, dApps ligeras | Bots, indexadores, dApps de alto tráfico |
Trata la tabla como una ayuda para la decisión, no como una garantía. Los números reales dependen del proveedor, la región y tu mezcla de solicitudes.
Puntos de presión específicos de Solana que cambian la decisión
La superficie RPC de Solana difiere de las cadenas EVM de maneras que hacen que el acceso compartido sea más riesgoso para algunas cargas de trabajo.
Los escaneos de cuentas son costosos. getProgramAccounts puede devolver conjuntos de resultados enormes. En un endpoint compartido, los proveedores con frecuencia limitan o deshabilitan esto porque un solo solicitante puede degradar el grupo. En un nodo dedicado, el costo recae en tu propia capacidad.
Las suscripciones WebSocket son con estado. accountSubscribe, logsSubscribe y slotSubscribe mantienen estado en el servidor. Los grupos compartidos deben limitar las suscripciones concurrentes, por lo que tu techo efectivo puede caer cuando otros inquilinos están activos.
La sincronización a nivel de slot importa. Los bots que reaccionan a cambios de slot o nuevos bloques necesitan una entrega consistente, no solo una latencia promedio consistente. La contención se manifiesta como jitter, que es más difícil de sortear que una línea base ligeramente más alta.
Los niveles de compromiso interactúan con la carga. Las solicitudes de datos processed o confirmed son más baratas que las consultas finalized que pueden necesitar un estado más profundo. Bajo contención, la brecha se amplía.
Cómo hacer benchmark antes de comprometerte
No elijas un modelo a partir de una hoja de especificaciones. Ejecuta la misma prueba contra un endpoint compartido y un nodo dedicado y compara la distribución, no solo la media.
# Measure latency distribution for a common read call
for i in $(seq 1 50); do
curl -s -o /dev/null -w "%{time_total}\n" \
-X POST https://solana.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}'
done
Para una prueba más realista, reproduce tu propia mezcla de tráfico. Un bot que llama a getLatestBlockhash y sendTransaction en un bucle estresa el nodo de manera diferente que un indexador que ejecuta getSignaturesForAddress en muchas direcciones. Captura la latencia p50, p95 y p99, además de las tasas de error por método.
Si usas WebSockets, prueba la estabilidad de la suscripción por separado:
// Minimal WebSocket subscription probe
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");
let count = 0;
ws.onopen = () => {
ws.send(JSON.stringify({
jsonrpc: "2.0", id: 1,
method: "slotSubscribe",
params: []
}));
};
ws.onmessage = () => {
count++;
if (count % 100 === 0) console.log(`slots received: ${count}`);
};
ws.onclose = () => console.log("closed after", count, "slots");
Ejecuta esto durante una hora en tu ventana de máxima actividad. Un endpoint compartido que deja caer el socket bajo carga lo mostrará aquí.
Matriz de evaluación de proveedores para Solana
Cuando comparas proveedores, las preguntas que importan son operativas, no cosméticas. OnFinality aparece primero aquí porque es el punto de referencia para esta comparación, pero los criterios se aplican a cualquier proveedor que evalúes.
| Proveedor | Modelos de acceso | Qué verificar |
|---|---|---|
| OnFinality | API RPC compartida y nodos dedicados | Soporte de métodos, límites de WebSocket, opciones de dimensionamiento dedicado, ubicación regional |
| Otros proveedores de RPC gestionados | Generalmente compartido, a veces dedicado | Si se permiten métodos pesados, límites de suscripción, retención para consultas históricas |
| Nodo autoalojado | Dedicado por definición | Costo de hardware, ajuste de validador/RPC, cadencia de actualizaciones, carga de guardia |
Haz a cada proveedor las mismas preguntas: qué métodos tienen límite de velocidad, cuál es el techo de WebSocket, cómo se retienen los datos históricos y qué sucede durante la congestión de la red. Las respuestas vagas son una señal.
Compensaciones de costo y riesgo
El RPC compartido es más barato en términos absolutos y casi no tiene sobrecarga operativa. El costo oculto es el tiempo de ingeniería dedicado a sortear límites de velocidad, reintentos y jitter. Si tu equipo pasa un sprint construyendo lógica de retroceso para sobrevivir a un endpoint compartido, los ahorros pueden haberse esfumado.
Los nodos dedicados cuestan más por mes, pero trasladan la restricción de "la cuota de otro" a "el dimensionamiento de tu hardware". Ese es un lugar más predecible para los sistemas de producción, porque puedes escalar deliberadamente en lugar de negociar límites.
El autoalojamiento es la tercera opción. Da el máximo control, pero agrega adquisición de hardware, monitoreo, actualizaciones y respuesta a incidentes. Para la mayoría de los equipos, un nodo dedicado gestionado captura la mayor parte del beneficio sin la carga de guardia.
Puntos de control de migración: pasar de compartido a dedicado
Si decides moverte, hazlo por etapas en lugar de cambiar todo en un solo despliegue.
- Inventaría tus métodos. Enumera cada llamada RPC que hace tu aplicación y marca las costosas.
- Levanta el nodo dedicado y apunta un entorno de staging hacia él.
- Reproduce el tráfico de producción contra el nuevo endpoint y compara tasas de error y percentiles de latencia.
- Mueve primero el tráfico de lectura, luego el envío de transacciones y las suscripciones WebSocket.
- Mantén un endpoint compartido como respaldo en la configuración de tu cliente para que un problema en un solo nodo no derribe la aplicación.
Un patrón de conmutación por error simple en un cliente se ve así:
const endpoints = [
"https://your-dedicated-solana-endpoint",
"https://solana.api.onfinality.io/public"
];
async function callRpc(body) {
for (const url of endpoints) {
try {
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body)
});
if (res.ok) return res.json();
} catch (e) {
// try next endpoint
}
}
throw new Error("all RPC endpoints failed");
}
Puntos clave
- El RPC de Solana compartido es un buen valor predeterminado para prototipos, billeteras y dApps ligeras, pero la capacidad es agrupada y puede variar bajo carga.
- Los nodos dedicados son adecuados para bots, indexadores, dApps de alto tráfico y cualquier cosa que dependa de una entrega estable de WebSocket.
- Los métodos específicos de Solana como
getProgramAccountsy las suscripciones con estado son las razones más comunes por las que los equipos superan el acceso compartido. - Haz benchmark con tu propia mezcla de tráfico y compara la latencia p95/p99 y las tasas de error, no solo el tiempo de respuesta promedio.
- Una configuración híbrida con un respaldo compartido es un patrón de producción práctico.
- Revisa los precios de RPC y las redes compatibles antes de comprometerte con un modelo.
Preguntas frecuentes
¿Puedo comenzar con RPC compartido y pasar a dedicado más tarde? Sí. La mayoría de los equipos hacen exactamente eso. Mantén tus llamadas RPC detrás de una pequeña capa de abstracción para que cambiar de endpoint sea un cambio de configuración, no una refactorización.
¿Un nodo dedicado elimina todos los límites de velocidad? No. Los límites aún existen, pero están ligados a la capacidad que aprovisionas en lugar de una cuota compartida. Puedes dimensionar el nodo según tu carga de trabajo.
¿Las suscripciones WebSocket son mejores en nodos dedicados? Generalmente son más estables porque el estado de la suscripción no compite con otros inquilinos. Prueba con tu propio número de suscripciones durante las horas pico.
¿Es el autoalojamiento más barato que un nodo dedicado? A veces en papel, rara vez en la práctica una vez que contabilizas hardware, monitoreo, actualizaciones y respuesta a incidentes. Compara el costo total, no solo la factura mensual.
¿Cómo sé qué métodos necesita realmente mi aplicación? Registra tus llamadas RPC durante una semana. La lista suele ser más corta de lo esperado y te dice exactamente qué límites negociar.
Próximos pasos
Si aún estás decidiendo, comienza con la página de la red Solana para confirmar los detalles del endpoint y el transporte, luego revisa los precios de RPC para opciones compartidas y dedicadas. Si tu carga de trabajo ya tiene números máximos claros, los nodos dedicados son el camino más rápido hacia la capacidad aislada. Para un marco más amplio que se aplica a través de cadenas, consulta cómo elegir un proveedor de RPC.