Introducción

Si es de tu interés programar en la red Ethereum y deseas tener excelentes herramientas a la mano para realizar el desarrollo de tus proyectos, entonces leer este artículo acerca de Truffle te será de mucha utilidad para conocer una de las más grandes y mejores herramientas de desarrollo de Smart contracts para Ethereum y otras plataformas como Corda.

¿Qué es Truffle?

Truffle es un conjunto de herramientas de programación orientado a smart contracts (contratos inteligentes) para desarrollar aplicaciones sostenibles y profesionales sobre la blockchain utilizando para ello la Máquina Virtual de Ethereum (EVM), así como realizar las distintas pruebas en un entorno de desarrollo integrado amigable para el desarrollador.

La Máquina Virtual de Ethereum (EVM) es el entorno que permite a los desarrolladores crear contratos y aplicaciones inteligentes que la blockchain puede entender.

La web oficial de Truffle, pone a tu disposición una serie de potentes herramientas de programación. Todas ellas pensadas en sacar el máximo partido a la red Ethereum y su EVM.

https://lh5.googleusercontent.com/pmzN6FefqPxcj_R6In4EBEgsOV_P23ETh2IAEQnS_IqPs0ujFehdteZjGRZrOAJaYmtG6bBTLI_Ca6PN44Uw3zpB4F1OehQ-qDqqyaXLaH24IHJXNTgjHE4-mLedNv4sK-UYhhw7

Relacionado: ¿Qué es la Ethereum Virtual Machine (EVM)? La máquina virtual de Ethereum

Inicios del proyecto

En 2015, Tim Coulter publicó un conjunto de herramientas de programación, producto de su experiencia de trabajo como desarrollador blockchain en Ethereum y ConsenSys, y le dio por nombre Truffle.

El proyecto comienza con el desarrollo de un conjunto de algunos scripts con el objetivo de facilitar el proceso de desarrollo de aplicaciones en la blockchain, que evolucionó hasta convertirse en una de las herramientas más populares para desarrollar aplicaciones que corren en la blockchain.

Truffle proporciona un entorno en el que los desarrolladores pueden construir, probar, implementar y automatizar el flujo de trabajo para DApps basados ​​en blockchain de Ethereum.

Objetivo de Truffle

El objetivo principal de Truffle es proveer un entorno de desarrollo en la blockchain que facilite la labor de los desarrolladores que se dedican a la creación de aplicaciones (DApps) y contratos inteligentes en Ethereum. 

Truffle provee un marco de prueba y una canalización de activos para Ethereum, que hacen que el proceso de desarrollar aplicaciones para esta red sea un proceso más sencillo e intuitivo.

En la medida que evoluciona, el equipo de Truffle añade nuevas herramientas y características a este entorno, con el objetivo de que los desarrolladores tengan dentro del mismo espacio de trabajo todo lo necesario para la creación, prueba, simulación y otras tareas que permitan afinar las aplicaciones antes de ponerlas a disposición de los usuarios finales.

Minimizar los inconvenientes que se derivan de las pruebas de contratos inteligentes en Ethereum, que generalmente se desarrollan utilizando su propio lenguaje de programación Solidity. 

En este sentido, Truffle permite a los desarrolladores realizar estas pruebas sobre la Máquina Virtual de Ethereum (EVM), para resolver estos inconvenientes cuando se trata de probar e implementar en la red Ethereum, especialmente aquellos proyectos más grandes con múltiples contratos.

Características de Truffle

El entorno de trabajo de Truffle consta de tres componentes principales:

  1. Truffle: proporciona una herramienta de desarrollo con la capacidad de probar e implementar los proyectos. Esta herramienta ha crecido notablemente en popularidad, hecho que se refleja en el aumento de las descargas desde los repositorios respectivos.
  2. Ganache: se trata de un simulador local de blockchain que le permite replicar redes blockchain o probar contratos.
  3. Drizzle: es una biblioteca de desarrollo FrontEnd que se puede conectar a los datos de un contrato inteligente.

En general, todo este conjunto de herramientas conforma la Suite de Truffle, y con ella se pueden realizar operaciones como:

  • Soporte integrado para compilar, implementar y vincular contratos inteligentes.
  • Prueba de contrato automatizada.
  • Admite aplicaciones de consola y aplicaciones web.
  • Gestión de red y gestión de paquetes.
  • Consola Truffle para comunicarse directamente con contratos inteligentes.
  • Admite una estrecha integración
  • Canalización de compilación configurable con soporte para procesos de compilación personalizados.
  • Marco de implementación y migraciones programables.
  • Consola interactiva para comunicación contractual directa.
  • Reconstrucción instantánea de activos durante el desarrollo.
  • Ejecutor de scripts externos que ejecuta scripts dentro de un entorno Truffle.

Por lo tanto, con la Suite de Truffle se tiene un entorno de desarrollo basado en la blockchain de Ethereum, en el que se puede desarrollar DApps, compilar contratos, implementar contratos, inyectarlos en una aplicación web, crear front-end para DApps y realizar pruebas.

Herramientas de Truffle

Como ya se mencionó, en la Suite de Truffle se incorporan otras herramientas que facilitan el trabajo de los desarrolladores en la creación y puesta a punto de sus aplicaciones (DApps). Dos componentes de esta suite son:

  1. Ganache: Ganache es una blockchain Ethereum personal que se utiliza para probar contratos inteligentes donde puede implementar contratos, desarrollar aplicaciones, ejecutar pruebas y realizar otras tareas sin ningún costo debido a que corre dentro de un servidor local.
  2. Drizzle: Por otro lado, Drizzle es una colección de bibliotecas en las que se agrupan un amplio conjunto de funciones que se utilizan para crear un front-end de manera sencilla y mejor para las DApps de Ethereum.

Relacionado: MetaMask llega a 1 millón de usuarios mensuales gracias al auge del sector DeFi

Conclusiones

Aunque MetaMask no forma parte de la Suite de Truffle, es un complemento para el navegador web que, usado en combinación con Truffle, le brindará a los desarrolladores más características al momento de realizar las simulaciones de la DApps en desarrollo.

En general, la suite de Truffle ayuda a los desarrolladores de blockchain a administrar todo su flujo de trabajo. Dada la popularidad de esta herramienta en el desarrollo de aplicaciones en la red de Ethereum, no es de extrañar que muchas aplicaciones que usamos a diario para la gestión de nuestras cuentas criptos se hayan escrito con estas herramientas.

Truffle continúa siendo una herramienta esencial tanto para desarrolladores nuevos como experimentados e indudablemente el equipo de desarrollo de estas herramientas seguirán añadiendo características innovadoras que harán que el trabajo de los desarrolladores sea mucho más sencillo y gratificante.