Resumen
Los endpoints RPC de Solana permiten que tu dApp lea el estado de la cadena, envíe transacciones y se suscriba a actualizaciones en tiempo real. Esta guía explica cómo funciona el RPC de Solana, cómo conectarse a endpoints públicos y dedicados, y qué evaluar al elegir infraestructura para producción.
Recomendación rápida: cómo elegir un endpoint RPC de Solana
Si estás construyendo un script pequeño o probando en Devnet, un endpoint público es suficiente. Si estás ejecutando una dApp de producción, un proveedor RPC compartido o dedicado te brinda un rendimiento más consistente, límites de tasa más altos y soporte WebSocket para suscripciones en tiempo real. Comienza con un proveedor gestionado como el RPC de Solana de OnFinality para evitar la sobrecarga operativa de ejecutar tu propio validador o nodo RPC.
¿Qué es un RPC para Solana?
El RPC de Solana (Llamada a Procedimiento Remoto) es la interfaz que permite que tu aplicación hable con la blockchain de Solana. A través de JSON-RPC, puedes consultar saldos de cuentas, obtener detalles de transacciones, enviar transacciones firmadas y suscribirte a actualizaciones de cuentas o programas. La API RPC de Solana es basada en HTTP, con soporte WebSocket para actualizaciones en streaming.
A diferencia del JSON-RPC de Ethereum, Solana utiliza su propio conjunto de métodos, como getBalance, getLatestBlockhash y sendTransaction. El endpoint que uses determina la calidad del servicio: los endpoints públicos son gratuitos pero a menudo limitados en tasa, mientras que los proveedores gestionados ofrecen mayor rendimiento y fiabilidad.
Opciones de endpoints RPC de Solana
| Tipo de endpoint | Caso de uso | Consideraciones |
|---|---|---|
| Endpoint público | Desarrollo, pruebas, llamadas de bajo volumen | Limitado en tasa, puede ser poco fiable para producción |
| Proveedor RPC compartido | dApps de producción con tráfico moderado | Mejor fiabilidad, límites de tasa más altos, soporte WebSocket |
| Nodo dedicado | Aplicaciones de alto rendimiento, necesidades personalizadas | Control total, máximo rendimiento, mayor costo |
OnFinality ofrece opciones RPC de Solana tanto compartidas como dedicadas. Puedes comenzar con el endpoint público para pruebas y actualizar a un nodo dedicado cuando tu tráfico crezca.
Cómo conectarse al RPC de Solana
Para conectarte al RPC de Solana, necesitas una URL de endpoint. El endpoint público de Solana de OnFinality es https://solana.api.onfinality.io/public. Para suscripciones WebSocket, usa wss://solana.api.onfinality.io/public-ws.
Aquí tienes un ejemplo básico usando curl para obtener el último blockhash:
curl https://solana.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getLatestBlockhash"}'
En JavaScript, puedes usar la librería @solana/web3.js:
import { Connection, clusterApiUrl } from '@solana/web3.js';
const connection = new Connection('https://solana.api.onfinality.io/public', 'confirmed');
async function getBalance(address) {
const balance = await connection.getBalance(address);
console.log(`Balance: ${balance / 1e9} SOL`);
}
Para suscripciones WebSocket, usa el endpoint wss:
import { Connection, PublicKey } from '@solana/web3.js';
const connection = new Connection('wss://solana.api.onfinality.io/public-ws', 'confirmed');
const account = new PublicKey('...');
connection.onAccountChange(account, (accountInfo) => {
console.log('Account changed:', accountInfo);
});
Qué evaluar al elegir un proveedor RPC de Solana
Al comparar proveedores RPC para Solana, considera estos factores:
- Rendimiento y límites de tasa: ¿Cuántas solicitudes por segundo puedes enviar? Los endpoints públicos a menudo te limitan a unas pocas solicitudes por segundo, lo cual es demasiado bajo para producción.
- Soporte WebSocket: Las suscripciones en tiempo real requieren un endpoint WebSocket. Verifica si el proveedor ofrece conexiones WebSocket estables.
- Datos de archivo: Si necesitas estado histórico, busca proveedores que ofrezcan nodos de archivo.
- Distribución geográfica: La baja latencia importa para aplicaciones sensibles al tiempo. Los proveedores con nodos periféricos globales reducen el tiempo de ida y vuelta.
- Disponibilidad y fiabilidad: Busca proveedores con un historial de alta disponibilidad, pero desconfía de garantías absolutas.
La página de precios de RPC de OnFinality describe las opciones, y puedes ver la lista completa de redes compatibles en la página de redes.
Errores comunes al usar RPC de Solana
- Límite de tasa: Los endpoints públicos a menudo devuelven errores 429 cuando excedes los límites. Implementa lógica de reintento con retroceso exponencial.
- Confirmación de transacciones: Solana usa niveles de compromiso
confirmedofinalized. Usaconfirmedpara la mayoría de los casos, pero comprende las compensaciones. - Desconexiones WebSocket: Las conexiones WebSocket pueden caerse. Implementa lógica de reconexión para mantener las suscripciones.
- Caducidad del blockhash: Las transacciones deben hacer referencia a un blockhash reciente. Obtén un nuevo blockhash antes de enviar cada transacción.
Depuración de llamadas RPC de Solana
Cuando una llamada RPC falla, verifica el código y el mensaje de error. Los errores comunes incluyen:
-32000– Error de servidor, a menudo debido a parámetros inválidos.-32001– Agotamiento de recursos, como límite de tasa.-32002– Método no soportado.
Usa el método getHealth para verificar si el nodo está sano:
curl https://solana.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
Si obtienes una respuesta ok, el nodo está sano. Si no, prueba con un endpoint diferente o contacta a tu proveedor.
Cuándo usar un nodo dedicado de Solana
Un nodo dedicado te da acceso exclusivo a un servidor RPC. Esto es útil cuando:
- Tienes requisitos de alto rendimiento que exceden los límites compartidos.
- Necesitas configuración personalizada, como habilitar características específicas.
- Quieres evitar vecinos ruidosos que puedan afectar el rendimiento.
OnFinality ofrece nodos dedicados para Solana. Puedes aprovisionar un nodo en minutos y obtener un endpoint privado.
Conclusiones clave
- El RPC de Solana es la forma estándar de interactuar con la blockchain de Solana.
- Los endpoints públicos son adecuados para desarrollo, pero las aplicaciones de producción necesitan infraestructura gestionada fiable.
- Evalúa a los proveedores según rendimiento, soporte WebSocket, datos de archivo y cobertura geográfica.
- OnFinality ofrece opciones RPC de Solana tanto compartidas como dedicadas, con un endpoint público para pruebas.
Preguntas frecuentes
¿Cuál es la diferencia entre un endpoint RPC público y uno dedicado de Solana?
Un endpoint público es compartido entre muchos usuarios y a menudo limitado en tasa. Un endpoint dedicado se aprovisiona exclusivamente para tu proyecto, ofreciendo mayor rendimiento y fiabilidad.
¿Puedo usar el RPC de Solana gratis?
Sí, puedes usar endpoints públicos de forma gratuita, pero no son adecuados para cargas de trabajo de producción debido a los límites de tasa y posibles tiempos de inactividad.
¿Cómo obtengo un endpoint RPC de Solana?
Puedes usar un endpoint público como https://solana.api.onfinality.io/public o registrarte en un proveedor gestionado para obtener un endpoint dedicado.
¿Cuál es el mejor proveedor RPC de Solana?
El mejor proveedor depende de tus necesidades. Compara factores como rendimiento, soporte WebSocket y precios. OnFinality ofrece opciones competitivas tanto para nodos compartidos como dedicados.
¿Cómo monitoreo el rendimiento del RPC de Solana?
Usa herramientas como Prometheus para rastrear la latencia de solicitudes y las tasas de error. También puedes usar el método getHealth de Solana para verificar el estado del nodo.
¿Puedo usar WebSocket con el RPC de Solana?
Sí, Solana soporta WebSocket para suscripciones en tiempo real. Usa el endpoint wss proporcionado por tu proveedor RPC.
¿Cuál es la diferencia entre el RPC de Solana Devnet y Mainnet?
Devnet es una red de prueba con SOL gratuito para desarrollo. Mainnet es la red de producción con activos reales. Usa Solana Devnet para pruebas y Mainnet para producción.
¿Cómo elijo entre un nodo compartido y uno dedicado de Solana?
Si tu aplicación tiene tráfico moderado, un nodo compartido es rentable. Si necesitas alto rendimiento o configuración personalizada, un nodo dedicado es mejor.
¿Cuáles son los códigos de error comunes del RPC de Solana?
Los errores comunes incluyen -32000 para parámetros inválidos, -32001 para agotamiento de recursos y -32002 para métodos no soportados. Consulta la documentación de Solana para una lista completa.
¿Cómo puedo comenzar con el RPC de Solana?
Comienza con el endpoint público y una solicitud curl simple. Luego, integra la librería @solana/web3.js en tu aplicación. Para producción, considera un proveedor gestionado como OnFinality.