Resumen
Solana devnet es el clúster de pruebas donde validas programas, transacciones y código de cliente antes de tocar mainnet. Esta página explica cómo conectar un endpoint RPC de Solana devnet, cómo obtener SOL de prueba y cómo depurar los fallos que aparecen con más frecuencia durante el desarrollo.
También cubre cuándo un endpoint público de devnet es suficiente y cuándo un servicio RPC gestionado o dedicado como OnFinality es la mejor opción para pipelines de CI, pruebas de integración y staging previo al lanzamiento.
Solana devnet es un clúster separado de mainnet-beta y testnet. Ejecuta el mismo runtime que mainnet, pero el ledger es desechable, los tokens no tienen valor y la red puede reiniciarse explícitamente. Eso lo convierte en el lugar adecuado para desplegar un programa, ejecutar pruebas de integración y reproducir errores antes de lanzar.
La consulta "solana rpc devnet" suele provenir de un desarrollador que necesita una de tres cosas: una URL de endpoint funcional, SOL de prueba para pagar transacciones o una forma de diagnosticar una solicitud fallida. Esta página responde a las tres, y luego explica cuándo un endpoint público de devnet deja de ser suficiente.
¿Qué endpoint de devnet deberías usar?
Elige tu endpoint según lo que estés haciendo, no por costumbre. La mayoría de los desarrolladores empiezan en un endpoint público y pasan a uno gestionado o dedicado cuando las pruebas forman parte de un pipeline.
| Tu situación | Elección de endpoint sensata | Por qué |
|---|---|---|
| Aprender Solana, ejecutar algunos scripts | RPC público de devnet | Gratis, sin configuración, adecuado para bajo volumen de solicitudes |
| Desplegar un programa e iterar | RPC público de devnet o un plan RPC gestionado | Necesitas sendTransaction y getSignatureStatuses fiables |
| Pipeline de CI que se ejecuta en cada commit | RPC gestionado con una API key dedicada | Acceso predecible y claves por proyecto |
| Pruebas de carga o latencia | Nodo dedicado | Controlas la máquina y puedes medir sin vecinos ruidosos |
| Probar UI basada en WebSocket | Endpoint que soporte ws | Las suscripciones se comportan de forma diferente al polling |
Si solo necesitas leer cuentas y enviar transacciones ocasionales, un endpoint público de devnet es suficiente. Si tus pruebas fallan de forma intermitente y no puedes distinguir si la causa es tu código o el endpoint, esa es la señal para pasar a un servicio gestionado.
OnFinality expone Solana devnet como una red soportada junto con Solana mainnet. Puedes revisar la página de la red Solana Devnet para detalles de conexión, y comparar planes en la página de precios de RPC si necesitas un endpoint con clave para CI.
Configuración de la cadena Solana devnet de un vistazo
Cuando configuras una billetera, un SDK o un framework, estás eligiendo un clúster y una URL RPC. Solana no usa un chain ID numérico estilo EVM para devnet de la misma manera que Ethereum; la identidad del clúster es lo que importa.
| Configuración | Valor de devnet |
|---|---|
| Nombre del clúster | devnet |
| Moneda nativa | SOL (devnet, sin valor) |
| Decimales | 9 |
| Transporte RPC típico | HTTP JSON-RPC |
| Transporte de suscripción | WebSocket (ws) donde esté soportado |
| Explorador de bloques | Solana Explorer con el clúster devnet seleccionado |
| Equivalente en mainnet | mainnet-beta |
Mantén la configuración de devnet y mainnet en archivos o variables de entorno separados. Una gran parte de los incidentes de "funcionaba en local" provienen de una compilación que apuntaba silenciosamente al clúster equivocado.
Conexión con curl y JavaScript
Una llamada JSON-RPC mínima confirma que el endpoint es accesible y devuelve el slot actual.
curl https://your-devnet-endpoint.example \
-X POST -H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlot",
"params": []
}'
En JavaScript, el patrón común es crear un objeto de conexión y pasar el clúster o un endpoint explícito.
import { Connection, clusterApiUrl, LAMPORTS_PER_SOL } from "@solana/web3.js";
// Opción A: usar la URL del clúster devnet integrada
const connection = new Connection(clusterApiUrl("devnet"), "confirmed");
// Opción B: usar tu propio endpoint devnet gestionado
// const connection = new Connection(process.env.SOLANA_DEVNET_RPC, "confirmed");
const slot = await connection.getSlot();
console.log("current devnet slot:", slot);
const balance = await connection.getBalance(connection.publicKey ?? undefined);
Para suscripciones WebSocket, construye la conexión con el endpoint ws y usa onAccountChange o onLogs:
const wsConnection = new Connection(process.env.SOLANA_DEVNET_WS, {
commitment: "confirmed",
wsEndpoint: process.env.SOLANA_DEVNET_WS,
});
const subId = wsConnection.onLogs(programId, (logs) => {
console.log(logs.signature, logs.logs);
});
Si las suscripciones se caen silenciosamente, registra el id de suscripción y vuelve a suscribirte en caso de error en lugar de asumir que el endpoint está roto.
Obtener SOL de prueba del faucet de devnet
El faucet tiene límite de tasa y es compartido. Trátalo como una conveniencia, no como una garantía.
- Solicita una cantidad pequeña primero y confirma el saldo antes de ejecutar una prueba grande.
- Si una solicitud falla, espera y reintenta en lugar de saturar el endpoint.
- Para pruebas repetibles, financia un keypair conocido una vez y reutilízalo, o ejecuta un validador local donde puedas acuñar SOL libremente.
- Nunca reutilices un keypair de devnet en mainnet. Genera un keypair nuevo para cualquier cosa que contenga valor real.
Cuando una solicitud al faucet parece tener éxito pero el saldo no cambia, verifica la firma de la transacción en el explorador y confirma que estás consultando el mismo clúster desde el que solicitaste.
Fallos comunes de devnet y cómo interpretarlos
La mayoría de los errores de devnet se dividen en un pequeño número de categorías. La tabla siguiente asigna el síntoma a la causa probable.
| Síntoma | Causa probable | Primera cosa a verificar |
|---|---|---|
AccountNotFound | Cuenta aún no creada, o clúster equivocado | Confirma el clúster y que la cuenta se inicializó |
Blockhash not found | El blockhash expiró antes del envío | Obtén un blockhash nuevo y reintenta rápidamente |
| Transacción confirmada pero estado sin cambios | Program id incorrecto o cliente desactualizado | Vuelve a verificar el program id y redespliega si es necesario |
429 o limitación | Límite de tasa del endpoint público | Reduce la tasa de solicitudes o pasa a un endpoint con clave |
| WebSocket deja de entregar | Timeout por inactividad o caída de red | Añade lógica de reconexión y vuelve a suscribirte |
| Saltos de slot o reinicio de datos | Reinicio del ledger de devnet | Recrea cuentas y vuelve a ejecutar la configuración |
Los reinicios de devnet son normales. Si tus pruebas dependen de un estado preexistente, crea un paso de configuración que lo recree en lugar de asumir que persiste.
Cuándo un endpoint público de devnet no es suficiente
Los endpoints públicos son compartidos y el tráfico de devnet es impredecible. Dos cosas tienden a empujar a los equipos hacia infraestructura gestionada.
Primero, CI. Si cada commit desencadena una suite de pruebas que envía transacciones, quieres un endpoint estable con sus propias credenciales para que un trabajo ruidoso no afecte a otro. Segundo, observabilidad. Cuando una prueba falla, necesitas saber si la solicitud llegó al nodo, qué devolvió el nodo y cuánto tardó. Un servicio RPC gestionado te da uso por clave y respuestas de error más claras.
OnFinality proporciona acceso a RPC API y opciones de nodos dedicados en muchas redes, incluida Solana. Si tu uso de devnet es ligero, el servicio compartido suele ser suficiente. Si ejecutas carga sostenida o necesitas aislamiento, un nodo dedicado elimina el problema del vecino ruidoso. Puedes ver la lista completa de cadenas soportadas en la página de redes RPC soportadas.
Un flujo de trabajo práctico para devnet
Un flujo de trabajo repetible ahorra más tiempo que cualquier optimización individual.
- Mantén la configuración del clúster en variables de entorno, nunca codificada directamente.
- Ejecuta un validador local para pruebas unitarias donde controlas el ledger.
- Usa devnet para pruebas de integración que necesitan condiciones de red realistas.
- Financia un keypair de prueba dedicado y reutilízalo entre ejecuciones.
- Registra ids de solicitud, firmas y números de slot para que los fallos sean reproducibles.
- Añade un chequeo de salud que llame a
getSlotantes de que comience una suite de pruebas. - Pasa a un endpoint gestionado con clave una vez que las pruebas se ejecuten en CI.
Esta secuencia mantiene el bucle de retroalimentación barato y rápido en local y reserva el acceso a la red para los casos que realmente lo necesitan.
Puntos clave
- Solana devnet es un clúster separado con SOL sin valor, usado para probar programas y clientes antes de mainnet.
- El nombre del clúster es
devnet; mantenlo en variables de entorno y nunca lo mezcles conmainnet-beta. - El faucet de devnet tiene límite de tasa, así que financia un keypair de prueba reutilizable en lugar de solicitar repetidamente.
- La mayoría de los errores de devnet son expiración de blockhash, clúster equivocado o limitación de tasa, no fallos del nodo.
- Los reinicios de devnet son esperados; crea pasos de configuración que recreen el estado.
- Pasa de un endpoint público a un servicio RPC gestionado o dedicado cuando las pruebas se ejecuten en CI o necesiten aislamiento.
Preguntas frecuentes
¿Cuál es la URL RPC de Solana devnet?
No hay una única URL canónica. Puedes usar la URL del clúster proporcionada por tu SDK, o un endpoint gestionado de un proveedor. OnFinality lista Solana devnet como una red soportada; consulta la página de la red Solana Devnet para detalles de conexión.
¿Solana devnet es lo mismo que testnet?
No. Devnet y testnet son clústeres separados. Devnet es el entorno de pruebas más usado y es más probable que se reinicie. Confirma siempre a qué clúster apunta tu endpoint.
¿Por qué falla mi transacción de devnet con "blockhash not found"?
El blockhash expiró antes de que se procesara la transacción. Obtén un blockhash nuevo inmediatamente antes de enviar y reintenta. En un endpoint ocupado o limitado esto ocurre con más frecuencia.
¿Puedo usar un endpoint público de devnet en producción?
Devnet es para pruebas, no para producción. Para cargas de trabajo en producción debes usar mainnet con un servicio RPC gestionado o dedicado. Consulta precios de RPC para opciones de planes.
¿OnFinality soporta Solana devnet?
Sí. Solana devnet está listada entre las redes soportadas por OnFinality. Consulta la página de la red Solana Devnet y la página del servicio RPC API para detalles actuales.
¿Cómo pruebo suscripciones WebSocket en devnet?
Usa un endpoint ws, suscríbete con onLogs o onAccountChange, y añade lógica de reconexión. Los endpoints públicos pueden cerrar conexiones inactivas, así que maneja la res suscripción explícitamente.