Logo
RPC Assistant

API de Optimism: Qué es y cómo usarla para OP Mainnet

Resumen

La API de Optimism es el conjunto de endpoints JSON-RPC que permiten a las aplicaciones leer y escribir datos en OP Mainnet, una capa 2 de Ethereum construida con rollups optimistas. Sigue el mismo estándar JSON-RPC que Ethereum, por lo que puedes usar bibliotecas conocidas como ethers o viem para interactuar con la cadena. Este artículo explica qué es la API de Optimism, en qué se diferencia de la API de Ethereum y cómo elegir el proveedor de endpoints adecuado para tu proyecto.

Respuesta rápida: ¿Qué es la API de Optimism?

La API de Optimism es el conjunto de endpoints JSON-RPC que permiten a las aplicaciones leer y escribir datos en OP Mainnet, una solución de escalado de capa 2 (L2) de Ethereum construida con rollups optimistas. Debido a que OP Mainnet es compatible con EVM, la API de Optimism admite los mismos métodos JSON-RPC estándar de Ethereum, como eth_blockNumber, eth_getBalance y eth_sendRawTransaction. Esto significa que puedes usar bibliotecas conocidas como ethers, viem o web3.js para interactuar con la cadena sin aprender una nueva interfaz.

Si estás construyendo en OP Mainnet, necesitarás un endpoint de la API de Optimism para conectar tu dApp a la red. Puedes ejecutar tu propio nodo, usar un endpoint público o depender de un proveedor de RPC administrado. La elección correcta depende de tu carga de trabajo, requisitos de confiabilidad y presupuesto.

Guía de decisión: Cómo elegir el endpoint de API de Optimism adecuado

Antes de profundizar en los detalles técnicos, es útil decidir qué tipo de endpoint se adapta a tu proyecto. Aquí hay un desglose rápido:

  • Endpoints públicos son gratuitos y fáciles de usar, pero a menudo tienen límites de velocidad y no están diseñados para cargas de trabajo de producción. Son adecuados para desarrollo, pruebas o prototipos de bajo tráfico.
  • Proveedores de RPC administrados como OnFinality ofrecen endpoints confiables y escalables con características como soporte de WebSocket, datos de archivo y nodos dedicados. Son una buena opción para dApps de producción, plataformas de análisis y aplicaciones de alto tráfico.
  • Ejecutar tu propio nodo te da control total y evita dependencias de terceros, pero requiere un esfuerzo operativo significativo: debes mantener el nodo, manejar problemas de sincronización y garantizar alta disponibilidad.

Para la mayoría de los casos de uso de producción, un proveedor de RPC administrado es la opción pragmática. Te permite concentrarte en tu aplicación mientras el proveedor maneja la confiabilidad de la infraestructura. OnFinality ofrece precios de RPC que escalan con tu uso, y puedes consultar las redes RPC compatibles para ver si OP Mainnet está cubierto.

API de Optimism vs. API de Ethereum: ¿Qué es diferente?

Debido a que OP Mainnet es un rollup optimista, su API es casi idéntica a la de Ethereum, pero hay algunas diferencias importantes:

  • Tarifas de transacción: OP Mainnet utiliza un modelo de tarifas que incluye una tarifa de datos L1, que es el costo de publicar datos de transacción en Ethereum. Puedes estimar las tarifas usando eth_gasPrice o los métodos específicos de op-stack.
  • Finalidad: Las transacciones en OP Mainnet se consideran finales después de un período de desafío (alrededor de 7 días), pero para la mayoría de las aplicaciones, puedes tratar una transacción como confirmada una vez que se incluye en un bloque.
  • ID de cadena: El ID de cadena para OP Mainnet es 10, y para la red de pruebas Optimism Sepolia es 11155420. Asegúrate de que tu billetera y aplicación usen el ID de cadena correcto.
  • Métodos adicionales: La API de Optimism puede incluir métodos específicos de OP-Stack, como optimism_syncStatus o eth_getBlockByNumber con atributos L1, pero los métodos principales de Ethereum siguen siendo los mismos.

Configuración de tu conexión a la API de Optimism

Para comenzar a usar la API de Optimism, necesitas una URL de endpoint. OnFinality proporciona un endpoint público para OP Mainnet: https://optimism.api.onfinality.io/public. Para la red de pruebas Optimism Sepolia, usa https://optimism-sepolia.api.onfinality.io/public. Estos endpoints admiten transportes HTTP y WebSocket.

Así es como conectarse usando viem:

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

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

const blockNumber = await client.getBlockNumber();
console.log('Número de bloque actual:', blockNumber);

Si usas ethers v6:

import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://optimism.api.onfinality.io/public');
const blockNumber = await provider.getBlockNumber();
console.log('Número de bloque actual:', blockNumber);

Para una aplicación de producción, probablemente querrás un endpoint dedicado con límites de velocidad más altos. OnFinality ofrece nodos dedicados que te brindan un endpoint privado con capacidad configurable.

Métodos de la API de Optimism: Qué puedes llamar

La API de Optimism admite todos los métodos JSON-RPC estándar de Ethereum. Aquí están los más comunes que usarás:

MétodoDescripciónCaso de uso de ejemplo
eth_blockNumberObtener el número de bloque más recienteVerificar el estado de sincronización de la cadena
eth_getBalanceObtener el saldo de una direcciónMostrar saldos de usuarios
eth_callEjecutar una llamada de contrato de solo lecturaConsultar datos en cadena
eth_sendRawTransactionTransmitir una transacción firmadaEnviar transacciones de usuarios
eth_getTransactionReceiptObtener el recibo de una transacciónConfirmar el estado de la transacción
eth_getLogsObtener registros de eventosIndexar eventos de contratos inteligentes
eth_estimateGasEstimar gas para una transacciónMostrar estimaciones de gas a los usuarios

Además de estos, es posible que necesites datos de archivo para consultas históricas. Los nodos de archivo almacenan el historial completo de estado, lo cual es esencial para plataformas de análisis o dApps que necesitan consultar saldos pasados. OnFinality admite datos de archivo en OP Mainnet; consulta la página de red para obtener detalles.

Uso de WebSocket para actualizaciones en tiempo real

Si tu aplicación necesita datos en tiempo real, como transacciones pendientes o nuevos bloques, puedes usar un endpoint WebSocket. El endpoint de Optimism de OnFinality admite WebSocket en wss://optimism.api.onfinality.io/public (nota: la URL pública puede diferir; consulta la página de red para obtener la URL WebSocket exacta).

Aquí hay un ejemplo de suscripción a nuevos encabezados de bloque usando viem:

import { createPublicClient, webSocket } from 'viem';
import { optimism } from 'viem/chains';

const client = createPublicClient({
  chain: optimism,
  transport: webSocket('wss://optimism.api.onfinality.io/public'),
});

const unwatch = client.watchBlockNumber({
  onBlockNumber: (blockNumber) => {
    console.log('Nuevo bloque:', blockNumber);
  },
});

Las conexiones WebSocket consumen más recursos, así que asegúrate de que tu proveedor las admita y de manejar la lógica de reconexión en tu aplicación.

Red de pruebas Optimism Sepolia: Probando tu dApp

Antes de implementar en OP Mainnet, debes probar tu aplicación en la red de pruebas Optimism Sepolia. La red de pruebas usa la misma API pero con un ID de cadena diferente (11155420) y un endpoint diferente: https://optimism-sepolia.api.onfinality.io/public. Puedes obtener ETH de prueba de un grifo para financiar tus transacciones de prueba.

Así es como configurar tu billetera para Optimism Sepolia:

{
  "chainId": 11155420,
  "chainName": "OP Sepolia Testnet",
  "nativeCurrency": {
    "name": "Sepolia Ether",
    "symbol": "ETH",
    "decimals": 18
  },
  "rpcUrls": ["https://optimism-sepolia.api.onfinality.io/public"],
  "blockExplorerUrls": ["https://sepolia-optimism.etherscan.io"]
}

Probar en Sepolia te ayuda a detectar problemas antes de que afecten a usuarios reales y te permite validar tu integración sin gastar ETH real.

Errores comunes y solución de problemas

Incluso con una API confiable, puedes encontrar problemas. Aquí hay algunos problemas comunes y cómo resolverlos:

  • Límite de velocidad: Si estás alcanzando los límites de velocidad, considera actualizar a un plan de pago o usar un nodo dedicado. Los precios de RPC de OnFinality ofrecen niveles para diferentes cargas de trabajo.
  • ID de cadena incorrecto: Asegúrate de que tu aplicación use el ID de cadena 10 para OP Mainnet y 11155420 para Sepolia. Usar el ID de cadena incorrecto puede causar que las transacciones fallen.
  • Desconexiones de WebSocket: Las conexiones WebSocket pueden caerse. Implementa lógica de reconexión y maneja los errores con elegancia.
  • Datos de archivo faltantes: Si necesitas datos históricos, asegúrate de que tu proveedor ofrezca nodos de archivo. No todos los proveedores lo hacen.
  • Finalidad de transacción: Recuerda que OP Mainnet tiene un período de desafío. Para la mayoría de los casos de uso, puedes tratar una transacción como final una vez que se incluye en un bloque, pero para transacciones de alto valor, es posible que desees esperar a que pase el período de desafío.

Conclusiones clave

  • La API de Optimism se basa en JSON-RPC y es compatible con EVM, por lo que puedes usar herramientas estándar de Ethereum.
  • Elige entre endpoints públicos, proveedores administrados o nodos autohospedados según tus necesidades.
  • OnFinality proporciona endpoints de Optimism confiables tanto para mainnet como para testnet, con soporte HTTP y WebSocket.
  • Usa la red de pruebas Optimism Sepolia para probar tu dApp antes de implementarla en producción.
  • Ten en cuenta los límites de velocidad, los ID de cadena y los requisitos de datos de archivo al construir tu aplicación.

Preguntas frecuentes

¿Qué es la API de Optimism?

La API de Optimism es un conjunto de endpoints JSON-RPC que permiten a las aplicaciones interactuar con OP Mainnet, una red de capa 2 de Ethereum. Admite métodos estándar de Ethereum, lo que facilita a los desarrolladores construir en Optimism.

¿Es la API de Optimism igual que la API de Ethereum?

Sí, la API de Optimism es en gran medida la misma que la API de Ethereum porque OP Mainnet es compatible con EVM. Hay diferencias menores en la estructura de tarifas y la finalidad, pero los métodos principales son idénticos.

¿Cómo obtengo un endpoint de la API de Optimism?

Puedes usar un endpoint público como https://optimism.api.onfinality.io/public o registrarte en un proveedor de RPC administrado como OnFinality para obtener un endpoint dedicado con límites más altos.

¿Cuál es el ID de cadena para Optimism?

OP Mainnet usa el ID de cadena 10, y la red de pruebas Optimism Sepolia usa el ID de cadena 11155420.

¿OnFinality admite Optimism?

Sí, OnFinality admite OP Mainnet y Optimism Sepolia. Puedes encontrar más detalles en la página de red de Optimism y en la página de Optimism Sepolia.

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