Los Smart-Contracts
son aplicaciones que se ejecutan en la máquina virtual Ethereum
. Que no es otra cosa que una computadora mundial
descentralizada en la que cada nodo de la Blockchain Ethereum
proporcionan su poder computacional para sostener la red (Blockchain).
Existen muchas maneras de poner tu Smart-Contracts
sobre alguna de las redes disponibles al público de Ethereum; puedes descargar ethereum Wallet para desarrolladores y subirla por ese medio, usar remix ethereum, también puedes utilizar un Framework llamado truffle u otras formas, como configurar una api Web3 (para desarrolladores con buen dominio en estas herramientas).
Francisco Rosales.
John Barrera.
node
:npm
:metamask
:truffle
:geth ethereum
:ganache-cli
:git
:
$ tree roulette
roulette/
├── .git : git
├── app : Carpeta, donde toda la lógica del proyecto,llamamos a los Smart
| contracts y diseñamos las vistas.
├── build : Archivo para ejecutar en producción.
├── contracts : Directorio de contratos de Solidity.
├── migrations : Directorio de archivos de implementación de secuencias de comandos.
├── test : Directorio de archivos de prueba para probar su aplicación y contratos.
├── node_modules : Componentes de node
├── truffle.js : Archivo de configuración de truffle.
└── webpack.config.js : Archivo de configuracion de instancias y plugins para nuestro proyecto.
└── README.md : Default README file.
- Necesitas descargar el SO Ubuntu que la puedes descargar aquí , usamos esta máquina para el tutorial, pero recuerda que puedes usar tu propia máquina y otro Sistema operativo, solo asegurate de instalar las herramienta necesarias.
- VMWare, puedes descargar desde los siguientes enlaces:
-
Instala el SO en VMWare, no olvides tu usuario y contraseña que el sistemas lo solicitara para las instalaciones.
-
Inicializa la terminal y actualiza las dependencias de ubuntu con los siguientes comandos:
sudo apt-get upgrade sudo apt-get update
-
Instala node versión 8 o superior.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs
-
Instala truffle
sudo npm install -g truffle
-
En tu navegador instalar MetaMask (para poder ejecutar los Smart Contracts)
-
Instalar un nodo de Ethereum en tu computador, para poder llamarlo localmente.
Existen 2 manera usando
ganache-cli
, para simular un nodo de ethereum, no tienes que descargar toda la blockchain existente porque creas una nueva en modo local, y usandoGeth
que te permite conectarte a cualquiera de las redes de ethereum (main, ropsten, rinkeby u otras que puedes crear).-
Forma 1:
En la máquina virtual usaremos
ganache-cli
, para ellos instalaremos el programa.sudo npm install -g ganache-cli
-
Forma 2:
En esta forma preferimos que descargue sobre tu máquina real (no la virtual), ya que descarga la blockchain de ethereum, en este ejemplo Ropsten.
sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum
Creación de una cuenta nuevas:
geth account new
Nota: Su nueva cuenta está bloqueada con una contraseña. Por lo que necesitas ingresar una contraseña.
password. Passphrase: Repeat Passphrase: Address: {168bc315a2ee09042d83d7c5811b533620531f67}
Iniciamos geth en la red Ropsten.
geth --testnet --syncmode "light" --rpc --rpcapi db,eth,net,web3,personal --cache=1024
Accedemos al nodo una vez que este se haya sincronizado y descargado todos los datos.
geth attach http://127.0.0.1:8545
Concedemos permisos para truffle puede acceder a nuestra cuenta (realizamos esto cada vez que quieras desplegar un Smart Contract)
personal.unlockAccount(eth.accounts[0])
-
- Descargamos nuestro proyecto de github, recuerda que si modificaste el contrato necesitas correrlo de nuevo y comprobar que la versión del smart contract en solidity esté vigente (este es un problema, Solidity aún está en desarrollo y va cambiando constantemente).
git clone https://github.com/johnkevinbarrera/roulette.git
Nota: Nuestro proyecto incluye una interfaz gráfica amigable, y fue desarrollada usan webpack y truffle.
-
Desplegamos nuestro proyecto de forma local.
- Iniciamos
ganache-cli
, este nos mostrara 10 claves privada con 100 ethers, podemos copiar algunas de ellas para poder probar luego.
ganache-cli
- En nuestro navegador abrimos metamask y seleccionamos localhost; luego importamos las clave privadas de las cuentas que añadiremos.
- Accedemos por consola a la dirección de nuestro proyecto y ejecutamos estos comando, para compilar desplegar el Smart Contract.
- Solo si Actualizaste o modificaste la versión del Smart Contract:
truffle compile
- Si estás usando ganache-clie:
truffle migrate --network local --reset
- Si Usamos geth podemos desplegar con este comando:
truffle migrate --network rospten --reset
- Accedemos por consola a la dirección de nuestro proyecto y ejecutamos estos comando, para compilar desplegar el Smart Contract.
npm run dev
Y si estas en un servidor web:
npm run build
- Iniciamos
Dapp, Smart Contract, Ethereum, Blockchain, truffle, geth