Aprende a como instalar un nodo de Ethereum usando Geth y Docker
Para iniciar la instalación de Geth en Ethereum, lo primero que debemos hacer es dirigirnos a una consola de Windows o GNU/Linux para iniciar el proceso de instalación. Si estas en Windows, debes ir al Menú de Inicio y escribir “cmd”, allí te aparecerá la siguiente imagen:
Una vez allí haz clic sobre la imagen de la cmd (icono negro) y podrás entrar a la misma:
Importante: Si usas “Windows Terminal” o cualquier otra consola en Windows servirá de igual manera, en nuestro caso, seguiremos los ejemplos usando Windows Terminal. |
En caso de que uses GNU/Linux, bastará con que ejecutes la consola de tu entorno de escritorio para poder realizar los pasos que describiremos a continuación.
Instalando Geth con Docker
En la consola o terminal deberás colocar este comando:
docker pull ethereum/client-go:stable
Este comando lo que hará es iniciar el proceso de instalación de Geth sobre la instalación Docker que tengas en ese momento. Todo ello siguiendo el proceso descrito de forma oficial por los desarrolladores de Geth.
Importante: Nunca instales software de fuentes no oficiales, ni ejecutes comandos que no sepas que hacen porque esto puede llevarte a robo de tus criptomonedas o a la infección de tu computador. |
Al ejecutar el comando anterior veremos lo siguiente en nuestra consola:
Espera a que el proceso termine antes de empezar con el siguiente paso.
Una vez terminada la instalación, iremos al Dashboard de Docker, y veremos lo siguiente:
Tal como podemos ver tenemos nuestra instalación de Geth sobre Docker instalada. Ahora para iniciar nuestro nodo debemos colocarnos sobre el mismo y hacer clic en la opción “RUN” que aparece del lado derecho de la pantalla.
Al hacer clic te aparecerá la siguiente pantalla:
En la sección “Containers” del Dashboard de Docker, podrás ver lo siguiente:
Allí se muestra nuestro nodo Geth en ejecución. Si hacemos clic sobre el mismo podrás ver todo lo que sucede dentro del mismo.
Todo lo que ves en este punto es tu nodo personal Geth realizando el proceso de sincronización. Por defecto, la configuración de este nodo ejecuta una sincronización completa de la blockchain de Ethereum, lo que requiere de 5 TB de almacenamiento en este momento. Si tienes los recursos para mantener un nodo de estas características eres bienvenido a hacerlo y ayudar a la comunidad Ethereum en su descentralización. En tal caso, lo ideal es que ejecutes este nodo en un servidor de alta capacidad que esté activo en todo momento.
Sin embargo, debido a que esto es mucho espacio para la mayoría de las personas, lo ideal es ejecutar un nodo más liviano, y es lo que haremos a continuación. De esa forma podrás instalar un nodo completamente funcional, que te permitirá un mayor grado de privacidad y de control sobre tus operaciones.
Configurando el modo nodo liviano
Ahora bien, la configuración en modo liviano es un tanto distinta. En primer lugar, ve al Dashboard de Docker y elimina la instalación que tienes hecha de Geth. Esto solo eliminará la instalación en funcionamiento, y no los archivos necesarios (imágenes) de instalación que necesitaremos más adelante.
La eliminación puedes hacerla eligiendo en el Dashboard de Docker, la imagen en ejecución de Geth, y dando clic en el icono de “Papelera” que aparece sobre la misma, tal como se muestra en la imagen siguiente.
Eliminada, la imagen lo siguiente que debes hacer es crear una carpeta en tus documentos o escritorio llamada “Geth-Docker” o con el nombre que desees. En dicha carpeta guardarás un documento llamado “docker-compose.yml”. En dicho documento guarda la información que aparece en este enlace. También puedes descargar el archivo desde el enlace y guardarlo en la carpeta con lo que te ahorras algo de trabajo.
Los comandos dentro del archivo, para tu conocimiento, ejecutan la siguiente cadena de comandos:
- Inician un contenedor con el nombre app-ethereum. Este podrás verlo en el Dashboard de Docker una vez termine la instalación del docker-compose.
- Instala la versión estable de Geth (ethereum/client-go:stable). De esa forma siempre tendremos la versión más actual estable de Geth.
- Abre los puertos 8545 para el sistema RPC, 30303 y 30303/udp para conectar otros wallets e interactuar con nuestro nodo.
- Crea puntos de almacenamiento de información para nuestro nodo usando nuestro disco duro. Así todo lo que pase en el nodo quedará grabado siempre.
- Inicia Geth en modo light (sección “command”).
De esta forma, sabes exactamente que ocurre en tu computador usando este Docker-Compose. Nuevamente te invito a que tengas cuidado cuando ejecutes este tipo de acciones desde fuentes desconocidas o poco confiables.
Importante: La configuración de Docker-Compose dada es una configuración de uso personal, no apta para entornos de producción y uso público masivo. Esté al corriente de que existen otras medidas de seguridad que debe tomar si su intención es prestar un servicio de nodo público para otros usos distintos al personal. |
Una vez que descargues y pegues el contenido del enlace en el archivo docker-compose.yml, guarda los cambios y ve a la consola o terminal. Desde allí, lo siguiente será navegar con la consola a donde está dicho archivo. Esto es fácil de hacer, abre el Explorador de Archivos y ve a la dirección donde está el archivo docker-compose.yml, una vez allí copia la dirección que aparece en la barra, tal como se muestra en esta imagen:
En este caso, la dirección es: “D:\DOCKER\GETH-ETHEREUM”, pero en tu caso particular podrá cambiar, solo asegurate de copiar la dirección y lo siguiente será ir al terminal y pegar este comando:
cd D:\DOCKER\GETH-ETHEREUM
Lo que hace esto es cambiar tu directorio de trabajo al lugar donde has guardado el archivo docker-compose.yml. Una vez allí ejecuta el comando
docker-compose up -d
Esto lo que hace es iniciar la instalación del docker-compose que hemos realizado, e iniciara nuestro nodo Geth en modo liviano tal como lo especificamos.
En este punto, si revisamos el Dashboard de Docker veremos a nuestro nodo Geth liviano funcionando sin problemas.
Probando nuestro nodo
Ahora bien ¿Cómo sabemos que realmente Geth está funcionando y todo esto no es solo una tomadura de pelo? Pues bien, una forma rápida y sencilla es configurar una wallet como MetaMask para que use nuestro nodo con el fin de enviar y recibir dinero de la red. Esto es bastante sencillo de hacer. Para lograrlo, abrimos nuestro navegador favorito y vamos a la web oficial de MetaMask.
Allí vamos a la sección de Descargas o Download, y descargamos el monedero para nuestro navegador.
Al instalar tendremos nuestra wallet lista para ser configurada.
.
Para ello solo debes seguir el proceso de configuración, una vez lo termines, tendrás lista tu MetaMask instalada en tu navegador y lista para ser usada. Es allí, donde comenzamos a configurar la misma para usar nuestro nodo local Geth.
En este punto, solo deberás elegir el medio de conexión a usar para tu MetaMask, esto es bastante sencillo, solo haz clic en el menú desplegable ubicada en la parte superior derecha, y elige “localhost:8545”.
Con esto ya tendremos conectado nuestra wallet MetaMask usando nuestro propio nodo Geth. Ahora bien, ¿Qué pasa si queremos ir y probar nuestra wallet en una app DeFi? Pues bien, si vamos a Compound, podemos examinar si funciona todo como debe.
Si entramos en la DApp, entonces podemos interactuar con la misma usando MetaMask, y está enviará toda la información de la red usando nuestro propio nodo, evitando que terceros manejen o enruten los mismos. En la siguiente imagen, podemos ver que efectivamente Compound DApp ha conectado con nuestra MetaMask, y que nuestra MetaMask está usando nuestro nodo local para hacer todo el trabajo…descentralización al máximo.
Y sin pérdida alguna de funcionalidad, ya que podemos enviar, recibir e interactuar con DApps sin problemas.