Usando la wallet MetaMask y la red local Ganache

0
1106

Índice

  1. Introducción
  2. Instalando la wallet MetaMask
  3. Configurando las redes en la wallet MetaMask
  4. Consiguiendo ETH
  5. Instalación de red de criptomonedas en local con Ganache
  6. Conclusión

Introducción

Este es el cuarto tutorial relacionado con blockchain y contratos inteligentes. Puedes consultar la pila aquí:

Cómo comprar e invertir criptomonedas en Binance: https://www.adictosaltrabajo.com/2022/01/14/como-comprar-e-invertir-criptomonedas-en-binance/

Entendiendo las criptomonedas: https://www.adictosaltrabajo.com/2022/01/24/entendiendo-las-criptomonedas/

Votación con contratos inteligentes en Remix: https://www.adictosaltrabajo.com/2022/01/31/votacion-con-contratos-inteligentes-en-remix/

Compilación y despliegue de contratos inteligentes con Truffle y Ganache: https://www.adictosaltrabajo.com/2022/02/16/compilacion-y-despliegue-de-contratos-inteligentes-con-truffle-y-ganache/

Creando tokens Ethereum: https://www.adictosaltrabajo.com/2022/03/14/creando-tokens-ethereum/

He de insistir en que sólo voy compartiendo lo que voy aprendiendo, no es la visión de un mega-experto.

Cuando compramos criptomonedas podemos elegir que nos las gestione una empresa externa (como Binance) o tener un monedero electrónico particular, o incluso desconectado de la red.

Se habla de monederos calientes (conectados a internet) o fríos (por ejemplo un pendrive específico metido en un cajón). Os dejo este artículo por si queréis saber más: https://news.cision.com/global/cryptogetround/r/monederos-bitcoin—los-mejores-monederos-frios-para-criptomonedas,c3442464.

Los monederos calientes son más cómodos pero menos seguros (expuestos a cualquier ataque de cualquier parte del mundo). Si tienes poco dinero probablemente nadie haga grandes esfuerzos para robarte. Esto puede cambiar si tuvieras una millonada en criptomonedas o fueras una empresa que almacena los tokens o criptomonedas de mucha gente.

Como vamos a hacer pruebas simplemente, con una red de pruebas y otra en local, no tenemos que preocuparnos mucho, vamos a usar MetaMask como monedero caliente https://metamask.io/ que incluso funciona como un plugin del navegador Chrome. 

De todos modos recordad que esto es como conducir, si adquieres malos hábitos desde el principio luego es difícil dejarlos. Es mas, si instalamos mucha guarrería en nuestro ordenador cuando estamos en investigación, hemos podido crear puertas traseras en nuestro ordenador sin darnos cuenta.

Algunas recomendaciones para evitar problemas pueden ser: no mezcles tus usuarios en el ordenador de trabajo y de cacharreo (instalando todo lo que te apetece), no trabajes con el usuario administrador de tu máquina (crea otro con menos privilegios), nunca tengas en el mismo monedero de criptomonedas cuentas de prueba y reales (una vez mandada una transacción no se puede revertir y podrías equivocarte con facilidad), no publiques nunca tu clave privada ni se la mandes a nadie (nadie que te quiera ayudar te la va pedir nunca, como soporte), ante la duda sobre la exposición de tu clave privada crea otra y transfiere los activos y detalles similares. 

Instalando la wallet MetaMask

Vamos a MetaMask: https://metamask.io (podéis ver que sirve para más cosas, como gateway para aplicaciones distribuidas, que ya probaremos).

Captura de pantalla de la Web de MetaMask.

Y elegimos instalarla en Chrome.

Captura de pantalla de la opción de instalar el plugin de Chrome.

Le damos a añadir extensión de Chrome de MetaMask.

Captura de pantalla de la confirmación de instalar el plugin.

Y ya estamos instalados.

Captura de pantalla de la confirmación de la instalación.

Inicialmente una cuenta tendrá una contraseña. ¿Qué pasa si la pierdes? De algún modo tendrán que estar seguros de que eres tú para restaurarla (normalmente los sistemas de seguridad se basan en algo que sabes y algo que tienes). Se pude hacer de muchos modos: mandándote un correo (podrían hackear tu correo), un SMS a tu móvil (podrían duplicar tu SIM) o cualquier otro sistema alternativo (criptocalculadora, generador de números que tienes que activar en un móvil concreto, etc.). Uno de esos medios es generando una clave de palabras muy larga, que tendrías que tener almacenada en un sitio seguro (el método que usaremos), y te pedirían para restaurar. 

Elegimos la opción de establecer la configuración, elegir las palabras y verificarlas (esto no lo voy a mostrar).

Captura de pantalla de las opciones de recuperar una cuenta existente o crear una nueva.

Configurando las redes en la wallet MetaMask

Una vez creada la cuenta nos pregunta a qué red nos queremos conectar: por defecto viene configurada la principal de Ethereum. Nosotros vamos a activar ver las redes de prueba (Show/hide test Networks).

Captura de pantalla de la selección de redes de test o sólo la principal de Ethereum.

Activamos las redes de prueba.

Captura de pantalla de la activación de las redes de prueba.

Y ya nos aparecen otras redes como Ropsten, Kovan o una red local.

Captura de pantalla viendo las redes de prueba y las locales activas.

Por defecto vamos a trabajar con la red de prueba Ropsten. Podéis investigar un poco sobre la red gracias a https://ropsten.etherscan.io.

Captura de pantalla de https://ropsten.etherscan.io.

También vamos a definir dentro de MetaMask otros parámetros como la moneda que queremos que nos muestre como contravalor.

Captura de pantalla de las opciones de configuración estableciendo la moneda a Euro.

Y ya tenemos nuestra cuenta creada y nuestra dirección (clave pública) por si se la queremos mandar a alguien para que nos transfiera Ethereum. Fijaos también que viene la opción de exportar la clave privada: si compartes esta clave alguien puede transferir todas tus monedas a quien quiera, así que tenéis que evitarlo a toda costa y sólo pulsar si queréis exportar las criptomonedas a otros monederos.

Captura de pantalla con la dirección de la cuenta creada.

Consiguiendo ETH

Vemos nuestro saldo 0 en ETH.

Captura de pantalla con el saldo 0 en Ethereum.

Si no tenemos monedas no vamos a poder hacer nada. Podemos conseguir moneda gracias a las donaciones de los llamados Faucets.

https://www.criptonoticias.com/criptopedia/que-son-faucets-bitcoin-criptomonedas/

Captura de pantalla explicando que son los faucets.

Para la red Ropsten tenemos varios faucets que nos pueden enviar una pequeña cantidad de monedas.

https://medium.com/@raulitiu/qu%C3%A9-es-ropsten-eth-y-c%C3%B3mo-puedo-obtenerlo-76d458fcef8c.

Captura de pantalla de las opciones gratuitas de obtener Ether gratuitamente la red Ropsten.

Vamos a utilizar el primero que es el MetaMak Ether Faucet:

Captura de pantalla de Metamask Ether Faucet donde solicitamos el envío de monedas.

Recogemos de nuestra cuenta la dirección (clave pública).

Captura de pantalla de nuestra dirección.

Esta es la dirección en la que solicitamos las monedas. 0x471502D73e7ADA40cD14b678540f2Bd7fEe81941

Nos salta nuestro plugin de MetaMask.

Captura de pantalla de la conexión entre el faucet de MetaMask y nuestro monedero MetaMask.

Ya sólo nos queda confirmar.

Confirmación de la solicitud del faucet con MetaMask.

Si os fijáis, la gente mantiene redes paralelas a Ethereum, con el coste que esto conlleva, con el objetivo de poder disponer de entornos de pruebas. Si luego no utilizas tu Ether obtenido de faucets lo suyo es que se lo devuelvas para que se lo presten a otros. Normalmente también te dan una dirección de la red Ethereum principal (real) por si les quieres donar “dinero” real para ayudarles a sufragar los gastos en los que incurren con el mantenimiento de los nodos de la red. No parece tampoco mala idea crear tu propio nodo para minar en la red de pruebas, como práctica, de uno minando en real.

Conectamos con otros faucets https://faucet.ropsten.be/ usando la misma dirección (clave pública). Normalmente estos servidores te van a bannear (bloquear peticiones desde la misma IP) y no te van a dejar hacer nuevas solicitudes hasta que pase un tiempo.

Captura de pantalla de https://faucet.ropsten.be/.

Ahora probamos https://faucet.dimensions.network/.

Captura de pantalla de https://faucet.dimensions.network/.

Y también vamos a probar http://faucet.bitfwd.xyz/.

Hay algunas páginas que te piden resolver 2 o 3 Captchas manualmente. La pregunta es interesante ¿para qué se usan los captcha que tú resuelves a cambio de esa donación?

Captura de pantalla de https://faucet.bitfwd.xyz/.

También probamos https://faucet.egorfine.com/.

Tengo que decir que el proceso de obtener monedas ha sido un poco decepcionante, en el sentido que solo me ha funcionado este último faucet, donde he conseguido 0.3 rETH.

Captura de pantalla de https://faucet.egorfine.com/.

Con este último intento ya nos han llegado de modo casi inmediato las monedas.

Captura de pantalla con un ETH de 0.3 conseguido en un Faucet.

Vamos a crear alguna cuenta más para poder ejecutar contratos y transferencias entre cuentas.

Captura de pantalla de la opción de creación de nuevas cuentas.

Creamos la cuenta Votante 1.

Captura de pantalla del Votante 1 con 0 ETH.

Vamos a reintentar conseguir Ether otra vez pero ya nos dice que no es posible hasta pasado un tiempo.

Captura de pantalla de Ropsten testnet faucet diciéndonos que tenemos que esperar.

Ya teniendo una cuenta con ETH podemos enviar monedas a nuestras otras cuentas auxiliares.

Captura de pantalla de la transferencia de ETH de una cuanta a otra, destacando el botón max con la máxima cantidad disponible.

Confirmamos la operación.

Captura de pantalla de la confirmación de la operación y las comisiones involucradas.

Repetimos la operación con el Votante 2.

Captura de pantalla de la confirmación de transferencia al votante 2.

Y también transferimos al votante 3.

Captura de pantalla de la confirmación de transferencia al votante 3.

Podemos ver el resumen del saldo en la pantalla de cuentas y con esto ya hemos terminado la primera fase de la configuración.

Captura de las cuentas existentes y muestra de los saldos.

Instalación de red de criptomonedas en local con Ganache

Ahora que ya tenemos instalado un monedero MetaMask como plugin de Chrome, creado nuestras cuentas, conectado a una red de pruebas externa, conseguido monedas “reales” para una red de pruebas y compartido el dinero, vamos a aprender como instalar Ganache para tener una red propia en local con Ganache. 

Vamos a la configuración de redes de MetaMask.

Captura de pantalla de las redes disponibles en MetaMask, incluida localhost.

Vamos a la página Web de la suite de Truffle: https://trufflesuite.com/ganache/.

Pulsamos el botón de descarga (download) de Ganache.

Captura de pantalla de la suite de Truffle.

Al descargar y abrir el fichero en local sólo necesitamos arrastrar el icono a la carpeta de aplicaciones. 

Captura de pantalla de la instalación de Ganache.

Arrancamos Ganache en local y utilizamos la opción de Quickstart (arranque rápido) de Ethereum.

Captura de pantalla de las opciones de arranque de Ganache.

Podemos ver que arranca con unas cuentas iniciales y los parámetros de arranque. El servidor arranca en la dirección y puerto http://127.0.0.0:7545.

Captura de pantalla de las cuentas creadas y de los detalles del servidor, que se encuentra de 127.0.0.0:7545.

Podemos ver, pulsando la llave al lado de cada cuenta, las claves públicas y privadas. Te recuerda en rojo que no uses estas cuentas en sistemas reales.

Captura de pantalla de una de las cuentas creadas con la dirección y la clave privada.

Ahora configuramos el servidor local en MetaMask para que ataque a localhost y al puerto 7545.

Captura de pantalla de la configuración de MetaMask.

Vamos a la opción de importar una cuenta para traernos las cuentas de Ganache.

Captura de pantalla del menú de importación de cuentas.

Elegimos la opción de importar cuentas a partir de la clave privada.

Captura de pantalla de la importación de cuenta de MetaMask desde la clave privada.

Una vez importada la cuenta vemos el detalle y la clave pública. 

Captura de pantalla de la importación de una cuenta desde Ganache.

Podemos observar el saldo de nuestra cuenta de Ganache importada.

Captura de pantalla con el saldo de ETH de la cuenta importada de Ganache.

Y el resumen de todas las cuentas disponibles. Podemos repetir el proceso para incorporar el resto de las cuentas de Ganache.

Captura de pantalla del resumen de las cuentas conectadas a la red local de Ganache.

Vamos a enviar saldo de las cuentas importadas a las creadas anteriormente.

Captura de pantalla de la transferencia de la cuenta importada de Ganache a nuestra cuenta de MetaMask.

Podemos ver el ETH en la cuenta local.

Captura de pantalla de MetaMask con los 12 ETH transferidos a nuestra cuenta nativa.

Y comprobar en la red que el balance es correcto y que todo está bien conectado.

Captura de pantalla con la comprobación de que el saldo en la red local de Ganache se ha reducido en la transferencia.

Conclusión

Con este tutorial ya tenemos un monedero instalado en nuestra máquina, Ganache con red local de criptomonedas y un conjunto de cuentas con saldo suficiente para hacer experimentos de contratos inteligentes (que requiere gas).

En los próximos tutoriales veremos cómo conectar nuestras herramientas de desarrollo, nuestro compilador de contratos inteligentes (Truffle) y nuestra red local (Ganache).

Dejar respuesta

Please enter your comment!
Please enter your name here