Firmes en nuestro camino, repasando el flujo de una transacción de Ethereum. Siguen pasando los artículos, seguimos avanzando. Raw transactions, wallets, firmas, hashes, nodos, strings, endpoints, node providers. Tipos de nodos, consenso.

Ya sabemos lo siguiente:

  • la dapp arma la transacción
  • se la manda a la wallet que la firma
  • la wallet la envía a un endpoint (una URL de un nodo a través del cual habla con la blockchain)
  • la mayoría de las dapps o wallets terecerizan el mantenimiento de los nodos en node providers.

Pero es hora de profundizar un poco más en tema nodos. Siguiendo la tradición tan occidental de reagrupar en mundo en categorías, allá Kant, vamos a empezar por definir los tipos de nodos.

Tipos de nodos

Todos sabemos la magia detrás del número 3, usado durante siglos en los ritos y ceremonias más relevante de la alcurnia humana. Desde la Santísima Trinidad, a los 3 Mosqueteros de Dumas, a la triada capitolina, Jupiter, Marte y Juno los 3 grandes dioses romanos.

Bueno, hay 3 tipos de nodos en Ethereum:

  • light nodes
  • full nodes
  • archive nodes.

“Ok, todo muy bien con las referencias falopa a elementos de la historia de nuestro mundo. Ahora contanos que son estos 3 tipos de nodos flaco”

Bueno, vamos por partes:

Light Node: es un nodo que solo descarga el block header, la mínima información necesaria para participar de la red. Esto les permite verificar transacciones, pero como no tienen la historia completa de la blockchain no participan del consenso de la red.

En muchos casos los light nodes necesitan acceder a información que no tienen disponible; lo que hacen es conectarse a otros full nodes para pedirle “la datita”. Imaginatelo como tu compañero de facu que va a la cursada la cantidad justa de clases como para no quedarse libre, y después le pregunta a los compañeros cuales son los temas que entran en el examen.

Full Node: siguiendo con la metáfora anterior, el full node es ese compañero o compañera que tiene todo al día. Se descargan la información completa de la blockchain y participan en la validación de bloques.

Recordemos que la blockchain es una “state machine” o “máquina de estado”. Es decir que maneja distintos estados. Estado 0, estado 1, estado 2, etc. Los full nodes tienen la información necesaria para reconstruir todos los estados de la red.

Tomaron nota de todas las clases, a diferencia del light node que solo tiene un resumen de cada una.

Gracias a Alchemy por la foto.

Pero dijimos que eran 3 tipos, nos quedan los…

Archive Node: sí, el full node se descarga toda la info de la blockchain. Pero seamos sinceros. A nadie le importa mucho lo que pasó hace 5 años. Por lo que cada tanto los estados viejos se “archivan”. Esto quiere decir que los full nodes no tienen que seguir guardándolos. Me imagino que ya te diste cuenta a donde termina todo esto. Los archive nodes de Ethereum son los que guardan la información vieja.

La relación entre Full nodes y Archive nodes es similar a la de los Light nodes con los Full nodes. El Full node le pide datita al Archive node cuando la necesita. Siguiendo con ejemplos universitarios, el Full node no solo tiene toda la data de la clase, sino que lleva en la mochila todos los cuadernos de todos los años de cursada. Es un loco medio bizarro que camina por los pasillos de la universidad con una valija llena de cuadernos de los primeros años.

Espero que te sientas identificado con alguno de los tipos de nodos. Espero también que hayan quedado claras las diferencias.

Vamos a hacer una síntesis de lo que sabemos acerca de los nodos:

  • un nodo es una computadora que corre software necesario para participar de la red de Ethereum.
  • ese software, concretamente, son 2 programas, llamados clientes. Hay un cliente de ejecución y otro de consenso.
  • los clientes a su vez se conectan entre sí a través de APIs.
  • los nodos son los responsables de propagar las transacciones a la red.
  • reciben la transacción firmada, verifican que esté ok y luego comparten la transacción con otros nodos.
  • hay 3 tipos, algunos guardan toda la info, otros solo los headers, otros además tienen el archivo histórico.
  • los node providers son empresas con múltiples nodos repartidos por el mundo que le ofrecen su infraestructura a dapps o wallets que no quieren o no pueden levantar sus propios nodos.

Ahora, ¿dónde están los bloques?

Validators, bloques y otra vez, otra vez el bendito 3

Ya dijimos que es un número mágico. Sí. Y lo viene diciendo todo el mundo hace años. No hay con que darle, siempre es el 3. Te hago una pregunta. ¿Quién hizo el mejor gol de tiro libre que viste en tu vida? No me digas Riquelme, ni Messi. Sé honesto. Lo hizo el 3. Lo hizo Roberto Carlos. Te dejo el video por si seguís bajo la ilusión de que vale la pena engañarse a uno mismo:

Cuestión, para crear bloques no alcanza con tener un nodo, ni siquiera un full node. No alcanza con descargarte el execution client y el consensus client. Sí, los nodos verifican las transacciones antes de compartirlas a la red. Sí, tienen la data para validar si hay un hacker haciendo una chanchada. Pero no participan de la creación de bloques. Para crear un bloque hay que tener un “Validator”. Y un “validador” es….. otro software. Je, no me creías. Pero son 3. Lo bueno es que se activa directamente dentro del consensus client. Algo así como un: “che, ya tenés tu nodo configurado, por la módica suma de 32 ETH podés además activar la parte de validador, generar ingresos pasivos y ser tu propio jefe”.

Vamos a ver el temita validators y consenso en detalle en el próximo artículo. Mientras tanto, lo importante es que haya quedado claro esto último: un validador de Ethereum es una computadora que está corriendo un full node y además está corriendo el Validator. El Validator se activa desde el consensus client, y para hacerlo hay que depositar 32 ETH, los famosos 32 ETH en staking, exacto. Esto te permite participar de todo el proceso de consenso, crear, firmar y enviar attestations. Ups, perdón, una palabra difícil justo antes de cerrar. Espero me sepas perdonar, es para dejarte con ganas de seguir leyendo el artículo que viene.