Lima, Perú
+5113014109

Nodos y clientes de Ethereum: una guía completa

Nodos y clientes de Ethereum: una guía completa



En el mundo de la informática, un «cliente» se refiere a cualquier tipo de software que se descarga en su computadora y le ayuda a 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 permitir que los nodos de Ethereum lean bloques en la cadena de bloques de Ethereum y los contratos inteligentes basados ​​en Ethereum. Un «nodo» es la pieza en ejecución del software cliente. Para ejecutar un nodo, primero debe descargar una aplicación cliente Ethereum.

¿Qué son los nodos de Ethereum?

Un «nodo» es una computadora que realiza una determinada función en la red Ethereum y ejecuta software de cliente para hacerlo. Dependiendo de cuáles sean sus necesidades específicas, ya sea un aplicación descentralizada (dapp) o una billetera, hay tres tipos diferentes de nodos que cualquier cliente puede ejecutar: nodos completos, nodos ligeros y nodos de archivo. Cada nodo interpretará los datos de manera diferente y ofrecerá diferentes 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 llenos de datos; almacenan y pueden distribuir todos los datos de blockchain de la red Ethereum. Un nodo completo participará adicionalmente en la validación de bloques (es decir, verificará 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 cadena de bloques pública. Los nodos completos también pueden implementar contratos inteligentes directamente en la cadena de bloques pública.

Sin embargo, el uso completo y el almacenamiento de datos, así como la funcionalidad de contrato inteligente directo, tienen un costo. Los nodos completos pueden afectar el hardware y los recursos de ancho de banda de su computadora. La recuperación de datos completos también puede llevar mucho tiempo, a veces puede llevar varios días sincronizar sus datos cuando el nodo se implementa por primera vez. Luego, el nodo debe mantenerse, actualizarse y mantenerse en línea para no tener que repetir el proceso de sincronización completo.

  • Los nodos ligeros son similares al nodo completo 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 una marca de tiempo y el hash del bloque anterior), pero solo recibirá información adicional cuando se solicite. Pueden verificar la validez de los datos, pero no participan plenamente en la validación de bloques. Los nodos ligeros casi siempre se implementan en clientes remotos. Debido a que estos nodos no asumen procesos de escritura y almacenamiento de datos más intensivos, han demostrado ser útiles para dispositivos de baja capacidad como los teléfonos inteligentes.
  • Los nodos de archivo son nodos que almacenan toda la información que hace un nodo completo y crean un archivo de estados históricos de blockchain. Los nodos de archivo conservarán los datos históricos incluso después de que un cliente haya finalizado la sincronización. Los nodos completos y ligeros, por otro lado, «podarán» los datos históricos de la cadena de bloques, lo que significa que pueden reconstruirse, pero no retienen 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 de Ethereum?

Los clientes pueden ser útiles para los desarrolladores porque les permiten interactuar con la red y otros nodos de la red utilizando varios lenguajes de programación. La Fundación Ethereum mantiene varios clientes diferentes para diferentes lenguajes de programación, incluidos Go, Rust, Java y C #. Varios desarrolladores de terceros también han creado clientes Ethereum para obtener más soporte de idiomas.

Los usos más comunes para los clientes de Ethereum incluyen interfaces de transacción 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 brindan a los desarrolladores opciones para implementar sus proyectos basados ​​en Ethereum. Si su idioma preferido no es admitido oficialmente por la Fundación Ethereum, existen numerosos clientes de Ethereum de terceros para brindar soporte de idioma adicional.

La razón por la que todos estos clientes diferentes son posibles es porque Ethereum está definido por una especificación formal (es decir, el «Papel amarillo”). Las especificaciones formales que componen Ethereum distinguen a la cadena de bloques de Bitcoin. Donde Ethereum define comportamientos estándar que deben seguir todos los clientes de Ethereum, Bitcoin Core no tiene tales definiciones. Al proporcionar documentación coherente y un lenguaje claro, las especificaciones de Ethereum permitieron que la cadena de bloques permitiera implementaciones de software independientes, pero interoperables, de un cliente Ethereum.

Tipos de cliente Ethereum

Cliente completo

Los clientes completos almacenan toda la cadena de bloques Ethereum; un proceso que puede tardar varios días en sincronizarse y requiere una gran cantidad de espacio en disco, más de 1 Terabyte para ser exactos, según el últimas cifras. Los clientes completos permiten que los nodos conectados realicen todas las tareas en la red, incluida la minería, la transacción y la validación de 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 ofrece una explicación de cómo funciona un cliente «completo»; sin embargo, es importante saber que no siempre es necesario ejecutar un cliente completo. Normalmente, cuando el almacenamiento de datos y la velocidad están en juego, los desarrolladores optarán por utilizar lo que se denominan «clientes ligeros».

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

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

Cliente remoto

Existe un tercer tipo de cliente llamado cliente remoto que es similar a un cliente ligero. La principal diferencia es que un cliente remoto no almacena su propia copia de la cadena de bloques, ni valida las transacciones ni bloquea los encabezados. En cambio, los clientes remotos confían completamente en un cliente completo o ligero para proporcionarles acceso a la red de cadena de bloques de Ethereum. Este tipo de clientes se utilizan principalmente como billetera para enviar y recibir transacciones.

La diferencia entre nodos y clientes

Los nodos y los clientes funcionan juntos y, a menudo, ambos términos se usan indistintamente. Sin embargo, ambos operan por separado para acceder a la red Ethereum.

Piense en los nodos y los 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 le brinda al usuario la capacidad de acceder al sistema operativo del nodo, que a su vez, le brinda la capacidad de 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 ver 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 Browser puede ejecutar MetaMask.

MetaMask es una implementación de un cliente remoto que interactúa con la cadena de bloques a través de un cliente ligero. Para evitar cualquier problema de seguridad, MetaMask opera su propio cliente ligero para comunicarse con el cliente remoto a fin de garantizar una seguridad efectiva y certeza de las transacciones.

MetaMask es único de otras carteras basadas en navegador porque aplica una instancia web3 en el lector de JavaScript de un navegador, lo que brinda acceso a la red principal de Ethereum y a otras redes de prueba, incluida la red de prueba de Ropsten, la red de prueba de Kovan y la instancia local de un nodo RPC. Incluso con su funcionalidad única, MetaMask aún ejecuta un cliente remoto como lo hacen la mayoría de las otras carteras de navegador. El cliente remoto permite la funcionalidad de almacenamiento de billetera, la transmisión de transacciones e inyecciones de JavaScript web3.



Enlace fuente

Post Relacionados
× ¿Cómo puedo ayudarte? Available from 09:00 to 18:00