Resumen
Compara los proveedores de RPC de Solana según la estructura de límites de tasa, las asignaciones de ráfaga y la concurrencia de WebSocket. Aprende qué verificar en los niveles gratuitos, los planes de pago y los nodos dedicados, y cómo ajustar los límites a los patrones de tráfico de tu aplicación.
Recomendación rápida: ajusta los límites de tasa a tu patrón de tráfico
El límite de tasa no es una métrica única para todos. Un proveedor que parece generoso en solicitudes por segundo (RPS) puede aún limitar tu aplicación si superas un límite por segundo o abres demasiadas conexiones WebSocket. Antes de comparar proveedores, mapea tu carga de trabajo:
- Aplicaciones con muchas lecturas (indexadores, paneles) necesitan un RPS alto y acceso a
getProgramAccountsogetSignaturesForAddresssin límites agresivos. - Aplicaciones con muchas escrituras (bots de trading, minteadores de NFT) necesitan un rendimiento constante para
sendTransactiony un sondeo de confirmación de baja latencia. - Aplicaciones en tiempo real (libros de órdenes, actividad de billeteras) necesitan suscripciones WebSocket con suficientes conexiones concurrentes y rendimiento de mensajes.
Para la mayoría de las aplicaciones de Solana en producción, un proveedor gestionado con límites de tasa transparentes y un camino hacia infraestructura dedicada es la opción más segura. OnFinality ofrece opciones de RPC de Solana compartidas y dedicadas, con límites de tasa que se escalan a tus necesidades. Consulta precios de RPC y la página de la red Solana para obtener detalles actuales.
Cómo se estructuran típicamente los límites de tasa de RPC de Solana
Los proveedores de RPC de Solana suelen imponer límites en tres dimensiones:
- Solicitudes por segundo (RPS): el número máximo de llamadas JSON-RPC por segundo. Este es el límite más común y a menudo se divide en niveles según el plan.
- Volumen de solicitudes diario/mensual: un tope en el total de solicitudes durante un período de facturación. Útil para estimar costos, pero menos relevante para el comportamiento en tiempo real.
- Conexiones WebSocket y tasa de mensajes: el número de conexiones WebSocket concurrentes y la frecuencia de mensajes que puedes recibir. Esto es crítico para aplicaciones que se suscriben a actualizaciones de cuentas o programas.
Algunos proveedores también imponen límites específicos por método, por ejemplo, un RPS más bajo para llamadas costosas como getProgramAccounts o getSignaturesForAddress. Estos pueden ser más restrictivos que el límite general de RPS, así que siempre lee la letra pequeña.
Ráfagas vs. límites sostenidos
Un proveedor puede permitir ráfagas cortas por encima del RPS declarado (por ejemplo, 10 RPS sostenidos con ráfagas de 20 RPS durante 5 segundos). Las asignaciones de ráfaga son útiles para manejar picos, pero no están garantizadas. Si tu aplicación excede regularmente el límite sostenido, verás errores 429 o solicitudes descartadas.
Qué comparar entre los proveedores de RPC de Solana
Al evaluar proveedores, concéntrate en los siguientes criterios. Usa la tabla a continuación como punto de partida; luego verifica los detalles actuales en el sitio de cada proveedor.
| Proveedor | RPS en nivel gratuito | RPS en nivel de pago | Límites de WebSocket | Nodos dedicados | Notas |
|---|---|---|---|---|---|
| OnFinality | Moderado, uso justo | Escalable, transparente | Configurable | Sí | Opciones compartidas y dedicadas; ver precios |
| Proveedor A | Bajo (ej., 5 RPS) | Más alto (ej., 50 RPS) | Conexiones limitadas | Sí | Puede tener límites específicos por método |
| Proveedor B | Ninguno | Alto (ej., 100 RPS) | Generoso | Sí | A menudo requiere compromiso |
| Proveedor C | Bajo | Medio | Moderado | No | Solo compartido |
Nota: La tabla es ilustrativa. Siempre consulta la documentación actual del proveedor para obtener cifras exactas.
Preguntas clave que hacer
- ¿Cuál es el RPS sostenido en el plan que necesito? No solo la tasa de ráfaga.
- ¿Hay límites específicos por método? Por ejemplo,
getProgramAccountspuede tener un límite más bajo que las llamadas generales. - ¿Cuántas conexiones WebSocket puedo abrir? Algunos proveedores limitan a 10 o 20; otros permiten cientos.
- ¿Qué sucede cuando excedo el límite? ¿Recibes errores 429 o el proveedor pone las solicitudes en cola?
- ¿Puedo actualizar a un nodo dedicado si supero los límites compartidos? Esto es crucial para escalar.
Cómo probar los límites de tasa antes de comprometerte
Puedes escribir un script simple para sondear los límites de tasa de un proveedor. Usa un bucle que envíe solicitudes y registre los códigos de estado HTTP. Aquí tienes un ejemplo en Node.js usando fetch:
const endpoint = 'https://solana.api.onfinality.io/public';
const body = {
jsonrpc: '2.0',
id: 1,
method: 'getHealth',
params: []
};
async function testRateLimit() {
let success = 0;
let rateLimited = 0;
for (let i = 0; i < 100; i++) {
try {
const res = await fetch(endpoint, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body)
});
if (res.status === 429) {
rateLimited++;
} else {
success++;
}
} catch (e) {
console.error('Error:', e);
}
await new Promise(r => setTimeout(r, 100)); // 10 RPS
}
console.log(`Success: ${success}, Rate limited: ${rateLimited}`);
}
testRateLimit();
Ejecuta esto contra diferentes proveedores para ver cómo se comportan bajo carga sostenida. También prueba las conexiones WebSocket abriendo múltiples suscripciones y monitoreando desconexiones.
Errores comunes al comparar límites de tasa
- Ignorar los límites específicos por método: Un proveedor puede anunciar 50 RPS pero solo permitir 5 RPS para
getProgramAccounts. Esto puede romper los indexadores. - Pasar por alto los límites de WebSocket: Si tu aplicación necesita 100 suscripciones concurrentes, un proveedor con un límite de 20 conexiones fallará.
- Asumir que el nivel gratuito es suficiente para producción: Los niveles gratuitos son para pruebas, no para producción. A menudo tienen RPS bajo y sin SLA.
- No verificar el comportamiento de ráfaga: Algunos proveedores permiten ráfagas cortas, pero la carga sostenida puede aún provocar limitación.
- Olvidar los datos de archivo: Si necesitas estado histórico, asegúrate de que el proveedor ofrezca nodos de archivo con límites de tasa adecuados.
Cuándo elegir un nodo dedicado de Solana
Los planes de RPC compartidos son rentables para tráfico moderado, pero tienen límites que pueden convertirse en un cuello de botella. Considera un nodo dedicado cuando:
- Tu aplicación alcanza constantemente el límite de RPS en un plan compartido.
- Necesitas un rendimiento predecible para trading de alta frecuencia o indexación a gran escala.
- Requieres límites de tasa personalizados o quieres evitar vecinos ruidosos.
- Necesitas acceso a datos de archivo o métodos especializados sin restricciones.
OnFinality proporciona nodos dedicados de Solana que te dan control total sobre los límites de tasa y el rendimiento. Obtén más información en la página de nodos dedicados.
Cómo planificar el margen de límite de tasa
Incluso con un plan generoso, debes diseñar tu aplicación para manejar los límites de tasa con elegancia:
- Implementa reintentos con retroceso exponencial para respuestas 429.
- Almacena en caché las respuestas para datos de acceso frecuente y reducir el RPS.
- Usa suscripciones WebSocket en lugar de sondeo cuando sea posible, pero vigila los límites de conexión.
- Monitorea tu uso para detectar cuándo te acercas a los límites.
Aquí tienes un patrón simple de reintento en JavaScript:
async function rpcCall(method, params, retries = 3) {
const endpoint = 'https://solana.api.onfinality.io/public';
for (let i = 0; i < retries; i++) {
const res = await fetch(endpoint, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ jsonrpc: '2.0', id: 1, method, params })
});
if (res.status === 429) {
await new Promise(r => setTimeout(r, 1000 * Math.pow(2, i)));
continue;
}
return res.json();
}
throw new Error('Rate limited after retries');
}
Conclusiones clave
- Los límites de tasa en RPC de Solana son multidimensionales: RPS, volumen diario y concurrencia de WebSocket.
- Los límites específicos por método pueden ser más restrictivos que el RPS general.
- Prueba los proveedores con tu carga de trabajo real antes de comprometerte.
- Los planes compartidos son adecuados para tráfico moderado; los nodos dedicados ofrecen rendimiento predecible.
- Siempre diseña para errores de límite de tasa con reintentos y caché.
Preguntas frecuentes
¿Cuál es un RPS típico en el nivel gratuito de los proveedores de RPC de Solana?
Los niveles gratuitos a menudo varían de 2 a 10 RPS, pero algunos proveedores pueden ofrecer límites más altos para pruebas. Siempre consulta los términos actuales.
¿Puedo obtener RPS ilimitado en un plan compartido?
Ningún proveedor ofrece RPS verdaderamente ilimitado en planes compartidos. Los nodos dedicados son la forma de obtener límites más altos y predecibles.
¿Cómo afectan los límites de WebSocket a mi aplicación?
Si tu aplicación depende de actualizaciones en tiempo real, necesitas suficientes conexiones WebSocket concurrentes. Exceder el límite causará desconexiones o errores.
¿Qué debo hacer si alcanzo los límites de tasa con frecuencia?
Primero, optimiza tu aplicación con caché y procesamiento por lotes. Si aún alcanzas los límites, considera actualizar a un plan superior o a un nodo dedicado.
¿Ofrece OnFinality nodos dedicados de Solana?
Sí, OnFinality proporciona nodos dedicados de Solana. Visita la página de nodos dedicados para obtener detalles.