Repository navigation
Lab #1: Onboarding
Pour commencer, vu que nous allons faire du NodeJS/Javascript il vous faudra :
- NodeJS (8.11.1 min)
- NPM à jour
Executez : npm i g truffle
Si vous souhaitez utiliser Ganache CLI : exécutez la commande -> npm i g ganache-cli
... pour Ganache GUI : http://truffleframework.com/ganache/
(Attention, si vous avez Windows, il vous faut la version 10 ou sinon vous devez recompiler les sources (ce qui n'est pas infaisable loin de la)).
Dans le répertoire de votre choix (créez en un sur votre bureau par exemple), exécutez la commande "truffle init". La structure essentielle d'un projet truffle apparaît dans le répertoire cible. Essayez de conserver cette structure au maximum.
Attention: la commande refusera d'opérer s'il y a le moindre fichier dans votre répertoire.
Utilité des fichiers/répertoires :
- app: la partie applicative (peut contenir une partie en CLI, une application graphique ou autre)
- build: répertoire crée lors de la premiere migration. Contient les fichiers JSON
- contracts: contient... les smart contrats !
- migrations: contient les fichiers permettants de migrer les smart contracts.
- test: Truffle utilise mochaJS pour tester la partie applicative mais va aussi déployer les contrats écrits et tester toutes les fonctions commençant par "test" au sein de ces derniers.
- truffle.js: le fichier de configuration de truffle (contenant - entre autre - les différents profils pour la migration, la publication ou la consultation des contrats sur une ou plusieures blockchains). Ici on utilisera uniquement un profil "development".
Si vous avez initialisé un nouveau projet Truffle et avez lancé une commande via "truffle ", vous avez du remarqué que le résultat n'était pas vraiment le bon : truffle.js s'ouvre dans votre éditeur de texte par défaut. En réalité, l'invité de commande de Windows ne comprends pas que "truffle" est une commande car il y a un fichier du même nom dans le répertoire. Pour l'invité : vous cherchez à exécuter ce fichier. Que nenni.
Pour résoudre ce problème (et c'est valable pour tous les labs de ce projet), renommez simplement "truffle.js" en "truffle-config.js" ou sinon, pour chaque commande, tapez "truffle.cmd ".
Le port sur lequel fonctione Ganache CLI est le 8545. La seed du portefeuille hardware change à chaque lancement! N'oubliez donc pas de réinitialiser les comptes sur Metamask à chaque lancement ;) Il est possible de modifier le nombre d'ETH de départ par simple paramètre de ligne de commande (et bien plus!)
Changez le port dans les options (passez le de 7545 à 8545). Les fichiers de config de truffle (dans les labs) pointent vers le port utilisé par Ganache CLI ;) Ainsi, vous n'aurez pas à modifier ces fichiers. De même si en cours de route vous souhaitez passer sur la version CLI ! La seed du portefeuille hardware ne change pas ! Pas besoin donc de modifier quoique ce soit du coté de Metamask. Il n'est pas possible de modifier le nombre d'ETH de départ (en cours de développement).
Ganache est un fork local de la blockchain de l'Ethereum à son origine (avec uniquement le bloc de genèse).
Sachez que dans sa configuration initiale, si vous arrêtez Ganache, tout ce que vous y avez fait sera supprimé.
En effet, si vous re-lancez le processus, vous constaterez que tout a été remis à zéro !
Bien entendu, il est possible de conserver l'historique mais on ne le fera pas ici. Je vous invite à consulter la documentation du Ganache que vous utilisez. (voir la page "Documentation" de ce wiki).
Finalement, vous devriez avoir de lancé :
- Ganache-CLI ou Ganache GUI sur le port 8545
- Metamask sur votre navigateur préféré
- Truffle console (éventuellement)
Parce que vous allez utiliser Truffle de nombreuses fois durant les labs, il vous faut connaitre les commandes :
- truffle console : permet de se connecter à la blockchain de développement (locale). Une fois connecté, vous pouvez déboguer des transactions, compiler/migrer des smart contracts etc. NB: truffle debug / truffle compile / truffle migrate permettent de faire la même chose ;
- truffle test : permet de lancer les tests mocha dans le répertoire test/, lancer les tests contenus dans les contrats
Ce lab d'onboarding vous a permis d'installer et de configurer l'ensemble des outils qui vous permettront de travailler sur les deux prochains labs !
Et si on passait aux choses sérieuses ? 🔥