Ir al contenido principal

Ayúdenos a actualizar esta página.

🌏

Disponemos de una nueva versión de esta página, pero solo está en inglés por ahora. Ayúdenos a traducir la última versión.

Traducir la página
Ver en inglés

¡Aquí no hay ningún error!🐛

Esta página no se está traduciendo. Por ahora hemos dejado esta página en inglés.

Ejecute su propio nodo de Ethereum

Última edición: , Invalid DateTime
Editar página
(opens in a new tab)

Ejecutar tu propio nodo le aporta diferentes beneficios, le abre nuevas posibilidades y le ayuda a apoyar el ecosistema. Esta página le guiará durante la ejecución de su propio nodo y durante la participación en la validación de las transacciones de Ethereum.

Requisitos previos

Debería entender qué es un nodo de Ethereum y por qué debería ejecutar un cliente. Este tema se trata en la sección Nodos y clientes.

If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on running an Ethereum node.

Elección de un enfoque

El primer paso para ejecutar el nodo es elegir su enfoque. Tiene que escoger el cliente (el software), el entorno y los parámetros con los que quiere comenzar. Consulte toda la información disponible en Clientes de la red principal.

Ajustes del cliente

Las implementaciones de clientes permiten el uso de diferentes modos de sincronización y otras opciones diferentes. Los modos de sincronización representan diferentes métodos de descarga y validación de datos de cadenas de bloques. Antes de empezar el nodo, debería decidir qué red y modo de sincronización usar. Los aspectos más importantes que se deben tener en cuenta son el espacio del disco y el tiempo de sincronización que necesitará el cliente.

Todas las características y opciones pueden encontrarse en la documentación para clientes. Se pueden establecer distintas configuraciones de clientes mediante la ejecución del cliente con los parámetros correspondientes. Puede obtener más información sobre los parámetros desde EthHub(opens in a new tab) o la documentación para clientes. Con fines de prueba, puede preferir ejecutar un cliente en una de las redes de prueba. Ver resumen de las redes compatibles.

Entorno y hardware

Local o en la nube

Los clientes de Ethereum pueden ejecutarse en ordenadores de nivel usuario y no requieren hardware especial, como, por ejemplo, el minado. Por eso, tiene varias opciones de implementación según sus necesidades. Para simplificar, vamos a pensar en ejecutar un nodo en una máquina física local y en un servidor en la nube:

  • En la nube
    • Los proveedores ofrecen un alto tiempo de actividad del servidor, direcciones IP públicas estáticas
    • Obtener un servidor dedicado o virtual puede ser más cómodo que construir el suyo propio
    • La contrapartida es confiar en un tercero: el proveedor del servidor
    • Debido al tamaño de almacenamiento requerido para el nodo completo, el precio de un servidor alquilado podría llegar a ser alto
  • Hardware propio
    • Un enfoque más soberano y fiable
    • Inversión única
    • Una opción para comprar máquinas preconfiguradas
    • Tiene que llevar a cabo la preparación física, el mantenimiento y la posible solución de problemas de la máquina

Ambas opciones tienen diferentes ventajas, resumidas arriba. Si está buscando una solución en la nube, además de muchos proveedores tradicionales de computación en la nube, también existen servicios enfocados en el despliegue de nodos. Por ejemplo:

Hardware

Sin embargo, una red descentralizada, resistente a la censura, no debería depender de proveedores en la nube. Es más seguro para el ecosistema si usted ejecuta su propio nodo en hardware. Las opciones más fáciles son máquinas preconfiguradas como:

Compruebe el espacio en disco mínimo y recomendado para cada cliente y modo de sincronización. Generalmente, una potencia computacional moderada debería ser suficiente. El problema suele ser la velocidad de la unidad. Durante la sincronización inicial, los clientes de Ethereum llevan a cabo muchas operaciones de lectura/escritura. Por eso, se recomienda usar una SSD. Un cliente podría ni siquiera ser capaz de sincronizar el estado actual en el disco de almacenamiento(opens in a new tab) y quedarse atascado unos bloques por detrás de la red. Puede ejecutar la mayoría de los clientes en un ordenador de una sola placa con ARM. También puede usar Ethbian(opens in a new tab), el sistema operativo para Raspberry Pi 4. This lets you run a client by flashing the SD card. Según el software y el hardware que haya elegido, el tiempo de sincronización inicial y los requisitos de almacenamiento pueden variar. Asegúrese de comprobar los tiempos de sincronización y los requisitos de almacenamiento. Asegúrese además de que su conexión a internet no esté limitada por un límite de ancho de banda(opens in a new tab). Se recomienda utilizar una conexión ilimitada, ya que la sincronización inicial y los datos transmitidos a la red podrían superar su límite.

Sistema operativo

Todos los clientes son compatibles con los principales sistemas operativos: Linux, MacOS y Windows. Esto implica que puede ejecutar nodos en equipos de escritorio o servidores normales con el sistema operativo (SO) que mejor le convenga. Asegúrese de que su sistema operativo está actualizado para evitar posibles problemas y vulnerabilidades de seguridad.

Despliegue del nodo

Obtener el software del cliente

Primero, descargue su cliente de sofware preferido

Puede simplemente descargar una aplicación ejecutable o instalar un paquete que se adapte a su arquitectura y sistema operativo. Compruebe siempre las firmas y sumas de verificación de los paquetes descargados. Algunos clientes también ofrecen repositorios para una instalación y actualizaciones más sencillas. Si lo prefiere, puede crear a partir de la fuente. Todos los clientes son de código abierto, así que puede crearlos a partir del código fuente con el compilador adecuado.

Los binarios ejecutables para las implementaciones estables de clientes de la red principal se pueden descargar desde sus páginas de publicación:

Tenga en cuenta que OpenEthereumha quedado obsoleta(opens in a new tab)y no tiene mantenimiento. Debe usarla con precaución y, preferiblemente, cambiar de cliente.

Inicio del cliente

Antes de iniciar el software del cliente de Ethereum, realice una última comprobación para verificar que su entorno está listo. Por ejemplo, asegúrese de que:

  • Hay suficiente espacio en el disco teniendo en cuenta la red elegida y el modo de sincronización.
  • La memoria y la CPU no están interrumpidas por otros programas.
  • El sistema operativo está actualizado a la última versión.
  • El sistema tiene la hora y fecha correctos.
  • Su enrutador y su firewall aceptan conexiones en puertos de escucha. Por defecto, los clientes de Ethereum usan un puerto de escucha (TCP) y un puerto de descubrimiento (UDP), ambos en 30303 por defecto.

Ejecutar un cliente primero en una red de prueba ayuda a garantizar que todo funciona correctamente. Ejecutar un nodo ligero Geth debería ayudar. Debe declarar cualquier configuración de cliente que no esté predeterminada al inicio. Puede usar indicadores o el archivo de configuración para declarar su configuración preferida. Revise la documentación de su cliente para ver las especificaciones La ejecución del cliente iniciará sus funciones principales, sus puntos de conexión elegidos y comenzará a buscar pares. Al encontrar pares correctamente, el cliente inicia la sincronización. Los datos actuales de la cadena de bloques estarán disponibles una vez que el cliente se sincronice correctamente al estado actual.

Uso del cliente

El cliente ofrece puntos de conexión RCP API que puede usar para controlar el cliente e interactuar con la red de Ethereum de diferentes formas:

  • Llamándolos manualmente con un protocolo adecuado (por ejemplo, usando curl)
  • Adjuntando una consola suministrada (por ejemplo, geth attach)
  • Implementándolos en aplicaciones

Según el tipo de cliente, existen diferentes implementaciones de puntos de conexión RPC. Pero existe un modelo estándar JSON-RPC que puede usar con todos los clientes. Para obtener un resumen, lea los documentos sobre JSON-RPC(opens in a new tab). Las aplicaciones que necesitan información de la red de Ethereum pueden usar este RPC. Por ejemplo, la popular cartera MetaMask le permite ejecutar una instancia local de cadena de bloques y conectarse a ella(opens in a new tab).

Comunicación con RPC

El puerto predeterminado de JSON-RPC es 8545, pero puede modificar los puertos de los puntos de conexión locales en el archivo de configuración. Por defecto, la interfaz de RPC solamente es accesible en el servidor local de su ordenador. Para hacerlo accesible de manera remota, deberá exponerlo al público cambiando la dirección a 0.0.0.0. Así, será accesible desde direcciones IP locales y públicas. En la mayoría de los casos, también deberá establecer un puerto de reenvío en su enrutador.

Debería proceder con precaución, ya que esto le permitirá a cualquier persona conectada a Internet controlar su nodo. Los actores maliciosos podrían acceder a su nodo para atacar su sistema o robar sus fondos si está usando su cliente como cartera.

Una forma de evitarlo es prevenir que los métodos RPC potencialmente dañinos sean modificables. Por ejemplo, con geth, puede declarar métodos modificables con un indicador: --http.api web3,eth,txpool.

También puede alojar el acceso a su interfaz RPC orientando el servicio de servidor web, como Nginx, a la dirección y puerto locales de su cliente.

La forma más sencilla de preservar la privacidad y configurar un punto de conexión accesible públicamente es alojarlo en su propio servicio onion Tor(opens in a new tab). Esto le permitirá acceder al RPC fuera de su red local sin una dirección IP pública estática o puertos abiertos. Para ello:

  • Instale tor
  • Edite la configuración de torrc para habilitar el servicio oculto con la dirección del RPC y el puerto de su cliente
  • Reinicie el servicio tor

Una vez que reinicie Tor, obtendrá las claves de servicio ocultas y un nombre de host en el directorio deseado. A partir de entonces, su RPC será accesible en un nombre de host .onion.

Funcionamiento del nodo

Deberá supervisar regularmente su nodo para asegurarse de que está funcionando de manera apropiada. Puede que necesite realizar un mantenimiento ocasional.

Mantenimiento del nodo en línea

Su nodo no necesita estar en línea todo el tiempo, pero debería mantenerlo en línea tanto tiempo como sea posible para que esté sincronizado con la red. Puede apagarlo para reiniciarlo, pero debe tener en cuenta que:

  • El apagado puede tardar hasta unos minutos si el último estado se sigue grabando en el disco.
  • Los apagados forzados pueden dañar la base de datos.
  • Su cliente no sincronizará con la red y tendrá que resincronizar cuando lo reinicie.

Esto no aplica a los nodos validadores en la capa de consenso. La desconexión de su nodo afectará a todos los servicios que dependen de él. Si está ejecutando un nodo con fines de apuesta, debería tratar de minimizar tanto como sea posible el tiempo de inactividad.

Creación del servicio de cliente

Considere la opción de crear un servicio para ejecutar su cliente automáticamente al iniciar. Por ejemplo, en servidores Linux, una buena práctica sería crear un servicio que ejecute el cliente con la configuración adecuada, con un usuario con privilegios limitados y reinicios automáticos.

Actualización del cliente

Debe mantener actualizado el software de su cliente con los últimos parches de seguridad, características y EIP. Especialmente antes de las bifurcaciones duras, asegúrese de que está ejecutando la versión de cliente correcta.

Ejecución de servicios adicionales

Ejecutar tu propio nodo le permite usar servicios que requieren acceso directo al cliente RCP de Ethereum. Estos son servicios que se crean sobre Ethereum, como soluciones de capa 2, clientes de consenso y otra infraestructura de Ethereum.

Supervisión del nodo

Para poder supervisar adecuadamente su nodo, considere la opción de recopilar métricas. Los clientes proporcionan puntos de conexión de métricas para que pueda obtener datos completos acerca de su nodo. Use herramientas como InfluxDB(opens in a new tab) o Prometheus(opens in a new tab) para crear bases de datos que pueda convertir en visualizaciones y gráficas en softwares como Grafana(opens in a new tab). Existen muchas configuraciones para usar este software y diferentes paneles Grafana para que visualice su nodo y la red en su conjunto. Como parte de la supervisión, asegúrese de comprobar el rendimiento de sus máquinas. Durante la sincronización inicial de su nodo, el software del cliente puede ser muy pesado para la CPU y la RAM. Además de Grafana, puede usar las herramientas que ofrece su sistema operativo como htop o uptime para llevar a cabo esta operación.

Más información

¿Le ha resultado útil este artículo?