Généralement, chaque débutant dans le domaine du blockchain découvre Remix , et l’utilise pour compiler et déployer ses smart-contracts mais le problème ici c’est que le développeur a besoin de faire tout le processus du développement de son dapp localement.
C’est là où on commence à comprendre l’importance du truffle en tant qu’environnement de développement local, ce qui facilite la migration des contrats intelligents vers la blockchain Ethereum. Pour avoir plus d’information sur le blockchain et surtout sur ce qu’est Ethereum, veuillez consulter cet article.
Table Des Matières
Qu’est ce que truffle suite ?
C’est une collection d’outils qui a l’objectif d’assurer un processus de développement plus accessible; La suite comprend trois logiciels: Truffle, Ganache, et Drizzle , mais nous nous limiterons ici uniquement aux deux premiers éléments.
Truffle:
Truffle est l’environnement de développement et le framework de test de l’écosystème Truffle Suite. Truffle est un framework de développement des applications ethereum très populaire et il y a une grande communauté derrière l’outil. De plus, Truffle est basé sur l’EVM (Ethereum Virtual Machine) et l’un de ses objectifs est de rendre le développement de contrats intelligents plus simple et plus accessible comme mentionne dans le site officiel: “aiming to make life as a developer easier.“
En utilisant truffle, vous obtenez:
- compilation, liaison, déploiement et gestion binaire de contrats intelligents.
- Tests automatisés de contrats pour un développement rapide.
- Framework de déploiement et de migration scriptable et extensible.
- Console interactive pour la communication contractuelle directe.
- Exécuteur de scripts externes qui exécute des scripts dans un environnement Truffle.
Ganache:
Ganache est un outil qui nous permet de créer notre propre blockchain Ethereum native. La blockchain peut être utilisée à toutes les étapes du processus de développement, ce qui rend cet outil très utile. Ganache nous permet de déployer toutes nos dApps dans un environnement sécurisé et déterministe.
Ganache est disponible en deux versions différentes, Ganache UI et une CLI appelée ganache-CLI.Les deux versions sont disponibles sur Linux, Mac et Windows.
La question qui se pose est pourquoi utilisons-nous une blockchain locale alors que nous pouvons simplement utiliser ethereum main/testnet ? Il y a deux raisons à ce choix: la première est d’économiser l’argent, et la seconde est que nous pouvons gagner du temps.
Comment configurer truffle ?
Installation du truffle:
N.B:Pour installer Truffle, vous devez avoir Node et NPM.
Pour installer nodejs,visitez le lien suivant: https://nodejs.org/en/download/
Dans votre terminal, tapez la commande ci-dessous pour verifier si nodejs est installé:
node -v
une fois nodejs installé, npm est également installé, pour vérifier cela, vous pouvez taper la commande ci-dessous dans votre terminal :
npm -v
Entrez la commande suivante dans votre terminal :
npm i -g truffle
Pour vérifier si Truffle est installé avec succès, exécutez :
truffle version
dans votre terminal. Vous devriez voir un output comme l’image ci-dessous :
Creation d’un projet en utilisant truffle
mkdir truffle-project
cd truffle-project
truffle init
Apres l’execution de cette commande,vous devez trouvez de nouveaux fichiers and dossiers comme l’image ci-dessous:
- /contracts : stocke les codes solidity du smart-contract
- /migrations : déployez le smart-contract qui se trouve au dossier /contracts.
- /test : testez les codes de votre contrat intelligent, vous pouvez les faire soit en solidity ou bien nodejs.
- truffle-config.js : document de configuration pour l’utilisateur Windows. Nous pouvons simplement le laisser tranquille.
Compilation du smart-contract
Pour mieux expliquer comment compiler une contrat intelligente, on va créer une simple contrat appelée SimpleStorage.Voici le code dans l’image ci-dessous:
Pour compiler cette smart-contract,on va entrer la commande:
truffle compile
Cela compile le code original en bytecode Ethereum. Si tout se passe bien, il créera un fichier .json sous un nouveau dossier sous le nom build/contracts.
Testing du smart-contract
une fois le contrat intelligent déployé, il n’est pas possible de le modifier, c’est pourquoi nous devons le tester afin de corriger tout bug éventuel.Toutes les tests doivent ajoutes au dossier /test.Voici un exemple d’un simple test:
Pour exécuter le test dans Truffle, saisissez simplement cette commande :
truffle test
si le test passe avec succès, vous trouverez un message dans le terminal comme l’image ci-dessous:
Déploiement du smart-contract avec Ganache
tout d’abord, nous devons lancer ganache-cli avec la commande :
ganache-cli
On obtient un 10 comptes pour déployer notre contrat.
Créez un fichier js sous migrations, nommez-le “1_deploy_contracts.js”.
Après cela, copiez et collez le contenu de déploiement suivant dans le “1_deploy_contracts.js”.
Modifiez le fichier truffle.config.js comme ci-dessous :
Et la dernière chose que vous devez faire est d’écrire la commande ci-dessous :
truffle migrate
Si tout passe bien,le resultat va etre comme l’image ci-dessous:
Félicitations!! vous venez de déployer le contrat de simple Storage à ganache.