Saltar al contenido
0%

Tipos de nodos de Ethereum: full vs. archive vs. light

Alchemy team headshot

Escrito por Alchemy

Publicado el 11 de agosto de 20226 min de lectura

La blockchain de Ethereum es una red mundial distribuida de computadoras en la que los nodos agrupan poder de procesamiento, recursos, y comparten responsabilidades de verificación de bloques para que la red pueda alcanzar consenso (es decir, acordar un estado compartido).

Este post examina los diferentes tipos de nodos de Ethereum utilizados en la blockchain de Ethereum (full nodes, archive nodes y light nodes), y sus diferencias.

¿Qué es un full node?

Un full node mantiene una copia completa de los datos de la blockchain, y contribuye a la red recibiendo transacciones y bloques de otros full nodes, validándolos y reenviándolos a otros full nodes.

Cuando se ejecuta una transacción de un smart contract, los full nodes de Ethereum ejecutan todas las instrucciones del smart contract. En conjunto, los full nodes determinan si la ejecución del smart contract produce el resultado esperado. Sin embargo, ejecutar full nodes de Ethereum es costoso y consume una gran cantidad de energía.

Clientes de full node

Un cliente es una implementación de software de Ethereum que verifica todas las transacciones de cada bloque, garantizando que la red sea segura y que los datos de las transacciones sean válidos. Los clientes de full node de Ethereum validan todas las transacciones de cada bloque, brindando a la red seguridad y precisión de datos.

Cada cliente de Ethereum tiene su propio conjunto de capacidades y ventajas. Las implementaciones pueden adaptarse a distintos grupos de usuarios debido a su diversidad. Al elegir un cliente de nodo de Ethereum, considera las funcionalidades, el soporte, el lenguaje de programación web3 y las licencias.

Implementaciones de software de full node (clientes de la capa de ejecución)

Existen cuatro tipos principales de implementaciones de full nodes de la capa de ejecución:

  1. Geth (Go Ethereum) - escrito en Go
  2. Nethermind - escrito en C# y .NET
  3. Erigon - escrito en Go
  4. Hyperledger Besu - escrito en Java

Después de The Merge, cuando Ethereum transicione de Proof-of-Work a Proof-of-Stake, cada full node necesitará ejecutar un cliente de la capa de consenso junto con uno de los clientes de la capa de ejecución mencionados anteriormente.

Implementaciones de software de full node (clientes de la capa de consenso)

Existen cinco clientes principales de la capa de consenso:

  1. Prysm - construido por Prysmatic Labs en Go
  2. Teku - construido por el equipo de Besu en Java
  3. Lighthouse - construido por Sigma Prime y escrito en Rust
  4. Nimbus - construido por el equipo de Nimbus y escrito en Rust
  5. Lodestar - construido por ChainSafe Systems en Typescript

¿Qué es un light node?

Un light node almacena datos del encabezado del bloque, como el hash del bloque anterior y una marca de tiempo, en lugar de los datos completos del bloque como lo hace un full node. Los light nodes envían solicitudes a demanda a los full nodes, validando únicamente las partes del estado que sus usuarios requieren.

Los dispositivos de baja capacidad, como computadoras personales, pueden beneficiarse de los light nodes porque estos no realizan tareas costosas de almacenamiento y escritura de datos.

Ejemplos de casos de uso para light nodes incluyen:

  1. Examinar balances
  2. Validar si una transacción fue confirmada por la red
  3. Verificar registros de eventos

Además de las computadoras personales, los light nodes también pueden ejecutarse de manera eficiente en dispositivos de baja capacidad como teléfonos móviles o Raspberry Pis.

¿Qué es un archive node?

Un archive node contiene todos los mismos datos que un full node, además de todo el estado histórico de la blockchain desde el bloque Génesis (es decir, el primer bloque).

Aunque los full nodes pueden reconstruir datos antiguos del estado de la blockchain, este proceso de sincronización consume mucho tiempo y es ineficiente. Estos datos pueden necesitar ser entregados rápidamente según el caso de uso. Sin embargo, los archive nodes pueden rastrear transacciones ya que cuentan con datos históricos desde el primer bloque.

Los archive nodes pueden almacenar gigabytes de datos pasados, lo que los hace menos atractivos para el usuario típico, pero valiosos para proveedores de servicios como exploradores de bloques, wallets y empresas de análisis on-chain.

Erigon vs. Geth

La implementación oficial en Golang del protocolo de Ethereum es Go Ethereum (o Geth). Geth es el cliente de Ethereum más popular, tiene la mayor cantidad de usuarios, y ofrece una amplia gama de herramientas basadas en Go para desarrolladores, todas de código abierto y bajo licencia GNU LGPL v3.

Erigon es un fork de Geth enfocado en la velocidad y el ahorro de espacio en disco. Erigon es una implementación de cliente de nodo de Ethereum completamente rediseñada, desarrollada en Go, con planes de portarse a otros lenguajes en el futuro. Erigon busca ofrecer una implementación de Ethereum más modular, rápida y optimizada.

Comparado con Geth, gracias al desarrollo paralelizado, almacenamiento plano, preprocesamiento y sincronización por etapas de Erigon, este logra una huella de almacenamiento menor, velocidades de sincronización más rápidas y, en general, una mejor experiencia para los desarrolladores que necesitan usar trace APIs.

¿Cuáles son las diferencias entre un full node y un archive node?

La principal diferencia entre un full node y un archive node es que el archive node mantiene un registro de todos los estados anteriores de la cadena (es decir, un panorama completo del ecosistema de Ethereum), mientras que un full node solo necesita almacenar una instantánea de los datos del estado actual.

En pocas palabras, los archive nodes contienen todos los datos históricos desde el bloque uno, mientras que los full nodes solo contienen los datos actuales más importantes y necesarios para validar nuevas transacciones, mientras que los datos innecesarios de la blockchain se "podan" (pruning).

Cómo elegir el tipo de nodo adecuado

Elegir el tipo correcto de nodo de Ethereum para implementar depende de tu caso de uso y de tus recursos, ya que la configuración y funcionalidad de los nodos difieren significativamente.

Puedes usar Ethereum de manera privada, autosuficiente y sin necesidad de confianza al ejecutar tu propio nodo. No tienes que confiar en la red porque los datos pueden verificarse con tu propio cliente de nodo.

Un full node tiene la ventaja de poder comunicarse directamente con cualquier smart contract en la blockchain pública. Los full nodes también pueden desplegar smart contracts en la blockchain pública.

Sin embargo, el uso ilimitado de datos, el almacenamiento y las capacidades directas de smart contracts no son gratuitos, y los full nodes pueden exigir mucho de los recursos de hardware y ancho de banda de tu máquina.

Los archive nodes almacenan toda la información que almacena un full node y crean un historial de los estados de la blockchain. Incluso después de que un cliente haya completado la sincronización, los archive nodes seguirán guardando los datos anteriores.

Si tu aplicación requiere información histórica de la blockchain, deberás ejecutar tu propio archive node o elegir un proveedor de nodos de blockchain que ofrezca acceso a archive nodes.

Los light nodes son similares a los full nodes, sin embargo, solo manejan una pequeña cantidad de datos. El light node guarda los datos de la cadena de encabezados, pero solo recibe datos adicionales cuando se solicitan. Pueden validar la validez de los datos, pero no participan plenamente en la validación de bloques.

Infraestructura de nodos de Alchemy

Alchemy es un proveedor de infraestructura de nodos web3 y una plataforma para desarrolladores de blockchain que ofrece a los desarrolladores web3 una escalabilidad, estabilidad y precisión de datos superiores a través del Node API de Alchemy y su conjunto de herramientas. El motor Cortex de Alchemy mejora todos los aspectos de la funcionalidad de los nodos mediante sistemas distribuidos especializados y un servicio coordinador propietario que garantiza la precisión de los datos en tiempo real.

Debido a que los nodos son de propósito general y no están diseñados para ofrecer alta disponibilidad, las apps que operan su propio nodo pueden experimentar una latencia y un tiempo de inactividad mayores que los de un proveedor de nodos.

Escalable, confiable y preciso

El Node API de Alchemy ofrece una arquitectura de nodos escalable con una garantía de disponibilidad del 99.99%, lo que permite a los desarrolladores de dApps seguir escalando sin interrupciones en su producto o para sus usuarios.

La infraestructura de nodos de Alchemy, infinitamente escalable, junto con su confiabilidad, velocidad y precisión de datos sin igual, se utilizan para impulsar Polygon, lo que ha demostrado ser un catalizador de adopción, resultando en un aumento significativo en la cantidad de apps construidas en Polygon.

0x, el respaldo global para los exchanges descentralizados, que permite que cientos de miles de millones de operaciones fluyan a través de todas las blockchains principales, confía en Alchemy para su infraestructura de nodos confiable.

Acceso gratuito a archive nodes

Alchemy ofrece un robusto plan gratuito que brinda acceso gratuito a archive nodes tanto en mainnet como en testnets. Para aprender más sobre Alchemy y obtener acceso gratuito a archive nodes, regístrate hoy para obtener una cuenta gratuita.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.