Compartir este artículo

Nodos y clientes de Ethereum : una guía completa

Los términos “cliente Ethereum ” y “nodo Ethereum ” a menudo se usan indistintamente, pero existe una diferencia.

En el mundo de la informática, un "cliente" se refiere a cualquier tipo de software que se descarga en el ordenador y que permite interactuar con otro tipo de software o servicio proporcionado por un servidor. Por ejemplo, Gmail es un cliente de software que se conecta a un servidor de correo electrónico y permite a los usuarios enviar y recibir correos electrónicos.

Un cliente de Ethereum es el software necesario para que los nodos de Ethereum lean bloques en la blockchain de Ethereum y los contratos inteligentes basados ​​en Ethereum. Un "nodo" es el componente que ejecuta el software cliente. Para ejecutar un nodo, primero debe descargar una aplicación cliente de Ethereum .

CONTINÚA MÁS ABAJO
No te pierdas otra historia.Suscríbete al boletín de The Protocol hoy. Ver Todos Los Boletines

¿Qué son los nodos de Ethereum ?

Un "nodo" es una computadora que realiza una función específica en la red Ethereum y ejecuta software cliente para ello. Dependiendo de sus necesidades específicas, ya sea una aplicación descentralizada (dapp) o una billetera, existen tres tipos de nodos que cualquier cliente puede ejecutar: nodos completos, nodos ligeros y nodos de archivo. Cada nodo interpreta los datos de forma diferente y ofrece distintos métodos de sincronización; esto se refiere a la rapidez con la que su nodo puede recuperar información actualizada para que su cliente la interprete.

  • Los nodos completos están repletos de datos; almacenan y distribuyen todos los datos de la cadena de bloques de la red Ethereum . Un nodo completo también participa en la validación de bloques (es decir, verifica todos los bloques y estados de la red).

Una ventaja de implementar un nodo completo es que puede interactuar directamente con cualquier contrato inteligente en la blockchain pública. Los nodos completos también pueden implementar contratos inteligentes directamente en la blockchain pública.

Sin embargo, el uso y almacenamiento completo de los datos, así como la funcionalidad directa de los contratos inteligentes, tiene un coste. Los nodos completos pueden consumir excesivamente los recursos de hardware y ancho de banda del ordenador. Recuperar todos los datos también puede ser muy lento, y a veces la sincronización puede tardar varios días al implementar el nodo por primera vez. Posteriormente, el nodo debe recibir mantenimiento, actualizaciones y mantenerse en línea para evitar tener que repetir el proceso de sincronización completo.

  • Los nodos ligeros son similares a los nodos completos, pero manejan menos información. El nodo ligero almacena información de la cadena de encabezado (información básica almacenada en un bloque, como la marca de tiempo y el hash del bloque anterior), pero solo recibe información adicional previa Request. Pueden verificar la validez de los datos, pero no participan plenamente en la validación del bloque. Los nodos ligeros casi siempre se implementan en clientes remotos. Dado que estos nodos no realizan procesos de almacenamiento y escritura de datos más intensivos, han demostrado ser útiles para dispositivos de baja capacidad, como los teléfonos inteligentes.
  • Los nodos de archivo almacenan toda la información de un nodo completo y crean un archivo de estados históricos de la cadena de bloques. Conservan los datos históricos incluso después de que un cliente haya finalizado la sincronización. Por otro lado, los nodos completos y ligeros "podan" los datos históricos de la cadena de bloques, lo que significa que pueden reconstruir, pero no conservan esta información.

Si bien los nodos de archivo pueden no ser útiles para el usuario promedio, han demostrado ser efectivos en la aplicación de exploradores de bloques, proveedores de billeteras y análisis de cadenas.

¿Qué es un cliente Ethereum ?

Los clientes pueden ser útiles para los desarrolladores, ya que les permiten interactuar con la red y otros nodos mediante diversos lenguajes de programación. La Fundación Ethereum mantiene varios clientes para distintos lenguajes de programación, como Go, Rust, Java y C#. Diversos desarrolladores externos también han creado clientes de Ethereum para una mayor compatibilidad con otros lenguajes.

Los usos más comunes de los clientes de Ethereum incluyen interfaces de transacciones y minería, pero sus casos de uso pueden ir mucho más allá de las interacciones básicas de blockchain.

La Fundación Ethereum mantiene los siguientes clientes:

Estos ofrecen a los desarrolladores opciones para implementar sus proyectos basados ​​en Ethereum. Si su lenguaje preferido no cuenta con soporte oficial de la Fundación Ethereum , existen numerosos clientes Ethereum de terceros que ofrecen compatibilidad con idiomas adicionales.

La razón por la que todos estos diferentes clientes son posibles es porque Ethereum está definido por una especificación formal (es decir, la “Papel amarilloLas especificaciones formales que conforman Ethereum distinguen a la blockchain de Bitcoin. Mientras que Ethereum define comportamientos estándar que todos los clientes deben Síguenos, Bitcoin CORE no tiene tales definiciones. Al proporcionar documentación consistente y un lenguaje claro, las especificaciones de Ethereum permitieron que la blockchain permitiera implementaciones de software independientes, pero interoperables, de un cliente Ethereum .

Tipos de cliente de Ethereum

Cliente completo

Los clientes completos almacenan toda la cadena de bloques de Ethereum ; un proceso que puede tardar varios días en sincronizarse y requiere una enorme cantidad de espacio en disco: más de 1 terabyte para ser exactos, según últimas cifrasLos clientes completos permiten que los nodos conectados realicen todas las tareas en la red, incluida la minería, la validación de transacciones y encabezados de bloque y la ejecución de contratos inteligentes.

Cliente ligero

Los clientes de Ethereum pueden implementarse total o parcialmente. La descripción general anterior explica cómo funciona un cliente "completo". Sin embargo, es importante saber que no siempre es necesario ejecutar un cliente completo. Normalmente, cuando el almacenamiento y la velocidad de los datos son un problema, los desarrolladores optan por usar los llamados "clientes ligeros".

Los clientes ligeros ofrecen una parte de la funcionalidad de un cliente completo. Pueden proporcionar velocidades más rápidas y liberar espacio de almacenamiento de datos porque, a diferencia de los clientes completos, no almacenan la cadena de bloques completa de Ethereum .

El alcance de la funcionalidad de un cliente ligero se adapta a los objetivos del cliente de Ethereum . Por ejemplo, los clientes ligeros se utilizan frecuentemente para la gestión de claves privadas y direcciones de Ethereum dentro de una billetera. Además, suelen gestionar interacciones de contratos inteligentes y transmisiones de transacciones. Otros usos para clientes remotos incluyen instancias web3 dentro de objetos JavaScript, navegadores de aplicaciones descentralizadas y la recuperación de datos de tipos de cambio.

Cliente remoto

Existe un tercer tipo de cliente, llamado cliente remoto, similar a un cliente ligero. La principal diferencia radica en que un cliente remoto no almacena su propia copia de la cadena de bloques ni valida transacciones ni encabezados de bloque. En cambio, los clientes remotos dependen completamente de un cliente completo o ligero para acceder a la red de la cadena de bloques de Ethereum . Este tipo de cliente se utiliza principalmente como monedero para enviar y recibir transacciones.

La diferencia entre nodos y clientes

Los nodos y los clientes trabajan en ONE y ambos términos suelen usarse indistintamente. Sin embargo, ambos operan por separado para acceder a la red Ethereum .

Piense en los nodos y clientes que operan como una computadora que accede a internet: el nodo es un sistema operativo, como Windows o iOS, y el cliente es la propia computadora. La computadora cliente permite al usuario acceder al sistema operativo del nodo, lo que a su vez le permite acceder a internet. Diferentes computadoras podrán darle acceso al mismo sistema operativo, y los diferentes sistemas operativos le darán acceso a la misma internet.

MetaMask

Para ver cómo funcionan los clientes de Ethereum en el mundo real, podemos usar MetaMask como ejemplo. MetaMask es una billetera basada en navegador, un cliente de Llamada a Procedimiento Remoto (RPC) y un explorador de contratos básico. Cualquier computadora con Chrome, Firefox, Opera o Brave puede ejecutar MetaMask.

MetaMask es una implementación de un cliente remoto que interactúa con la blockchain a través de un cliente ligero. Para evitar problemas de seguridad, MetaMask utiliza su propio cliente ligero para comunicarse con el cliente remoto y garantizar la seguridad y certeza de las transacciones.

MetaMask se distingue de otras billeteras basadas en navegador porque aplica una instancia web3 al lector de JavaScript del navegador, lo que proporciona acceso a la red principal de Ethereum y a otras redes de prueba, como Ropsten, Kovan y la instancia local de un nodo RPC. A pesar de su funcionalidad única, MetaMask ejecuta un cliente remoto, como la mayoría de las billeteras de navegador. Este cliente remoto permite el almacenamiento de la billetera, la difusión de transacciones y la inyección de JavaScript web3.

Griffin Mcshane

Griffin McShane es neoyorquino y actualmente reside en Brooklyn, Nueva York. Se graduó del Providence College, donde estudió informática y administración de empresas, y de la Facultad de Derecho de la Universidad de Maine, donde obtuvo su doctorado en Derecho. Además de escribir para CoinDesk, Griffin ha escrito el boletín Inside Cripto para Inside.com de Jason Calacanis y es miembro de la Asociación Internacional de Profesionales de la Privacidad (IAPP). No posee una cantidad significativa de Criptomonedas.

Griffin Mcshane