Les comparto una manera práctica de crear un ambiente para Desarrollo de Smart Contracts con Ethereum Blockchain sobre contenedores Docker.

Para crear un entorno de testing de Ethereum blockchain tenemos las siguientes opciones

  1. Usar Truffle y Ganache  son Frameworks que simulan el comportamiento de un cliente ethereum y hacer deployment de las aplicaciones de forma fácil. Mejor opción para Quick Start.
  2. Usar Ethereum Testnet.
  3. Instalar tu propia copia de Ethereum. Más cercano al mundo real.

Decidí echarme la soga al cuello con la última opción y para no malgastar tiempo configurando todo el entorno, usaré Docker que básicamente nos va a permitir instalar varios nodos localmente y agregar otros servicios que vamos a necesitar.

No voy a profundizar en la configuración de Docker, pero lo agregaré a mi lista de post que escribiré pronto y verás un link aquí para poder configurar docker + vagrant en Virtual Box, lo cual ahorra recursos de sistema para la virtualización.

Afortunadamente existe una solución Docker-compose basado en Solución Ethereum que nos provee multinodos de Ethereum, usuarios predefinidos con ETH y un dashboard proporcionado por Netstat para monitorear los nodos.

Docker compose es una herramienta que sirve para hacernos aún más simple el uso de docker. Nos permite crear “templates” para crear varios contenedores al mismo tiempo, conectarlos, asignarles volúmentes, entro otras cosas. Se bása en el archivo docker-compose que contiene los comandos que crearán el ambiente.

Clonamos el repositorio de github

En nuestro caso nuestro archivo docker-compose.yml contiene algo como lo siguiente

En el archivo docker-compose.yml se puede observar que se crea un contenedor Bootstrap que se usa para el RPC (Remote Procedure Call), eth serán los nodos que participarán en la verificación de transacciones y ambos estarán conectados al contenedor netstats.

Para correr un Cluster Ethereum sobre Docker ejecutamos el siguiente comando

Puedes aumentar el numero de nodos con EVM (Ethereum Virtual Machine) que quieras con el siguiente comando de docker-compose

Luego de la ejecución correcta de los contenedores podremos ingresar al servicio de Netstat  ingresando a http://localhost:3000 y podrás ver algo así

Antes de hacer el deployment de nuestra dApp debemos conectarnos a la consola de geth donde tendremos acceso completo al JavaScript Run Environment

Y es ahí es podemos ejecutar comandos contra el nodo tal como comenzar o detener la minearía

También les dejo los contenedores que están corriendo, pero puede variar depende de la configuración de su docker.

Recordemos que el ambiente creado es una red privada virtual de ethereum sobre contenedores docker y al fin y al cabo nos servirá para el tener un entorno de desarrollo de estructuras de datos blockchain para crear Smart Contracts o criptomonedas.

Realmente me gustaría que escribieran sus dudas, comentarios ó puntos de vista.

Esta historia continuará …

 

Engineer, Mom, SysAdmin, Linux/Unix, Backup & Storage, Astronomy, Dev Girl.