Los desarrolladores de dApps necesitan de herramientas como Truffle Suite que les permitan verificar y auditar los códigos de los smart contracts de la forma más sencilla y eficiente posible, de tal forma que se pueda verificar la calidad de los mismos para poder ponerlos en producción en el mínimo tiempo posible.

¿Qué es Truffle Suite?

Truffle Suite es un conjunto de herramientas que permiten a los desarrolladores realizar un testing e integración continua de sus dApps de una forma eficiente y sencilla.

Se trata de un entorno de desarrollo que permite a los programadores gestionar el ciclo de vida de los smart contracts desde su diseño hasta el despliegue de los mismos en una blockchain que utilice la EVM (Ethereum Virtual Machine), como son Quórum, Corda, Tezos, Ethereum y Hyperledger Fabric EVM.

¿Qué herramientas aporta Truffle Suite?

Truffle Suite aporta las siguientes herramientas: Truffle, Ganache, Drizzle, Truffle Boxes y Truffle Teams.

A continuación, explicamos en detalle en qué consiste cada una de ellas, y qué funcionalidades ofrecen al desarrollador de dApss.

Truffle

Truffle se define como un entorno de desarrollo de clase mundial.  Un marco de pruebas y un conducto de activos para blockchains que utilicen la EVM (Ethereum Virtual Machine).

Truffle es el marco de desarrollo más popular para Ethereum con la misión de hacerle la vida más fácil a los desarrolladores en el proceso de integración y testing de dApps. Para ello, aporta las siguientes funcionalidades:

  • Permite la compilación, enlazado, despliegue y administración binaria de smart contracts.
  • Permite el testeo automático de smart contracts para un rápido desarrollo de los mismos.
  • Aporta un entorno de implementación y migración extensible y programable.
  • Permite trabajar con diferentes redes, tanto públicas y privadas.
  • Permite la gestión de paquetes con EthPM y NPM, utilizando el estándar ERC190 .
  • Aporta una consola interactiva para realizar una comunicación directa con los smart contracts.
  • Permite ejecutar scripts externos que interactúen con los smart contracts.

Ganache

Ganache es una cadena de bloques personal para el desarrollo rápido de dApps de Ethereum y Corda. Ganache permite desarrollar, implementar y probar las dApps en un entorno seguro y determinista.

Ganache UI es una aplicación de escritorio que admite la tecnología Ethereum y Corda. Además, una versión Ethereum de Ganache está disponible como una herramienta de línea de comandos: ganache-cli (anteriormente conocido como TestRPC).

Todas las versiones de Ganache están disponibles para Windows, Mac y Linux.

Drizzle

Drizzle es una colección de bibliotecas de front-end que permite a los desarrolladores programar la parte front-end de las dApps de una forma más sencilla y predecible. El núcleo de Drizzle se basa en Redux Store, por lo que se tiene acceso a las herramientas de desarrollo de Redux.

Drizzle se encarga de sincronizar los datos de los smart contracts y los datos de las transacciones.  El desarrollador indica qué quiere mantener sicronizado. Los datos de los smart contract son totalmente reactivos, incluidos el estado, los eventos y las transacciones.

Truffle Boxes

Truffle Boxes son entornos predefinidos que integran Truffle con módulos y herramientas como contratos de Solidity, librerias, vistas front-end con CSS, React, Webpack, UPort y Redux, entre otras. 

Se pueden crear Truffle Boxes de cero, según las necesidades del desarrollador, o bien se puede reutilizar Truffle Boxes ya creadas y testadas del siguiente repositorio.

Gracias a las Truffle Boxes, los desarrolladores de dDapps podrán centrarse en lo que lo que hace diferente a su aplicación, en lugar de tenerse que preocupar de montar un entorno fiable en el cual hacerla funcionar y poderla probar.

Truffle Teams

Truffle Teams permite administrar y monitorear el estado de aplicaciones habilitadas para blockchain, ya sean de código abierto o empresariales. 

Tiene las siguientes características:

  • Seguimiento de dApps y de datos, permitiendo obtener una visión general del estado de los test de múltiples proyectos con un sólo vistazo.
  • Proporciona un entorno unificado para pruebas continuas de smart contracts.
  • Permite una eficiente gestión de los smart contrats, mediante la  supervisión de las transacciones, el estado y los eventos de los contratos desplegados. Permite acceder al historial de compilación y al estado actual en el flujo de trabajo.

Enlaces de interés