Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
OnFinality Learn
Infraestructura y Operaciones10 min de lectura

Mint Node: Ejecución y verificación de un nodo RPC de rollup de Mint Blockchain

Una guía práctica y reproducible para ejecutar un nodo de rollup de Mint, desde los requisitos previos de RPC de L1 y el arranque con Docker Compose hasta la verificación, la sincronización desde snapshot y la resolución de problemas.

TL;DR

Un nodo de Mint es un nodo de rollup estilo OP Stack que combina un cliente de ejecución (op-geth) con un cliente de consenso de rollup (op-node) y deriva sus datos de Ethereum L1. Ejecutar uno requiere un RPC de L1 confiable más un endpoint beacon, disco adecuado para el estado de archivo y un paso de verificación que confirme que el nodo está siguiendo la cadena. Esta guía explica el modelo mental, recorre un arranque reproducible con Docker Compose, muestra cómo verificar la salud con llamadas JSON-RPC y cubre la sincronización desde snapshot, la resolución de problemas y las ventajas y desventajas. Separa el comportamiento documentado del repositorio de las recomendaciones operativas y de las mediciones que debe ejecutar en su propio host.

Qué es realmente un nodo de Mint

En el ecosistema de Mint Blockchain, un "nodo mint" se refiere a un nodo de rollup que le permite ejecutar su propio endpoint RPC para la red Mint. El repositorio público Mint-Blockchain/mint-node lo describe como todo lo necesario para ejecutar su propio nodo RPC, y su estructura sigue el patrón de OP Stack: un cliente de ejecución llamado op-geth y un cliente de consenso de rollup llamado op-node, orquestados con Docker Compose.

Esto es diferente de instalar Node.js en Linux Mint, que es una fuente común de confusión en los resultados de búsqueda. Si su objetivo es un entorno de ejecución de JavaScript, necesita un gestor de versiones como NVM o un repositorio de NodeSource. Si su objetivo es un nodo RPC de blockchain para Mint, continúe aquí. Los dos temas comparten una palabra, no un flujo de trabajo.

El modelo mental importante es que un nodo de rollup no es autónomo. Lee datos de L1 desde Ethereum para derivar la cadena de rollup, por lo que su salud depende de la calidad y disponibilidad de los endpoints RPC de L1 y beacon que configure.

  • Capa de ejecución: op-geth, que sirve JSON-RPC en el puerto 8545 por defecto.
  • Capa de consenso/rollup: op-node, que sigue a L1 e impulsa al cliente de ejecución.
  • Dependencia externa: un RPC de Ethereum L1 y un RPC beacon, configurados mediante variables de entorno.
  • Modo de almacenamiento: archivo por defecto en la configuración documentada, lo que tiene implicaciones significativas en el disco.

Requisitos previos y supuestos antes de comenzar

El repositorio del nodo de Mint documenta una configuración mínima recomendada de 2 núcleos de CPU, 8 GB de RAM y un SSD de 800 GB para un nodo de archivo. Considérelo un mínimo, no un objetivo. Los nodos de archivo crecen, y los tamaños de snapshot publicados por el proyecto le dan una idea del volumen de datos involucrado. Planifique un margen para el crecimiento de la cadena, las imágenes de Docker y los registros.

También necesita Docker y Docker Compose instalados, acceso de red saliente a sus proveedores de RPC de L1 y beacon, y una decisión sobre si sincronizará desde génesis o desde un snapshot. Para uso en producción, considere un host dedicado en lugar de una máquina de desarrollo compartida; consulte la guía sobre alojamiento de nodos de blockchain para dimensionamiento y consideraciones operativas.

Los comandos a continuación utilizan marcadores como RPC_URL y BEACON_URL. Reemplácelos con endpoints que controle o en los que confíe. No pegue claves privadas en archivos de entorno para un nodo RPC de solo lectura; este nodo no las necesita.

  • Sistema operativo: una distribución Linux moderna con Docker Engine y el plugin Compose.
  • Disco: almacenamiento respaldado por SSD; el modo archivo necesita sustancialmente más que un nodo podado.
  • Red: acceso saliente estable, idealmente con baja latencia hacia su proveedor de L1.
  • Endpoints: un RPC de ejecución de Ethereum L1 y un RPC de cadena beacon.
  • Control de acceso: configure el firewall para el puerto 8545 de modo que solo clientes de confianza puedan acceder al RPC.

Cómo el par op-geth y op-node deriva la cadena

op-node es el controlador del rollup. Observa Ethereum L1 en busca de datos de lotes y raíces de salida, luego indica a op-geth que importe y ejecute los bloques de rollup correspondientes. op-geth almacena el estado y expone la interfaz JSON-RPC familiar de Ethereum, que es la que llaman las aplicaciones y los indexadores.

Debido a que la derivación depende de L1, un endpoint de L1 retrasado o poco confiable se manifiesta como un nodo de Mint estancado incluso cuando ambos contenedores están en ejecución. Por eso la primera pregunta de resolución de problemas rara vez es "¿está el contenedor activo?" sino "¿está el endpoint de L1 saludable y está op-node progresando?"

El archivo .env del repositorio conecta las dos capas a través de OP_NODE_L1_ETH_RPC y OP_NODE_L1_BEACON. El endpoint beacon es necesario porque la ruta de derivación del rollup requiere datos de la cadena beacon, no solo JSON-RPC de la capa de ejecución.

Configuración de variables de entorno para el acceso a L1

Cree un archivo .env en la raíz del repositorio. Las variables documentadas son el RPC de ejecución de L1 y el RPC beacon. Mantenga este archivo fuera del control de versiones y restrinja sus permisos, porque las URL de los proveedores a menudo incluyen claves de API.

Si está evaluando qué proveedor de L1 utilizar, la elección importa más que el formato de la URL. Busque latencia constante, soporte de archivo si es necesario y límites de velocidad que coincidan con el comportamiento de sondeo de su nodo. La guía de endpoints RPC explica cómo comparar proveedores metódicamente en lugar de basarse en afirmaciones de marketing.

# .env — replace placeholders with your own endpoints
OP_NODE_L1_ETH_RPC=RPC_URL
OP_NODE_L1_BEACON=BEACON_URL

# Optional: adjust the data directory or storage mode in your compose override
# OP_GETH_DATADIR=/data/op-geth

Inicio del nodo con Docker Compose

El repositorio documenta un arranque en dos pasos: levante primero op-geth, luego op-node. Iniciar primero el cliente de ejecución le da al controlador del rollup un backend accesible cuando se inicializa. Ejecute estos comandos desde la raíz del repositorio después de que su .env esté en su lugar.

La opción -d ejecuta los contenedores en segundo plano. Si prefiere observar los registros durante la primera sincronización, omita -d para op-node en una terminal separada para que pueda ver el progreso de la derivación en tiempo real.

# Start the execution client
docker compose -f docker-compose.yml up -d op-geth

# Start the rollup consensus client
docker compose -f docker-compose.yml up -d op-node

# Confirm both containers are running
docker compose ps

Verificación de que el nodo está siguiendo la cadena

La verificación documentada en el repositorio llama a eth_blockNumber contra localhost:8545. Una respuesta exitosa devuelve una altura de bloque hexadecimal. Eso confirma que el RPC es accesible, pero no prueba por sí solo que el nodo esté avanzando. Llámelo dos veces con un retraso y compare los valores.

Registre sus observaciones en una tabla simple en lugar de confiar en la memoria. La tabla a continuación es una plantilla; complétela con valores de su propio host. No trate ningún número aquí como un punto de referencia.

VerificaciónComando o fuenteObservación esperadaSu valor
RPC accesiblecurl a eth_blockNumberResultado JSON con número de bloque hexadecimal
Cadena avanzandoRepetir eth_blockNumber después de 60 sLa altura aumenta o coincide con la punta de la red
Salud del contenedordocker compose psAmbos servicios en ejecución
Modo de sincronizaciónConfiguración de Compose o flagsArchivo o snap según lo previsto
Uso de discodf -h en el volumen de datosCrecimiento estable, margen restante

Para una segunda opinión independiente, consulte un endpoint RPC público de Mint a través de un proveedor y compare alturas. Si su nodo está muy atrasado, está sincronizando; si está atascado en la misma altura mientras la red avanza, pase a la resolución de problemas.

curl -s -d '{"id":0,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}' \
  -H 'Content-Type: application/json' \
  http://localhost:8545

# Example response shape (value will differ):
# {"jsonrpc":"2.0","id":0,"result":"0x1a2b3c"}

Un sondeo de salud en JavaScript que puede programar

Un curl único es útil durante la configuración, pero la operación continua se beneficia de un pequeño sondeo que registre la altura a lo largo del tiempo. El script a continuación utiliza solo el fetch integrado disponible en Node.js moderno. Imprime la altura actual y el delta desde la muestra anterior, lo que hace visibles los estancamientos.

Ejecútelo con node probe.mjs y apunte MINT_RPC a su nodo. Esta es una herramienta de medición, no un punto de referencia; los números que produce describen el comportamiento de su nodo en su host.

// probe.mjs
const url = process.env.MINT_RPC || 'http://localhost:8545';
let previous = null;

async function height() {
  const res = await fetch(url, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'eth_blockNumber', params: [] })
  });
  const json = await res.json();
  return Number.parseInt(json.result, 16);
}

setInterval(async () => {
  try {
    const h = await height();
    const delta = previous === null ? 'n/a' : h - previous;
    console.log(new Date().toISOString(), 'height', h, 'delta', delta);
    previous = h;
  } catch (err) {
    console.error('probe failed', err.message);
  }
}, 30000);

Sincronización desde snapshot versus sincronización desde génesis

El repositorio documenta un tipo de nodo de archivo predeterminado y publica enlaces de snapshot, incluido un snapshot de archivo cuyo tamaño se indica en el README. La sincronización desde snapshot suele ser la vía más rápida hacia un endpoint RPC utilizable porque evita reproducir toda la cadena desde génesis. La contrapartida es la confianza: usted acepta una imagen de estado producida por otra persona, así que verifique la fuente y la suma de comprobación cuando esté disponible.

Sincronizar desde génesis es más lento pero le da un estado que usted mismo derivó de L1. Para los equipos que necesitan auditar la derivación o ejecutar clientes modificados, eso puede valer la pena. Para los equipos que necesitan un endpoint RPC rápidamente, la sincronización desde snapshot es la opción pragmática.

El repositorio señala que el tipo de nodo predeterminado es archivo y que se puede cambiar mediante --gcmode. Si cambia a un modo podado, confirme que sus aplicaciones no dependen de consultas de estado histórico. Muchos indexadores y trabajos de análisis sí lo hacen.

  • Sincronización desde snapshot: inicio más rápido, depende del publicador del snapshot, verifique la integridad.
  • Sincronización desde génesis: más lenta, estado autoderivado, útil para auditorías y clientes personalizados.
  • Modo archivo: admite consultas históricas, mayor huella de disco.
  • Modo podado: disco más pequeño, puede romper consultas históricas estilo eth_getBalance en bloques antiguos.

Resolución de problemas comunes del nodo de Mint

La mayoría de las fallas se dividen en tres categorías: la dependencia de L1 no está saludable, los contenedores no pueden comunicarse entre sí o el almacenamiento está agotado. Trabaje en ese orden, porque un stack local saludable aún puede parecer roto cuando L1 está degradado.

Si los registros de op-node muestran errores repetidos de solicitudes a L1, verifique los valores de OP_NODE_L1_ETH_RPC y OP_NODE_L1_BEACON y pruébelos de forma independiente con curl. Si op-geth está en ejecución pero eth_blockNumber no avanza, confirme que op-node está conectado al endpoint esperado de op-geth y que los dos contenedores comparten una red.

Si el nodo deja de avanzar después de un período de operación saludable, verifique primero el espacio en disco. Los nodos de archivo crecen, y un disco lleno produce errores posteriores confusos. El repositorio invita a abrir issues en GitHub para problemas que no se resuelven con verificaciones de configuración.

  • El RPC de L1 devuelve errores o se agota el tiempo: pruebe el endpoint fuera de Docker.
  • Endpoint beacon mal configurado: la derivación se estanca incluso con un RPC de ejecución saludable.
  • Contenedores en redes diferentes: op-node no puede alcanzar op-geth.
  • Disco lleno: las escrituras fallan, la sincronización se estanca, los registros pueden truncarse.
  • Desviación de versiones: obtenga imágenes actualizadas y revise las notas de actualización del repositorio.

Limitaciones, ventajas y desventajas, y cuándo usar un endpoint gestionado

Autoalojar un nodo de Mint le da control sobre la localidad de los datos, los patrones de consulta y la política de tiempo de actividad. También lo hace responsable de los costos del proveedor de L1, la planificación de la capacidad del disco, las actualizaciones y el monitoreo. Para una sola aplicación con tráfico de lectura moderado, un endpoint RPC gestionado suele ser más económico en tiempo de ingeniería que un nodo dedicado.

Un enfoque híbrido funciona bien: ejecute su propio nodo para lecturas sensibles a la latencia o de gran volumen, y mantenga un proveedor gestionado como respaldo. La opción de nodo dedicado y la página de precios de RPC le ayudan a comparar el costo operativo del autoalojamiento frente a un servicio. Si solo necesita un endpoint y no la experiencia operativa, el Asistente de RPC puede recomendarle un proveedor concreto; comience con la descripción general del servicio de API.

Sea explícito sobre lo que está midiendo. Un nodo que responde eth_blockNumber en milisegundos en un host inactivo puede comportarse de manera diferente bajo consultas concurrentes de eth_getLogs. Realice una pequeña prueba de carga con su propia carga de trabajo antes de comprometer números de capacidad.

Próximos pasos para un nodo de Mint listo para producción

Una vez que el nodo esté sincronizando y verificado, refuércelo. Coloque el RPC detrás de un proxy inverso con autenticación o lista de IP permitidas, agregue rotación de registros y programe el sondeo de salud de la sección anterior para que los estancamientos se detecten antes de que los usuarios los noten. Documente las etiquetas de imagen exactas que ejecuta para que las actualizaciones sean reproducibles.

Luego decida cómo encaja el nodo en su infraestructura más amplia. Si opera varias cadenas, un proceso coherente de monitoreo y actualización importa más que cualquier nodo individual. La guía de endpoints RPC multicadena cubre patrones para gestionar varios endpoints, y el directorio de redes le ayuda a confirmar qué redes necesita realmente servir.

Finalmente, mantenga las notas de actualización del repositorio en su proceso de lanzamiento. Los clientes de rollup evolucionan, y un nodo que era correcto en la configuración puede quedar desactualizado. Trate las actualizaciones como mantenimiento planificado con una ruta de reversión, no como correcciones ad hoc.

  • Agregue autenticación y limitación de velocidad delante del puerto 8545.
  • Programe el sondeo de salud y alerte sobre altura estancada.
  • Registre las etiquetas de imagen y las variables de entorno para cada despliegue.
  • Revise las notas de actualización antes de obtener nuevas imágenes.
  • Compare la latencia autoalojada con un endpoint gestionado para sus consultas reales.

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