Qu'est-ce que la Suite Truffe ? Fonctionnalités, comment installer, comment exécuter des contrats intelligents
Publié: 2020-03-24Au début, lorsque Blockchain venait de commencer son voyage dans le domaine de la technologie grand public, vous deviez développer des contrats intelligents à l'aide du langage de programmation Solidity et les déployer en appelant les fonctions geth ou solc.
Pour rendre ce processus un peu plus facile, vous deviez écrire des scripts bash qui devaient d'abord compiler puis déployer le contrat. Maintenant, bien que cette dernière approche soit meilleure que la première, elle était assez rudimentaire, étant donné que les scripts bash impliquent souvent un manque de standardisation.
Ce besoin de créer un cadre de développement et de test transparent et optimal pour les contrats intelligents Blockchain est ce qui a donné naissance à Truffle Etheruem.
Apprenez le cours de génie logiciel en ligne des meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Table des matières
Qu'est-ce que la Suite Truffe ?
Selon Truffle Suite , Truffle est un "environnement de développement, un cadre de test et un pipeline d'actifs de classe mondiale pour les chaînes de blocs utilisant la machine virtuelle Ethereum (EVM), visant à faciliter la vie en tant que développeur".
En termes simples, Truffle est un environnement de développement, un framework de test et un pipeline d'actifs tout en un. Il est basé sur Ethereum Blockchain et est conçu pour faciliter le développement fluide et transparent des DApps (applications distribuées). Avec Truffle, vous pouvez compiler et déployer des contrats intelligents, les injecter dans des applications Web et également développer un front-end pour les DApps. Aujourd'hui, Truffle est l'un des IDE les plus utilisés pour Ethereum Blockchain.

La Suite Truffle comprend trois éléments principaux :
- Truffle - L'environnement de développement réel qui intègre la compilation, les tests et le déploiement de contrats intelligents.
- Ganache - Il s'agit d'un simulateur Blockchain déployé localement. Ganache dispose d'une interface utilisateur graphique qui peut simuler des réseaux Blockchain et tester en direct des contrats intelligents sans vous obliger à configurer de vrais réseaux de test ou à utiliser un réseau distant.
- Drizzle - Il s'agit d'un assortiment de bibliothèques frontales qui offrent des composants utiles pour développer des applications Web pouvant se connecter de manière transparente aux contrats intelligents.
Lire : Comment devenir un développeur Blockchain – Un guide pour débutants
Quelles sont les caractéristiques de Truffe ?
Les caractéristiques qui font de Truffle Etheruem l'un des IDE les plus utilisés pour Ethereum Blockchain sont :
- Il dispose d'un support intégré pour compiler, déployer et lier des contrats intelligents.
- Il permet des tests de contrat automatisés avec Mocha et Chai.
- La console Truffle vous permet de travailler avec vos contrats compilés en toute simplicité.
- Il dispose d'un pipeline de construction configurable qui prend en charge à la fois les applications de console et les applications Web.
- Il est livré avec un support intégré pour JavaScript, CoffeeScript, SASS, ES6 et JSX.
- Il dispose de générateurs qui aident à la création de nouveaux contrats et tests (par exemple, les rails génèrent).
- Il dispose d'un exécuteur de script qui vous permet d'exécuter des fichiers JS/Coffee, y compris vos Smart Contracts.
- Il permet la reconstruction instantanée des actifs pendant la phase de développement.
- Il permet la compilation et le déploiement de contrats à l'aide de votre choix préféré de client RPC.
- Il prend en charge la gestion du réseau et des packages.
Comment installer Truffle Ethereum ?
Vous pouvez installer Truffle Ethereum à l'aide du Node Package Manager (npm). Tout d'abord, vous devez configurer NPM sur votre ordinateur, puis installer Truffle. Pour ce faire, vous devez ouvrir le terminal et taper ce qui suit :
npm install -g truffe
Dans les machines Linux, cependant, vous devrez peut-être ajouter le préfixe "sudo" à la déclaration ci-dessus. Une fois que vous avez installé le framework Truffle, assurez-vous de télécharger et d'installer le simulateur de blockchain Ganache. Vous pouvez visiter le site Web officiel de Ganache - il contient des programmes d'installation pour les plates-formes les plus populaires.
Maintenant que vous avez installé Truffle avec succès, vous pouvez démarrer un projet Truffle de deux manières. Pour créer un projet simple, vous pouvez saisir l'instruction suivante :
initiation à la truffe
Cependant, vous pouvez également utiliser la commande Truffle unbox pour créer un projet avec du code existant. Par exemple, vous pouvez créer un jeton comme ceci :
truffe unbox metacoin
Lors de l'exécution de cette commande, un projet sera créé à partir d'une boîte Truffle. Vous pouvez trouver de nombreuses boîtes à truffes sur le site officiel. Ils contiennent du code passe-partout et toutes les configurations nécessaires pour construire des projets et les lancer rapidement.
La structure d'un projet truffier
Le dossier Truffle que vous créez ressemblera à ceci :
├── contrats
│ ├── ConvertLib.sol
│ ├── MetaCoin.sol
│ └── Migrations.sol
├── migrations
│ ├── 1_initial_migration.js
│ └── 2_deploy_contracts.js
├── tester
│ ├── TestMetacoin.sol
│ └── metacoin.js
├── truffe-config.js
└── truffe.js
Maintenant, nous allons discuter en détail des différents sous-dossiers contenus dans votre dossier Truffle.
Dossier Contrats
Le dossier Contracts est celui où tous vos Smart Contracts sont stockés. Dans ce dossier, il existe également un fichier spécial appelé fichier Migrations.sol. Habituellement, lorsque Truffle compile votre projet, il parcourt le dossier Contracts pour compiler tous les fichiers compatibles.
Dossier Migrations
Truffle Migration fait référence à un script qui définit comment vos Smart Contracts seront déployés sur la Blockchain Ethereum. Les migrations sont essentielles car plus votre projet se complexifie, plus la complexité de vos déploiements augmente également. Grâce à Truffle Migrations, vous pouvez automatiser le processus de déploiement des Smart Contracts de manière séquentielle.

Si vous regardez en arrière la structure du dossier Truffle, vous verrez un fichier appelé 1_initial_migration.js . Ce fichier déploie le contrat Migrations.sol sur la Blockchain Ethereum.
Les migrations vous permettent de :
- Définir la limite de gaz maximale pour les déploiements
- Modifiez ou changez l'adresse de l'origine des déploiements.
- Appelez des fonctions de contrat arbitraires.
- Déployer des bibliothèques
Dossier d'essai
En matière de Smart Contracts, les tests sont indispensables ! Heureusement, Truffle dispose d'un cadre de test intégré qui vous permet d'écrire des tests en Solidity ou JavaScript. Si vous écrivez vos tests dans Solidity, vous devez importer les Smart Contracts dans les tests avec la directive d'importation Solidity, comme ceci :
importer "../contrats/MetaCoin.sol" ;
Cependant, si vous écrivez des tests en JavaScript, vous devez les importer à l'aide de la fonction d'assistance artefacts.require() , comme suit :
var MetaCoin = artefacts.require(“./MetaCoin.sol”);
Fichier de configuration
Le fichier de configuration, également connu sous le nom de truffle.js ou truffle-config.js, définit comment Truffle peut se connecter aux réseaux Ethereum avec les éléments suivants :
- Environnements - Il vous permet de définir l'adresse de la note geth, le network_id, la limite maximale de gaz pour le déploiement et le prix du gaz que vous êtes prêt à payer.
- Structure du projet - Vous pouvez modifier l'emplacement où les fichiers sont créés et stockés.
- Version et paramètres du compilateur – Vous pouvez corriger la version solc et définir les paramètres -O (optimisation).
- Gestion des packages – Truffle est compatible avec EthPM (Ethereum Package Manager). Vous pouvez configurer des dépendances pour EthPM pour vos projets Truffle.
- Description du projet - Elle indique qui a développé le projet, précise le nom du projet, les adresses de contact, etc.
Lisez aussi: Idées de projets Blockchain pour les débutants
Comment exécuter des contrats intelligents ?
Voici les différentes façons d'exécuter des contrats intelligents -
- Pour compiler les Smart Contracts, vous devez exécuter le code suivant :
compilation de truffes
- Pour exécuter des migrations, vous devez utiliser le code suivant :
migration de la truffe
Vous pouvez également le faire en mentionnant un environnement spécifique :
migration de la truffe - réseau en direct

- Pour tester les contrats intelligents, vous pouvez exécuter le code suivant :
essai de truffe
Vous pouvez également exécuter un test spécifique en utilisant le code suivant :
test de truffe ./path/to/FileTest.sol
Dans cet article, nous avons cherché à vous donner l'idée de base de Truffle Etheruem et son fonctionnement. Truffle est un outil puissant qui rend le développement de DApps et de contrats intelligents beaucoup plus pratique en intégrant les pratiques de développement standard dans l'image de la Blockchain.
Emballer
Il y a une augmentation des carrières dans la technologie blockchain et la blockchain a énormément changé à jamais le visage même de l'industrie technologique. Si vous souhaitez devenir développeur blockchain et créer des contrats intelligents et des codes blockchain, consultez le programme de certificat avancé IIIT-B & upGrad en technologie blockchain .
Qu'est-ce que Vyper sur Ethereum ?
Vyper est un langage de programmation pythonic orienté contrat, typé statistiquement, qui cible le monde virtuel Ethereum. Il a été conçu comme une amélioration par rapport à Solidarité. Les principes et objectifs principaux de Vyper sont la sécurité, la simplicité du langage et du compilateur et l'auditabilité. Vyper est un langage fortement typé et ne permet donc pas d'utiliser un type de données comme un autre. Il est livré avec de nombreuses fonctionnalités supplémentaires telles que la vérification des limites et des débordements, un typage fort, des côtés de compilateur petits et compréhensibles, une prise en charge limitée des fonctions pures, la prise en charge des entiers signés et des nombres décimaux à virgule fixe, et la décidabilité. Il a également une syntaxe simple qui empêche les développeurs de coder des programmes ambigus.
Quels sont les inconvénients des Smart Contracts ?
Les contrats intelligents, même s'ils ont tant d'utilisations et une plus grande popularité, souffrent de nombreuses limitations. Il existe une réglementation juridique bien établie pour l'application des contrats intelligents, ce qui la rend plus sujette aux cyberattaques. Changer le processus de contrat intelligent est presque impossible car toute erreur de code prend du temps et coûte cher à corriger. Bien que l'implication de tiers soit considérablement réduite, elle ne peut pas être complètement éliminée. Par exemple, les développeurs ont besoin d'avocats pour comprendre les termes afin de créer des codes pour les contrats intelligents. Les contrats intelligents dépendent également fortement des programmeurs et sont exposés aux bogues, ce qui constitue un inconvénient important.
Qu'est-ce que la gestion du réseau et des packages dans la blockchain ?
Un gestionnaire de packages vous aide à automatiser l'installation, la mise à jour, la configuration et la suppression d'applications. Ils sont utilisés dans les systèmes d'exploitation et les environnements de programmation et aident à éviter l'enfer des dépendances. Les fonctions clés des gestionnaires de packages incluent la garantie de l'authenticité du package, le téléchargement de logiciels à partir d'un référentiel en ligne, la mise à jour de logiciels existants, etc. Il existe de nombreux types de gestionnaires de packages, de packages binaires, de packages basés sur le code source, de systèmes hybrides, de gestionnaires de méta-packages, d'applications , etc. Il existe également des gestionnaires de packages liés à la blockchain. L'un de ces gestionnaires est le gestionnaire de paquets de nœuds. NPM est le plus grand registre de logiciels au monde qui permet aux individus d'utiliser des ressources partagées via leur référentiel open source.