Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
RPC Assistant

¿Qué es una URL RPC de Ethereum y cómo elegir la correcta?

Resumen

Una URL RPC de Ethereum es el endpoint HTTP o WebSocket que tu dApp utiliza para comunicarse con la blockchain de Ethereum. Este artículo explica los componentes de una URL RPC, cómo configurar carteras y aplicaciones, y cómo evaluar opciones de endpoints públicos, gestionados y dedicados para cargas de trabajo de producción.

Cuando desarrollas en Ethereum, lo primero que tu dApp necesita es una URL RPC. Es la dirección que tu cartera, servicio backend o indexador utiliza para enviar solicitudes JSON-RPC a la blockchain. Pero no todas las URL RPC de Ethereum son iguales. El endpoint que elijas afecta la latencia, la fiabilidad, la disponibilidad de datos y cuánto pagas a medida que crece tu tráfico.

Este artículo explica qué es una URL RPC de Ethereum, cómo leer una y cómo elegir el endpoint adecuado para tu caso de uso. También verás ejemplos concretos de configuración y una comparación de opciones públicas, gestionadas y dedicadas.

URL RPC de Ethereum: qué es y cómo funciona

Una URL RPC (Llamada a Procedimiento Remoto) es la dirección HTTP o WebSocket que expone la API JSON-RPC de Ethereum. Cuando tu aplicación llama a eth_blockNumber o eth_getBalance, envía una solicitud POST a esta URL con un payload JSON. El nodo detrás de la URL procesa la solicitud y devuelve una respuesta.

Una URL RPC típica de Ethereum se ve así:

https://eth.api.onfinality.io/public

Esta URL apunta a un endpoint público alojado por OnFinality. Soporta tanto HTTP como WebSocket, por lo que puedes usarla para solicitudes estándar y suscripciones en tiempo real.

Anatomía de una URL RPC

  • Protocolo: https:// o wss:// para WebSocket. Siempre usa HTTPS/WSS en producción para cifrar el tráfico.
  • Host: El dominio o dirección IP del proveedor de nodos.
  • Ruta: A menudo incluye el nombre de la red o una clave de acceso. Por ejemplo, /public indica un endpoint público compartido.

HTTP vs WebSocket

  • HTTP: Mejor para solicitudes puntuales como obtener datos de bloques o enviar transacciones. La mayoría de los SDK usan HTTP por defecto.
  • WebSocket: Permite suscripciones push como eth_subscribe. Úsalo para actualizaciones en tiempo real, como transacciones pendientes o nuevos bloques.

Cómo configurar una URL RPC de Ethereum en tu stack

Necesitarás una URL RPC en varios lugares: tu cartera, el frontend de tu dApp y tus servicios backend. Aquí tienes ejemplos comunes de configuración.

Configuración de cartera (MetaMask)

En MetaMask, puedes añadir una red personalizada con los siguientes ajustes:

{
  "chainId": "0x1",
  "chainName": "Ethereum Mainnet",
  "rpcUrls": ["https://eth.api.onfinality.io/public"],
  "nativeCurrency": {
    "name": "Ether",
    "symbol": "ETH",
    "decimals": 18
  },
  "blockExplorerUrls": ["https://etherscan.io"]
}

Ejemplo con ethers.js

const { ethers } = require("ethers");

const provider = new ethers.JsonRpcProvider("https://eth.api.onfinality.io/public");

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log("Current block:", blockNumber);
}

getBlockNumber();

Ejemplo con viem

import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';

const client = createPublicClient({
  chain: mainnet,
  transport: http('https://eth.api.onfinality.io/public'),
});

const blockNumber = await client.getBlockNumber();
console.log(blockNumber);

Ejemplo de suscripción WebSocket

const { WebSocket } = require("ws");
const ws = new WebSocket("wss://eth.api.onfinality.io/public");

ws.on("open", () => {
  ws.send(JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "eth_subscribe",
    params: ["newHeads"]
  }));
});

ws.on("message", (data) => {
  console.log("New head:", JSON.parse(data.toString()));
});

Público, gestionado o dedicado: ¿qué URL RPC de Ethereum deberías usar?

Tu elección de URL RPC depende de tu carga de trabajo, presupuesto y requisitos de fiabilidad. Aquí tienes una comparación rápida para ayudarte a decidir.

Tipo de endpointMejor paraConsideraciones
URL RPC públicaPrototipos, hackatones, dApps de bajo tráficoLímites de tasa, sin SLA, puede ser poco fiable
RPC compartido gestionadodApps de producción con tráfico moderadoLímites de tasa más altos, mejor fiabilidad, el costo escala con el uso
RPC de nodo dedicadoAplicaciones de alto rendimiento, intensivas en datos o sensibles al cumplimientoControl total, sin vecinos ruidosos, mayor costo

URL RPC públicas

Los endpoints públicos como https://eth.api.onfinality.io/public son gratuitos y fáciles de usar. Son excelentes para desarrollo y pruebas. Sin embargo, son compartidos entre muchos usuarios, por lo que pueden volverse lentos o tener límites de tasa bajo carga pesada. No son adecuados para aplicaciones de producción que necesitan un rendimiento consistente.

RPC compartido gestionado

Los servicios RPC gestionados proporcionan endpoints API dedicados con límites de tasa más altos, mejor tiempo de actividad y soporte técnico. Manejan la infraestructura de nodos, por lo que no necesitas ejecutar tus propios nodos. Este es un buen punto intermedio para la mayoría de las dApps de producción.

Nodos dedicados

Un nodo dedicado te da una URL RPC privada que no se comparte con otros usuarios. Tienes control total sobre la configuración del nodo y evitas el problema del "vecino ruidoso". Esto es ideal para aplicaciones que hacen un uso intensivo de eth_getLogs, datos de archivo o trazado personalizado.

Cómo evaluar un proveedor de RPC de Ethereum

Al comparar proveedores de RPC, mira más allá de la URL. Aquí están los criterios clave a evaluar:

Fiabilidad y tiempo de actividad

Verifica el tiempo de actividad histórico del proveedor y si ofrecen un SLA. Un proveedor con caídas frecuentes perjudicará la experiencia de tus usuarios. Busca proveedores que publiquen páginas de estado y tengan infraestructura redundante.

Límites de tasa y uso justo

Los endpoints públicos a menudo tienen límites de tasa estrictos. Los servicios gestionados ofrecen límites más altos, pero aún pueden limitar tus solicitudes por segundo. Comprende los límites y cómo se aplican. Si necesitas un rendimiento constante, un nodo dedicado puede ser necesario.

Disponibilidad de datos: datos de archivo y trazado

Muchas dApps necesitan estado histórico o trazados de transacciones. Los nodos de archivo almacenan el historial completo de la blockchain, lo cual es esencial para análisis, indexadores y algunas aplicaciones DeFi. Verifica si el proveedor ofrece datos de archivo y si están incluidos en tu plan.

Soporte WebSocket

Si tu dApp necesita actualizaciones en tiempo real, asegúrate de que el proveedor soporte conexiones WebSocket. Algunos proveedores solo ofrecen HTTP, lo que limita tu capacidad para suscribirte a eventos.

Seguridad y cumplimiento

Para uso empresarial, considera las prácticas de seguridad del proveedor, como cifrado, controles de acceso y certificaciones de cumplimiento. Un proveedor que ofrezca infraestructura dedicada puede darte más control sobre la privacidad de los datos.

Lista de verificación para producción

Antes de salir a producción con una URL RPC de Ethereum, repasa esta lista:

  • Usa HTTPS/WSS: Nunca uses HTTP plano en producción.
  • Configura endpoints de respaldo: Configura múltiples URL RPC en tu cliente para manejar la conmutación por error.
  • Monitorea el rendimiento: Rastrea latencia, tasas de error y volumen de solicitudes.
  • Comprende los límites de tasa: Conoce los límites de tu proveedor y planifica para picos.
  • Prueba datos de archivo: Si tu aplicación necesita datos históricos, verifica que el proveedor los soporte.
  • Revisa el SLA: Asegúrate de que el proveedor ofrezca un acuerdo de nivel de servicio que cumpla con tus necesidades.

Errores comunes y cómo evitarlos

Usar un endpoint público en producción

Los endpoints públicos son convenientes, pero no están diseñados para tráfico de producción. Puedes encontrar límites de tasa o experimentar tiempo de inactividad. Para cualquier aplicación seria, usa una URL RPC gestionada o dedicada.

Ignorar las diferencias entre WebSocket y HTTP

Si tu aplicación depende de datos en tiempo real, necesitas WebSocket. Usar polling HTTP es ineficiente y puede perder eventos. Asegúrate de que tu proveedor soporte WebSocket y de que uses el esquema de URL correcto (wss://).

No planificar la conmutación por error

Una sola URL RPC es un punto único de fallo. Usa múltiples proveedores o endpoints e implementa conmutación por error automática en tu cliente. Bibliotecas como ethers.js y viem soportan múltiples proveedores.

Pasar por alto las necesidades de datos de archivo

Si tu dApp consulta estado histórico, necesitas un nodo de archivo. Muchos proveedores cobran extra por el acceso a archivo. Planifica esto en tu presupuesto y elige un proveedor que ofrezca datos de archivo en las redes que necesites.

Cómo empezar con una URL RPC de Ethereum

Si estás listo para ir más allá de los endpoints públicos, OnFinality ofrece servicios RPC gestionados y nodos dedicados para Ethereum y muchas otras redes. Puedes comenzar con un endpoint público gratuito para probar y luego actualizar a un plan de producción a medida que crezca tu tráfico.

Conclusiones clave

  • Una URL RPC de Ethereum es el endpoint que tu dApp usa para interactuar con la blockchain.
  • Los endpoints públicos son adecuados para desarrollo, pero las aplicaciones de producción necesitan URL RPC gestionadas o dedicadas.
  • Elige entre HTTP y WebSocket según tu necesidad de datos en tiempo real.
  • Evalúa a los proveedores en fiabilidad, límites de tasa, datos de archivo, soporte WebSocket y seguridad.
  • Usa siempre HTTPS/WSS y configura conmutación por error para producción.

Preguntas frecuentes

¿Cuál es la URL RPC oficial de Ethereum?

No hay una única URL RPC oficial de Ethereum. La Fundación Ethereum no aloja un endpoint RPC público. En su lugar, eliges un proveedor como OnFinality que ofrece endpoints públicos, gestionados o dedicados.

¿Puedo usar una URL RPC gratuita de Ethereum para producción?

Los endpoints públicos gratuitos no se recomiendan para producción debido a límites de tasa y posible tiempo de inactividad. Para un servicio fiable, considera un plan RPC gestionado o un nodo dedicado.

¿Cómo encuentro mi URL RPC de Ethereum?

Si usas un proveedor como OnFinality, recibirás una URL RPC en tu panel de control. Para endpoints públicos, puedes usar la URL proporcionada en la página de red, como https://eth.api.onfinality.io/public.

¿Cuál es la diferencia entre URL RPC HTTP y WebSocket?

HTTP es para llamadas estándar de solicitud-respuesta, mientras que WebSocket permite suscripciones en tiempo real. Usa WebSocket para funciones como notificaciones de transacciones pendientes o alertas de nuevos bloques.

¿Necesito un nodo de archivo para Ethereum?

Si tu aplicación necesita estado histórico o registros de eventos más allá de cierta antigüedad, necesitas un nodo de archivo. Muchos proveedores ofrecen acceso a archivo como complemento.

¿Cómo puedo probar mi URL RPC de Ethereum?

Puedes usar curl para enviar una solicitud JSON-RPC simple:

curl -X POST https://eth.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Esto debería devolver el número de bloque más reciente en formato hexadecimal.

Base de conocimiento RPC

Detalles RPC relacionados

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar