¿Qué es Trufa Suite? Funciones, cómo instalar, cómo ejecutar contratos inteligentes

Publicado: 2020-03-24

En los primeros días, cuando Blockchain recién comenzaba su viaje hacia el dominio tecnológico convencional, tenía que desarrollar contratos inteligentes utilizando el lenguaje de programación Solidity e implementarlos llamando a las funciones geth o solc.

Para facilitar un poco este proceso, tuvo que escribir scripts bash que primero compilarían y luego implementarían el contrato. Ahora bien, aunque el último enfoque era mejor que el primero, era bastante rudimentario, dado que las secuencias de comandos bash a menudo implican una falta de estandarización.

Esta necesidad de crear un marco de prueba y desarrollo perfecto y óptimo para los contratos inteligentes de Blockchain es lo que dio origen a Truffle Etheruem.

Aprenda el curso de ingeniería de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Tabla de contenido

¿Qué es la Suite Trufa?

Según Truffle Suite , Truffle es un "entorno de desarrollo, marco de prueba y canalización de activos de clase mundial para cadenas de bloques que utilizan Ethereum Virtual Machine (EVM), con el objetivo de facilitar la vida como desarrollador".

En palabras simples, Truffle es un entorno de desarrollo, un marco de prueba y una canalización de activos, todo en uno. Se basa en Ethereum Blockchain y está diseñado para facilitar el desarrollo fluido y continuo de DApps (aplicaciones distribuidas). Con Truffle, puede compilar e implementar contratos inteligentes, inyectarlos en aplicaciones web y también desarrollar front-end para DApps. Hoy en día, Truffle es uno de los IDE más utilizados para Ethereum Blockchain.

La Truffle Suite se compone de tres elementos centrales:

  • Truffle : el entorno de desarrollo real que integra la compilación, las pruebas y la implementación de contratos inteligentes.
  • Ganache : es un simulador de Blockchain desplegado localmente. Ganache cuenta con una interfaz gráfica de usuario que puede simular redes Blockchain y contratos inteligentes de prueba en vivo sin necesidad de configurar redes de prueba reales o usar una red remota.
  • Llovizna : es una variedad de bibliotecas frontales que ofrecen componentes útiles para desarrollar aplicaciones web que pueden conectarse sin problemas con los contratos inteligentes.

Leer: Cómo convertirse en desarrollador de blockchain: una guía para principiantes

¿Cuáles son las características de la Trufa?

Las características que hacen de Truffle Etheruem uno de los IDE más utilizados para Ethereum Blockchain son:

  • Tiene soporte incorporado para compilar, implementar y vincular contratos inteligentes.
  • Permite pruebas de contrato automatizadas con Mocha y Chai.
  • Truffle Console le permite trabajar con sus contratos compilados sin problemas.
  • Tiene una canalización de compilación configurable que admite aplicaciones de consola y aplicaciones web.
  • Viene con soporte integrado para JavaScript, CoffeeScript, SASS, ES6 y JSX.
  • Tiene generadores que ayudan en la creación de nuevos contratos y pruebas (por ejemplo, Rails Generator).
  • Tiene un ejecutor de secuencias de comandos que le permite ejecutar archivos JS/Coffee, incluidos sus contratos inteligentes.
  • Permite la reconstrucción instantánea de activos durante la etapa de desarrollo.
  • Permite la compilación y la implementación de contratos utilizando su elección preferida de cliente RPC.
  • Es compatible con la gestión de redes y paquetes.

¿Cómo instalar Truffle Ethereum?

Puede instalar Truffle Ethereum usando el Node Package Manager (npm). Primero, debe configurar NPM en su computadora y luego instalar Truffle. Para hacerlo, debe abrir la terminal y escribir lo siguiente:

npm install -g trufa

Sin embargo, en las máquinas Linux, es posible que deba agregar el prefijo "sudo" a la declaración anterior. Una vez que haya instalado el marco Truffle, asegúrese de descargar e instalar el simulador de cadena de bloques Ganache. Puede visitar el sitio web oficial de Ganache : contiene instaladores para las plataformas más populares.

Ahora que ha instalado Truffle con éxito, puede iniciar un proyecto de Truffle de dos maneras. Para crear un proyecto simple, puede escribir la siguiente declaración:

inicio de trufa

Sin embargo, también puede usar el comando Truffle unbox para crear un proyecto con código existente. Por ejemplo, puede crear un token así:

trufa unbox metacoin

Al ejecutar este comando, se creará un proyecto a partir de una caja de Trufas. Puedes encontrar muchas cajas de trufas en el sitio web oficial. Contienen código repetitivo y todas las configuraciones necesarias para construir proyectos y ejecutarlos rápidamente.

La estructura de un Proyecto Trufa

La carpeta Truffle que cree se verá así:

├── contratos

│ ├── ConvertLib.sol

│ ├── MetaCoin.sol

│ └── Migraciones.sol

├── migraciones

│ ├── 1_migración_inicial.js

│ └── 2_deploy_contracts.js

├── prueba

│ ├── TestMetacoin.sol

│ └── metacoin.js

├── trufa-config.js

└── trufa.js

Ahora, discutiremos en detalle sobre las diferentes subcarpetas contenidas en su carpeta Truffle.

Carpeta de contratos

La carpeta de Contratos es una donde se almacenan todos sus Contratos Inteligentes. En esta carpeta, también hay un archivo especial conocido como el archivo Migraciones.sol. Por lo general, cuando Truffle compila su proyecto, buscará en la carpeta Contratos para compilar todos los archivos compatibles.

Carpeta de migraciones

Truffle Migration se refiere a un script que define cómo se implementarán sus contratos inteligentes en Ethereum Blockchain. Las migraciones son esenciales porque a medida que su proyecto se vuelve más complejo, la complejidad de sus implementaciones también aumenta. Gracias a Truffle Migrations, puedes automatizar el proceso de implementación de Smart Contracts de manera secuencial.

Si vuelve a mirar la estructura de carpetas de Truffle, verá un archivo llamado 1_initial_migration.js . Este archivo implementa el contrato de Migrations.sol en Ethereum Blockchain.

Las migraciones le permiten:

  • Establecer el límite máximo de gas para los despliegues
  • Modificar o cambiar la dirección de las implementaciones.
  • Llame a funciones de contrato arbitrarias.
  • Implementar bibliotecas

Carpeta de prueba

Cuando se trata de contratos inteligentes, ¡las pruebas son imprescindibles! Afortunadamente, Truffle tiene un marco de prueba incorporado que le permite escribir pruebas en Solidity o JavaScript. Si escribe sus pruebas en Solidity, debe importar los contratos inteligentes a las pruebas con la directiva de importación de Solidity, así:

importar “../contratos/MetaCoin.sol”;

Sin embargo, si está escribiendo pruebas en JavaScript, tiene que importarlas usando la función auxiliar de artefactos.require() , así:

var MetaCoin = artefactos.require(“./MetaCoin.sol”);

Archivo de configuración

El archivo de configuración, también conocido como truffle.js o truffle-config.js, define cómo Truffle puede conectarse a las redes Ethereum junto con las siguientes cosas:

  • Entornos : le permite definir la dirección de la nota geth, el network_id, el límite máximo de gas para el despliegue y el precio del gas que está dispuesto a pagar.
  • Estructura del proyecto : puede cambiar la ubicación donde se crean y almacenan los archivos.
  • Configuración y versión del compilador : puede corregir la versión de solc y configurar los parámetros -O (optimización).
  • Gestión de paquetes : Truffle es compatible con EthPM (Ethereum Package Manager). Puede configurar dependencias para EthPM para sus proyectos de Truffle.
  • Descripción del proyecto : establece quién desarrolló el proyecto, especifica el nombre del proyecto, las direcciones de contacto, etc.

Lea también: Ideas de proyectos Blockchain para principiantes

¿Cómo ejecutar contratos inteligentes?

Estas son las diferentes formas de ejecutar contratos inteligentes:

  • Para compilar contratos inteligentes, debe ejecutar el siguiente código:

compilación de trufas

  • Para ejecutar migraciones, debe usar el siguiente código:

la trufa migra

También puedes hacerlo mencionando un entorno específico:

trufa migrar – red en vivo

  • Para probar Smart Contracts, puede ejecutar el siguiente código:

prueba de trufa

También puede ejecutar una prueba específica utilizando el siguiente código:

prueba de trufa ./ruta/a/FileTest.sol

En esta publicación, nuestro objetivo es brindarle la idea básica de Truffle Etheruem y cómo funciona. Truffle es una herramienta poderosa que hace que el desarrollo de DApps y Smart Contracts sea mucho más conveniente al traer las prácticas de desarrollo estándar a la imagen de Blockchain.

Terminando

Hay un aumento en las carreras en la tecnología blockchain y blockchain ha cambiado enormemente la cara de la industria tecnológica para siempre. Si está interesado en convertirse en un desarrollador de blockchain y crear contratos inteligentes y códigos de cadena, consulte el programa de certificación avanzada de IIIT-B & upGrad en tecnología blockchain .

¿Qué es Vyper en Ethereum?

Vyper es un lenguaje de programación pitónico, tipificado estadísticamente y orientado a contratos que apunta al mundo virtual de Ethereum. Fue diseñado como una mejora sobre Solidaridad. Los principales principios y objetivos de Vyper son la seguridad, el lenguaje y la simplicidad del compilador, y la auditabilidad. Vyper es un lenguaje fuertemente tipado y, por lo tanto, no permite que un tipo de datos se use como otro. Viene con muchas funciones añadidas, como comprobación de límites y desbordamientos, tipificación fuerte, lados del compilador pequeños y comprensibles, soporte limitado para funciones puras, soporte para números enteros con signo y números decimales de punto fijo, y capacidad de decisión. También tiene una sintaxis simple que hace imposible que los desarrolladores codifiquen programas ambiguos.

¿Cuáles son las desventajas de los contratos inteligentes?

Los contratos inteligentes, a pesar de que tienen tantos usos y una popularidad más amplia, sufren muchas limitaciones. Existe una buena regulación legal para la aplicación de contratos inteligentes, lo que los hace más propensos a los ataques cibernéticos. Cambiar el proceso de contrato inteligente es casi imposible, ya que cualquier error de código requiere mucho tiempo y es costoso de corregir. Aunque la participación de terceros se reduce significativamente, no se puede eliminar por completo. Por ejemplo, los desarrolladores necesitan abogados que comprendan los términos para crear códigos para contratos inteligentes. Los contratos inteligentes también tienen una alta dependencia de los programadores y la exposición a errores, lo que es una desventaja significativa.

¿Qué es la gestión de redes y paquetes en blockchain?

Un administrador de paquetes lo ayuda a automatizar la instalación, actualización, configuración y eliminación de aplicaciones. Se utilizan en sistemas operativos y entornos de programación y ayudan a evitar el infierno de la dependencia. Las funciones clave de los administradores de paquetes incluyen garantizar la autenticidad del paquete, descargar software de un repositorio en línea, actualizar el software existente, etc. Hay muchos tipos de administradores de paquetes, paquetes binarios, paquetes basados ​​en código fuente, sistemas híbridos, administradores de metapaquetes, aplicaciones administradores basados ​​en blockchain, etc. También existen administradores de paquetes relacionados con blockchain. Uno de estos administradores es el administrador de paquetes de nodos. NPM es el registro de software más grande del mundo que permite a las personas utilizar recursos compartidos a través de su repositorio de código abierto.