Giter Site home page Giter Site logo

roulette's Introduction

Desplegando Dapp y Smart-Contracts sobre La BlockChain Ethereum

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).

References

Authors

   Francisco Rosales.
   John Barrera.

Contextualizandonos

Herramientas

  • node:
  • npm:
  • metamask:
  • truffle:
  • geth ethereum:
  • ganache-cli:
  • git:

Estructura del Proyecto

$ 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.

Arquitectura de una DApp

Match function

Desplegando Nuestro Proyecto

Requisitos

  • 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:

Preparación del Entorno de Trabajo

  • 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) Match function

  • 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 usando Geth 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])
      

Instalación del Proyecto

  • 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.

Despliegue del Proyecto

  • 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
    

Listo, ahora ya podemos jugar!

Match function

Match function

Conclusion

keyword

Dapp, Smart Contract, Ethereum, Blockchain, truffle, geth

roulette's People

Contributors

johnkbarrera avatar

Watchers

James Cloos avatar  avatar

roulette's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.