Resumen
Un nodo RPC de Solana es un servidor que expone la API JSON-RPC de Solana, lo que permite a las aplicaciones leer datos de la cadena y enviar transacciones. Este artículo explica cómo funcionan los nodos RPC de Solana, cómo conectarse a endpoints públicos y dedicados, y qué evaluar al elegir infraestructura para aplicaciones de producción.
Guía rápida de decisión: ¿qué configuración de RPC de Solana se adapta a tu aplicación?
Antes de sumergirte en endpoints y métodos, decide cómo quieres consumir los datos de Solana. La elección correcta depende de tu carga de trabajo, no de cuál opción sea la más popular.
| Carga de trabajo | Configuración recomendada | Por qué |
|---|---|---|
| Prototipado, hackathon, tráfico bajo | Endpoint RPC público | Gratuito, sin configuración, adecuado para lecturas ligeras |
| Aplicación de producción con tráfico moderado | RPC gestionado compartido | Rendimiento fiable sin ejecutar nodos |
| Trading de alto rendimiento, indexación, análisis pesado | Nodo dedicado | Capacidad aislada, rendimiento consistente, ajuste personalizado |
| Pruebas en un entorno similar al de producción | RPC de Devnet | Testnet gratuito con faucets de SOL para desarrollo |
Si necesitas un rendimiento predecible y tu aplicación depende de llamadas RPC de Solana, un nodo dedicado te da aislamiento de los vecinos ruidosos. Para la mayoría de los equipos, empezar con un RPC compartido gestionado y actualizar a dedicado cuando alcances los límites es un camino pragmático.
¿Qué es un nodo RPC de Solana?
Un nodo RPC de Solana es un servidor que ejecuta el software cliente de Solana y expone la API JSON-RPC. Las aplicaciones usan esta API para consultar saldos de cuentas, estado de transacciones, datos de bloques y para enviar transacciones firmadas. A diferencia del JSON-RPC de Ethereum, Solana usa sus propios métodos JSON-RPC con diferentes nombres y formatos de respuesta.
La arquitectura de Solana está optimizada para alto rendimiento, con consenso de prueba de participación y un reloj central llamado Prueba de Historia. Los nodos RPC no son validadores; sirven datos a los clientes y pueden ejecutarse en diferentes configuraciones, como nodos de archivo que almacenan el estado histórico.
Endpoint RPC de Solana: configuración de la red de un vistazo
Cuando te conectas a Solana, necesitas la configuración de red correcta. Aquí están los parámetros clave para mainnet y devnet de Solana.
| Configuración | Mainnet | Devnet |
|---|---|---|
| Nombre de la red | Solana Mainnet | Solana Devnet |
| Moneda nativa | SOL (9 decimales) | SOL (9 decimales) |
| URL RPC HTTP | https://solana.api.onfinality.io/public | Ver Solana Devnet |
| URL WebSocket | wss://solana.api.onfinality.io/public-ws | Ver Solana Devnet |
| Explorador | https://explorer.solana.com | https://explorer.solana.com |
Nota: El endpoint público es para pruebas y uso ligero. Para producción, considera un RPC gestionado o dedicado de un proveedor como OnFinality.
Cómo conectarse a un nodo RPC de Solana
Puedes interactuar con el RPC de Solana usando curl, librerías de JavaScript como @solana/web3.js, o SDKs específicos de lenguaje. Aquí tienes un ejemplo básico de curl para obtener la altura de bloque más reciente:
curl https://solana.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getBlockHeight"}'
Respuesta esperada:
{"jsonrpc":"2.0","result":123456789,"id":1}
Para JavaScript, usa @solana/web3.js:
import { Connection } from '@solana/web3.js';
const connection = new Connection('https://solana.api.onfinality.io/public');
const slot = await connection.getSlot();
console.log('Current slot:', slot);
Para suscripciones WebSocket, conéctate al endpoint WebSocket:
const wsConnection = new Connection('wss://solana.api.onfinality.io/public-ws');
wsConnection.onAccountChange(accountPublicKey, (accountInfo) => {
console.log('Account changed:', accountInfo);
});
Métodos RPC de Solana que usarás más
La API RPC de Solana incluye métodos para leer cuentas, transacciones y bloques. Aquí tienes los comunes:
| Método | Propósito |
|---|---|
getBalance | Obtener el saldo de SOL de una cuenta |
getAccountInfo | Obtener datos de la cuenta y lamports |
getTransaction | Obtener detalles de la transacción por firma |
getBlock | Recuperar datos del bloque |
sendTransaction | Enviar una transacción firmada |
getSignaturesForAddress | Listar firmas de transacciones para una dirección |
getLatestBlockhash | Obtener el hash de bloque más reciente para firmar transacciones |
Para una lista completa, consulta la documentación de Solana.
Nodos RPC de Solana públicos vs. dedicados
Los endpoints RPC públicos son convenientes pero tienen límites de tasa y pueden ser poco fiables bajo carga. Los nodos dedicados proporcionan un endpoint privado con recursos dedicados, lo cual es esencial para aplicaciones de producción que necesitan un rendimiento consistente.
| Factor | RPC público | RPC dedicado |
|---|---|---|
| Costo | Gratis | De pago |
| Límites de tasa | Sí | Más altos o ninguno |
| Rendimiento | Compartido, variable | Aislado, predecible |
| Fiabilidad | Depende del proveedor | Mayor potencial de tiempo de actividad |
| Personalización | Ninguna | Posible (por ejemplo, archivo, WebSocket) |
OnFinality ofrece nodos Solana dedicados que puedes desplegar en minutos, con opciones para datos de archivo y soporte WebSocket.
Cómo elegir un proveedor de RPC de Solana
Al evaluar proveedores de RPC, considera estos criterios:
- Fiabilidad: Busca proveedores con un historial de tiempo de actividad, pero verifica con tu propio monitoreo.
- Rendimiento: Prueba la latencia y el rendimiento para tu carga de trabajo específica.
- Límites de tasa: Comprende los límites para los niveles gratuitos y de pago.
- Soporte: Verifica si el proveedor ofrece soporte dedicado para problemas de producción.
- Cobertura de red: Asegúrate de que el proveedor soporte las redes que necesitas (mainnet, devnet, testnet).
Para una inmersión más profunda, consulta nuestra guía para elegir un proveedor de RPC.
Errores comunes y solución de problemas
Aquí hay problemas típicos que los desarrolladores enfrentan con nodos RPC de Solana y cómo resolverlos:
| Síntoma | Causa probable | Solución |
|---|---|---|
429 Too Many Requests | Límite de tasa excedido | Actualiza a un plan de pago o usa un nodo dedicado |
Tiempo de espera en sendTransaction | Congestión de red o transacción inválida | Verifica las tarifas de transacción y reintenta con un blockhash reciente |
| Desconexiones de WebSocket | Conexión inactiva o límite del proveedor | Implementa lógica de reconexión y heartbeat |
Slot skipping | El nodo está atrasado | Usa un proveedor con mejor sincronización o nodo de archivo |
Conclusiones clave
- Un nodo RPC de Solana expone la API JSON-RPC para leer datos y enviar transacciones.
- Los endpoints públicos son adecuados para pruebas, pero las aplicaciones de producción necesitan infraestructura fiable y escalable.
- Evalúa proveedores según rendimiento, límites de tasa y soporte.
- OnFinality ofrece opciones RPC de Solana compartidas y dedicadas, con soporte HTTP y WebSocket.
Preguntas frecuentes
¿Cuál es la diferencia entre un nodo RPC de Solana y un validador?
Un validador participa en el consenso y produce bloques. Un nodo RPC sirve datos a los clientes y no participa en el consenso. Algunos nodos pueden hacer ambas cosas, pero son roles separados.
¿Puedo ejecutar mi propio nodo RPC de Solana?
Sí, puedes ejecutar un nodo de Solana usando el cliente oficial. Sin embargo, requiere hardware significativo y mantenimiento. Servicios gestionados como OnFinality se encargan de esto por ti.
¿Qué es un nodo de archivo?
Un nodo de archivo almacena el estado histórico completo de la blockchain, permitiendo consultas de datos históricos de cuentas. Esto es útil para análisis e indexación.
¿Cómo obtengo SOL para devnet?
Puedes usar el faucet de devnet para solicitar SOL para pruebas. Consulta la página de Solana Devnet para más detalles.
¿OnFinality soporta WebSocket de Solana?
Sí, OnFinality proporciona endpoints WebSocket para Solana, como se muestra en la configuración de red anterior.
Para más detalles sobre precios y redes, visita precios de RPC y redes RPC compatibles.