Who rules our universities?

The pensions dispute has drawn into focus a problem many UK academics have become acutely aware of recently: the rise of unaccountable VCs (vice chancellors); and, beneath them a cadre of senior…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




3.5 Desarrollo con Truffle I

Antes de seguir profundizando en Solidity he pensado que es buena idea hacer una parada para explicar el que sin duda es el framework más popular para el desarrollo en Ethereum hoy en día, Truffle. ¿Qué nos ofrece Truffle?

Aprenderemos a usar todas estas herramientas a través del desarrollo de nuestra primera aplicación descentralizada o dApp.

Aunque es difícil dar una definición exacta, podríamos decir que es una aplicación que utiliza blockchain como base de datos o como núcleo donde implementar su lógica de negocio.

A lo largo de este artículo construiremos una dApp que consistirá en una plataforma de votación y cubriremos lo siguiente:

¡Empecemos!

Hay unos pocos requisitos técnicos que debemos configurar antes de empezar. Necesitamos instalar:

Estas herramientas están disponible tanto para Windows, Linux o macOS.

Una vez que tenemos estas herramientas instaladas, instalaremos Truffle con el comando:

Puedes comprobar que truffle se ha instalado correctamente ejecutando:

Que en mi caso muestra:

En primer lugar crea un directorio para tu proyecto

y una vez dentro del nuevo directorio ejecuta el comando:

Es recomendable usar un IDE para desarrollar nuestra aplicaciones, por ejemplo Atom. Si abrimos el directorio creado en Atom veremos la estructura de directorios creada por truffle:

Truffle habrá creado una aplicación de ejemplo que nos sirve para desarrollar una dApp completa.

En primer lugar elimina los contratos ConvertLib.sol y Metacoin.sol en ./contracts y crea un nuevo archivo Votacion.sol con el siguiente contenido:

El directorio contracts incluye un contrato más, Migrations.sol y del que hablaremos posteriormente.

Como vemos en el código anterior, Truffle nos permite incluir parámetros que se pasarán al constructor de nuestro contrato. En nuestro caso, le pasamos un único parámetro con la lista de candidatos, Satoshi y Vitalik. Podemos además indicar el límite de gas para crear el contrato. Veremos que ésto es también posible a través del archivo de configuración de Truffle y que describiremos más adelante en este artículo.

Ahora ya podemos compilar nuestros contratos. Para ello ve a la carpeta contracts y ejecuta:

Una vez nuestros contratos hayan compilado sin errores podremos ejecutar nuestros scripts de migraciones para desplegar nuestros contratos en la red de Ganache:

Para cada contrato desplegado se nos indica el hash de la transacción y la dirección donde se ha creado y que podremos usar para interactuar con dicho contrato.

También podemos ver las cuentas, bloques, transacciones y el log en la interfaz de Ganache:

Como ves, es mucho más fácil, rápido y potente usar Ganache en desarrollo que las redes de tests de Ethereum con MetaMask. ¿Pero cómo sabe Truffle donde desplegar nuestros contratos? Esta información se encuentra en nuestro archivo truffle.js, en el que podemos indicar las diferentes redes que vamos usar. En este caso:

Es decir, nuestra blockchain esta corriendo localmente, indicado mediante la ip 127.0.0.1 y se conecta a través del puerto 7545. Éste es el puerto por defecto de Ganache. Este archivo de configuración nos dará gran flexibilidad para poder definir redes locales, o remotas, redes públicas o privadas, y mucho más que veremos más adelante.

Y con esto creo que tenemos suficiente por ahora. En el próximo artículo veremos como hacer pruebas y depurar nuestros contratos, crear una interfaz gráfica para nuestra dApp e implementar la comunicación entre la blockchain y la interfaz gráfica gracias a la librería Web3.

¡Nos vemos en el próximo artículo!

Add a comment

Related posts:

Every Morning I Ask For This

Let me live in the moment, this moment, as often as I can. “Every Morning I Ask For This” is published by Carol Warady.