Tutoriel développement Ethereum : Introduction sur les Dapp

0

Cet article démarre une série de tutoriaux sur le développement d’une application dans la Blockchain Ethereum.

La documentation française étant quasi inexistante ou complètement obsolète (ce qui est compréhensible dans la mesure ou la blockchain Ethereum a démarré il y a 2 ans et demi, et évolue très vite) , nous allons tenter de vous donner les bases pour être autonome sur le développement des applications Ethereum.

Nous partirons de zéro, et verrons l’installation de l’environnement de développement, la création de l’application, et son déploiement.

Avant de commencer, vous devez avoir compris globalement comment fonctionne une blockchain, et je vous invite à lire les quelques dossiers disponibles sur le site pour en comprendre les grands principes.

Aussi, il est utile de rappeler ce qu’est un Smart Contract, ou contrat intelligent. Il s’agit d’un programme, hébergé dans une blockchain, et qui exécute une action automatiquement en fonction de critères préétablis, tout en bénéficiant de l’avantage d’une base de donnée décentralisée immuable que permet la chaîne de blocs.

Cela n’a rien de rien, mais c’est en fait complètement révolutionnaire, et pourra avoir un impact sur à peu près tout ce que nous connaissons aujourd’hui.

Dès qu’un contrat nécessite de la confiance ou de la transparence entre les agents, la blockchain avec son smart contract pourra remplir ces critères, la transaction est inscrite dans un registre infalsifiable, incorruptible, contrairement à une base de données classique, contrairement à des humains.

Prenons l’exemple d’une transaction immobilière, le vendeur A souhaite vendre son appartement à l’acheteur B. Pour garantir que A est bien propriétaire du bien, que B va bien l’acheter et dispose des fonds, de nombreuses opérations sont nécessaires et réalisés par le notaire :
– Il vérifie la propriété du bien, encaisse ensuite un acompte
– Il envoie la déclaration d’intention d’aliéner (DIA) à la mairie
– Il vérifie que le bien n’est pas hypothéqué.
– Demande un état daté au syndic, vérifie les travaux et procédures en cours
– Vérifie l’état civil des parties
etc etc…

Ces nombreuses opérations entraînent pour l’acheteur un surcoût d’environ 8%, ce qui paraître important mais au vu de tout ce qu’il y a à réaliser comme démarches administratives n’est pas si grand.

Ce surcoût est engendré par deux phénomènes :
Le manque de confiance : comment A peut-il être sur que B à l’argent ? Comment B peut-il être sur que A est bien propriétaire du bien ? Qu’il n’a pas une hypothèque dessus ?
Des bases de données différentes et centralisées pour recueillir toutes les informations, et en vérifier la concordance, ce que les économistes appelleraient des coût de frictions.

Imaginons alors qu’il soit possible de disposer d’une unique base de données avec toutes les transactions immobilières, interrogeable par tous, et qui permet de vérifier la propriété des biens ? Imaginons ensuite qu’un logiciel puisse interagir avec cette base de données, et déclencher des actions (par exemple un transfert de propriété ou un versement de fond) en fonction de critère prédéfini (voir la liste de vérification ci dessus).
Enfin, pour que le système soit parfait, imaginons que rien dans cette base de données ne puisse être effacé, et que l’historique de tout ce qu’il s’est passé dessus soit indéfiniment consultable ?

Bravo, vous venez, dans votre tête de créer votre premier Smart Contract, et avez sans doute réalisé l’étape la plus importante dans le développement d’une application blockchain : l’avoir imaginé. L’ensemble s’appelle une Dapp, comme decentralised app.

L’intérêt, au delà de l’aspect technique que nous développerons par le suite, est que ce qui entraînait des surcoûts a été résolu :
Il existe une base de données décentralisée, hébergée par tous les acteurs du réseau, duppliquée à des millions d’endroits dans le monde entier
La confiance est rétablie : Des milliers d’ordinateurs travaillent simultanément à vérifier les conditions du contrat et à les exécuter, et sont rémunérés en échange.
Le coût final serai alors bien moindre dans une transaction tout est automatisé par des machines.

Le reste ne sera que de la syntaxe et un peu de persévérance, rien dont n’importe qui d’un peu motivé ne puisse venir à bout.

Etape 0 : Installation de l’environnement de développement

Nous aurons principalement besoin de node.js (pour info j’utilise la version 8.1.2  mais ça n’a pas d’importance, vous pouvez normalement prendre la dernière) et de GIT pour installer facilement tout le reste en ligne de commande, et d’un éditeur de texte pour écrire notre code.
Il faut aussi télécharger Ganache  , qui nous permettra de faire tourner localement une blockchain pendant nos tests, avec quelques ‘accounts’ de tests qui contiennent de l’ETHER et du GAS.
Pour ces trois premiers outils, c’est tout simple, on télécharge et on installe. Éventuellement pensez à vérifier que GIT apparait bien des les variables d’environnement. Sous windows 10, clique droit sur l’icône windows (l’ancien DÉMARRER) en bas à gauche > Paramètre > Taper ‘var’ dans la recherche en haut et cliquer sur « Modifier les variables d’environnement »

Les propriétés systèmes s’ouvrent, dans l’onglet « paramètres systèmes avancés », cliquer en bas sur « Variables d’environnement ». Dans la nouvelle fenêtre, chercher en bas dans l’encadre « Variable système » la variable ‘Path’ et cliquer 2 fois dessus ou sur modifier. Ensuite, tout en bas devrait apparaitre le chemin vers l’exécutable GIT (normalement ‘C:\Program Files\Git\cmd’), sinon ajoutez le.

On verra par la suite comment déployer l’application dans la blockchain Ethereum, et nous verrons que celle-ci contient plusieurs blockchain, la réelle, celle ou un ETHER coûte des vrais euros, et une test, qui fonctionne exactement comme la vraie sauf que l’ETHER est gratuit, donc pratique pour tester un environnement réel gratuitement. Pour démarrer on fera tourner tout localement.

Pour info ce tutoriel a été réalisé sous Windows mais tout devrait fonctionner de la même manière sous n’importe quel OS, puisque NODE et GIT sont sur toutes les plateformes.

Maintenant que tout est compris et l’environnement installé, rendez vous à l’étape 1 pour démarrer le développement de notre premier smart contract, qui sera accessible grâce à une interface web.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.