Como levantar una blockchain de pruebas y nuestro primer "Hola Ethereum!" [Smart-Contracts]

in #spanish6 years ago (edited)

Hola comunidad en español de Steemit!

En esta publicación haré un tutorial de como ustedes pueden subir sus propios smart-contracts a la red Ethereum.

Simplemente probaremos los procesos para mostar un "Hola Ethereum!" en la blockchain.

La idea de este tutorial es que cualquier persona que siga correctamente los pasos pueda subir un contrato a una blockchain, de modo que no es necesario saber programar.

Eth IMG

Entonces vamos con lo bueno:

Ethereum no es una criptomoneda, Ethereum es un ecosistema computacional, un computador mundial, lento pero seguro dentro de su propio código, de todas formas una tecnología increible.

Ether es la criptomoneda principal de la red Ethereum, con ella le pagamos a los computadores distribuidos en la red por el trabajo de procesar nuestro código, de modo que Ether es una moneda muy asociada a un valor real y medible que es la energía utilizada.

Cada calculo computacional realizado por la Maquina Virtual de Ethereum representa una unidad de Gas que tiene que ser pagada por un valor equivalente de Ether para procesar nuestras transferencias e instrucciones.

Entonces, nos encontramos con el problema de que para realizar pruebas en la blockchain con nuestro codigo necesitaremos una buena cantidad de Ether, no hay problema, existe una solucion de un Click para solucionar esto y se llama Ganache.

http://truffleframework.com/ganache/ Sitio Web Official de Ganache, Blockchain en un Click.
Ganache

Debemos descargarlo y abrirlo, nos pedirá un permiso especial para proceder el cual debemos aceptar ya que el programa necesita hacer ciertas configuraciones especiales en nuestro sistema.

Una vez realizado esto abrimos Ganache y PUM! Tenemos una Blockchain local montada en nuestro computador.

Todos unos Satoshi Nakamoto ¿No?

Bueno, ahora que tenemos la blockchain es necesario que usemos un cliente para interactuar, MyEtherWallet es otra solución que está disponible, de código abierto y gratis. MyEtherWallet es solo una interfaz, es decir puede funcionar perfectamente sin conexión a internet en nuestro navegador.

Por lo que tenemos que descargarnos el ciente de codigo abierto desde GitHub, como vamos a usar Ethers de prueba en nuestro servidor local "HTTP" es necesario usar el cliente local:

https://github.com/MyEtherWallet/mew-wallet

Una vez acá apretamos "Clone or Download"

Luego "Download Zip"

Descomprimimos el Archivo descargado

Y abrimos el archivo Index

Esta vez vamos a poner nuestra propia red local y esto es muy sencillo, debemos seguir la siguiente secuencia:

Ahora debemos introducir la IP y el puerto en el cual nuestra blockchain está alojada, por defecto será en Ganache,
IP: HTTP://127.0.0.1 , Puerto: 7545 , para el nombre podemos usar lo que queramos (:

Apretamos "Save and use Custom Node" y deberíamos obtener un mensaje como el siguiente:

Si todo salió bien, finalmente tendremos una conexión entre nuestra Blockchain local y la interfaz, de modo que finalmente podremos interactuar con ella, de forma que podremos realizar transferencias y crear contratos mediante MyEtherWallet.

Dejemos esta parafernalia de lado y vamos al código de nuestro hermoso "Hola Ethereum!"

Para hacer esto necesitaremos un Entorno de desarrollo que nos permita de forma facil traducir el lenguje de programación Solidity a bytecode que es lo que lee la red Ethereum. La solución mas recomendada es el compilador online Remix https://remix.ethereum.org

Como este tutorial solo trata de como hacemos un deploy en Ethereum usaremos este simple codigo para generar un "Hola Ethereum!"

pragma solidity ^0.4.0;
contract helloWorld {
    
    string test = "Hola Ethereum!";
    
    function imprimePrueba() constant returns(string)
    {
        return test;
    }

}

Copiamos y pegamos!

Si no está la casilla "Auto-compile" marcada apretamos "Start to compile"

Una vez realizado esto el compilador ya habrá creado el codigo de maquina para que lo mandemos a la red, solo debemos consultarlo, para hacer esto debemos apretar en "Details".

Luego debemos bajar e ir a la casilla de WEB3DEPLOY y copiar la variable "data"

Volvemos a MyEtherWallet y vamos a "Contracts"

Luego a "Deploy Contract"

Pegamos la variable data que hemos copiado desde WEB3DEPLOY en Remix, es importante que de " data:'0x60806040..' solo llevemos el contenido internet de esta es decir el hash 0x60806040...

Luego apretamos en "Sign Transaction"

Para firmar el contrato necesitamos una cuenta que page la cantidad de Ethers que necesita el contrato, para esto usaremos las que nos da Ganache, primero apretamos Private Key

Vamos a Ganache, apretamos en la llave de la dirección con la que queremos crear el contrato

Copiamos la Private Key

La pegamos en MEW y apretamos Unlock

Apretamos Deploy Contract y nos preguntara por una segunda confirmacion que debe ser aceptada también.

Si todo salió bien usted obtendrá un mensaje como este

Ahora para interactuar con el contrato y ver nuestro mensaje debemos interactuar con el contrato

Para ver esto debemos volver a Ganache, ir a "Transactions" en la barra superior de arriba e ir a la transacción que creo el contrato, esta se debería reconocer facilmente al notar que dice "Contract Creation", entonces copiamos el "Created Contract Address". Esto es al dirección de contrato por la cual todos los miembros e la red se tendrán que referir para consultar.

Volvemos a Contracts y esta vez nos quedamos en Interact with Contract, ponemos nuestra dirección de contrato donde dice "Contract Address"

Luego Volvemos a "Details" de Remix y copiamos por completo la sección "ABI".

Pegamos todo, y apretamos en Access.

Apretamos en select a function.

Apretamos nuestra funcion creada y finalmente podremos ver este grandioso mensaje!

Para hacer esto en una red real, con Ethers de verdad necesitamos simplemente usar la red oficial en MyEtherWallet y seguir los mismos pasos.

Si has llegado hasta acá con exito te felicito, ahora puedes seguir tu aventura aprendiendo de Solidity con su documentación oficial http://solidity.readthedocs.io o buscando tutoriales de como hacer contratos inteligentes.

Si quiere aprender más de Ethereum: http://www.ethdocs.org/en/latest/

Saludos!

Tienen todo el derecho para compartir, copiar y republicar esta información, hagamos crecer la comunidad de desarrolladores Ethereum!

Sort:  

cuddle_hug2.png

Congratulations @jorgearturo! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.20
TRX 0.14
JST 0.030
BTC 64294.06
ETH 3427.66
USDT 1.00
SBD 2.59