Índice
- Introducción
- Instalando la wallet MetaMask
- Configurando las redes en la wallet MetaMask
- Consiguiendo ETH
- Instalación de red de criptomonedas en local con Ganache
- 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://adictosaltrabajo.com/2022/01/14/como-comprar-e-invertir-criptomonedas-en-binance/
Entendiendo las criptomonedas: https://adictosaltrabajo.com/2022/01/24/entendiendo-las-criptomonedas/
Votación con contratos inteligentes en Remix: https://adictosaltrabajo.com/2022/01/31/votacion-con-contratos-inteligentes-en-remix/
Compilación y despliegue de contratos inteligentes con Truffle y Ganache: https://adictosaltrabajo.com/2022/02/16/compilacion-y-despliegue-de-contratos-inteligentes-con-truffle-y-ganache/
Creando tokens Ethereum: https://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).
Y elegimos instalarla en Chrome.
Le damos a añadir extensión de Chrome de MetaMask.
Y ya estamos instalados.
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).
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).
Activamos las redes de prueba.
Y ya nos aparecen otras redes como Ropsten, Kovan o una red local.
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.
También vamos a definir dentro de MetaMask otros parámetros como la moneda que queremos que nos muestre como contravalor.
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.
Consiguiendo ETH
Vemos nuestro saldo 0 en ETH.
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/
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.
Vamos a utilizar el primero que es el MetaMak Ether Faucet:
Recogemos de nuestra cuenta la dirección (clave pública).
Esta es la dirección en la que solicitamos las monedas. 0x471502D73e7ADA40cD14b678540f2Bd7fEe81941
Nos salta nuestro plugin de MetaMask.
Ya sólo nos queda confirmar.
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.
Ahora probamos 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?
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.
Con este último intento ya nos han llegado de modo casi inmediato las monedas.
Vamos a crear alguna cuenta más para poder ejecutar contratos y transferencias entre cuentas.
Creamos la cuenta Votante 1.
Vamos a reintentar conseguir Ether otra vez pero ya nos dice que no es posible hasta pasado un tiempo.
Ya teniendo una cuenta con ETH podemos enviar monedas a nuestras otras cuentas auxiliares.
Confirmamos la operación.
Repetimos la operación con el Votante 2.
Y también transferimos 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.
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.
Vamos a la página Web de la suite de Truffle: https://trufflesuite.com/ganache/.
Pulsamos el botón de descarga (download) de Ganache.
Al descargar y abrir el fichero en local sólo necesitamos arrastrar el icono a la carpeta de aplicaciones.
Arrancamos Ganache en local y utilizamos la opción de Quickstart (arranque rápido) de Ethereum.
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.
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.
Ahora configuramos el servidor local en MetaMask para que ataque a localhost y al puerto 7545.
Vamos a la opción de importar una cuenta para traernos las cuentas de Ganache.
Elegimos la opción de importar cuentas a partir de la clave privada.
Una vez importada la cuenta vemos el detalle y la clave pública.
Podemos observar el saldo de nuestra cuenta de Ganache importada.
Y el resumen de todas las cuentas disponibles. Podemos repetir el proceso para incorporar el resto de las cuentas de Ganache.
Vamos a enviar saldo de las cuentas importadas a las creadas anteriormente.
Podemos ver el ETH en la cuenta local.
Y comprobar en la red que el balance es correcto y que todo está bien conectado.
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).