Proveedores de RPC
Elija entre proveedores de RPC administrados (Helius, Triton, QuickNode) y validadores Agave autoalojados en función del tráfico, las características y el costo operativo.
Receta
Tarjeta de receta de referencia rápida, lista para copiar y pegar.
import { createSolanaRpc } from "@solana/kit";
// Proveedor (clave API en la URL o encabezado por proveedor)
const rpc = createSolanaRpc(
"https://mainnet.helius-rpc.com/?api-key=YOUR_KEY"
);
await rpc.getSlot().send();# Autoalojado (operador)
agave-validator --ledger /data/ledger --rpc-port 8899Cuándo usar esto:
- Aplicaciones Mainnet o devnet que superan los límites de tasa de RPC públicos.
- Necesidad de APIs DAS, webhooks o estimación de tarifas de prioridad.
- Ejecución de indexadores que requieren stake y ancho de banda dedicados.
- Requisitos de cumplimiento para la entrada de RPC privada.
Ejemplo de trabajo
import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";
const HTTP = process.env.RPC_HTTP_URL!;
const WSS = process.env.RPC_WSS_URL!;
const rpc = createSolanaRpc(HTTP);
const rpcSubscriptions = createSolanaRpcSubscriptions(WSS);
const slot = await rpc.getSlot().send();
console.log("slot:", slot);
// Script de verificación de estado para CI
if (slot < 1) throw new Error("RPC no está en buen estado");Lo que esto demuestra:
- URLs HTTP y WSS separadas del panel del proveedor.
- Las variables de entorno mantienen las claves API fuera del control de código fuente.
- Una simple sonda
getSlotvalida el estado del punto final.
Análisis en profundidad
Cómo funciona
- Los proveedores administrados ejecutan validadores Agave además de balanceadores de carga, caché y sidecars de indexación.
- Las claves API autentican y miden las solicitudes por nivel de plan.
- El autoalojamiento ejecuta
agave-validatorcon su propio stake, operaciones y failover. - La matriz de características (DAS, gRPC, webhooks) varía según el proveedor; no es una RPC genérica.
Comparación de proveedores (alto nivel)
| Opción | Fortalezas | Compromisos |
|---|---|---|
| Helius | DAS, webhooks, herramientas de desarrollo | Acoplamiento con el proveedor para APIs avanzadas |
| Triton | Yellowstone gRPC, rendimiento | Complejidad de integración de operaciones |
| QuickNode | Familiaridad con múltiples cadenas | La profundidad de las características específicas de Solana varía |
| RPC público | Gratuito, configuración cero | Límites de tasa, sin SLA |
| Autoalojamiento | Control, privacidad | Carga de personal, stake, confiabilidad |
Notas de TypeScript
// Failover: intentar URL secundaria en 429/503
async function rpcWithFallback<T>(fn: (rpc: ReturnType<typeof createSolanaRpc>) => Promise<T>) {
const primary = createSolanaRpc(process.env.RPC_PRIMARY!);
try {
return await fn(primary);
} catch (e) {
const secondary = createSolanaRpc(process.env.RPC_SECONDARY!);
return await fn(secondary);
}
}Errores comunes
- Incrustar claves API en el frontend: las claves se extraen de los navegadores. Solución: proxy de lecturas a través de su backend para claves confidenciales.
- Dependencia de un solo proveedor: una interrupción detiene su aplicación. Solución: failover de URL secundaria y lecturas críticas en caché.
- Usar el nivel gratuito para acuñación de producción: 429 durante picos. Solución: plan de pago dimensionado para RPS pico.
- Hosts HTTP/WSS no coincidentes: las suscripciones fallan silenciosamente. Solución: copie los puntos finales emparejados del panel.
- Autoalojamiento sin monitoreo: el disco lleno en el ledger detiene la RPC. Solución: alertas de ledger y nodos redundantes.
Alternativas
| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
| RPC pública de devnet | Prototipos | Producción mainnet |
| Híbrido de validador colocalizado + proveedor | Firmas comerciales | Sitio simple de acuñación de NFT |
| Metadatos solo IPFS | Activos estáticos | Necesidades de RPC |
| Cliente ligero (futuro/experimental) | Descentralización extrema | Predeterminado de producción actual |
Preguntas frecuentes
¿Necesito un proveedor para devnet?
La devnet pública funciona al principio; el proveedor mejora la confiabilidad para la CI del equipo y las demostraciones.
¿Cómo elijo el tamaño del plan?
Estime el RPS pico a partir de MAU, peso de GPA y conexiones websocket; realice pruebas de carga antes del lanzamiento.
¿Puede una clave servir HTTP y WSS?
Generalmente la misma clave API en URLs emparejadas; verifique la documentación del proveedor.
¿Es el autoalojamiento más barato a escala?
A veces, a RPS sostenidos muy altos si ya opera operaciones de staking; incluya el costo de ingeniero y hardware.
¿Qué es Yellowstone?
Interfaz Geyser gRPC; Triton y otros la exponen para indexadores (Yellowstone gRPC).
¿Debería CI usar la clave de producción de RPC?
Use una clave de devnet restringida con un límite de tasa bajo; nunca incluya claves de mainnet en repositorios públicos.
¿Cómo se relacionan los proveedores con Agave 4.1.1?
Los proveedores ejecutan versiones de validador según su calendario de implementación; sesgo ocasional de método/versión; monitoree las páginas de estado.
¿Puedo usar varios proveedores?
Sí: failover primario/secundario o división de lecturas vs escrituras si el proveedor lo admite.
¿Los proveedores almacenan en caché getAccountInfo?
Algunos lo hacen brevemente; no confíe en la caché para lecturas posteriores a la transacción sin actualizar.
¿Qué pasa con la latencia geográfica?
Elija la región más cercana a los usuarios y servidores; pruebe el RTT de getSlot desde la región de implementación.
Relacionado
- Fundamentos de RPC - Fundamentos de JSON-RPC
- Suscripciones WebSocket - Puntos finales WSS
- La API DAS - Características DAS del proveedor
- Mejores prácticas de RPC - Patrones de cliente resilientes
Versiones de la pila: Esta página se escribió para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 y LiteSVM 0.6.x.