Ce texte a été traduit automatiquement et peut donc différer de l'original. Aucun droit ne peut être dérivé de cette traduction.
Relevez vos manches!
Au travail : de quoi avez-vous besoin ?
Pour mettre en place une blockchain simple, vous pouvez utiliser des logiciels gratuits disponibles sur Internet. Ces logiciels sont généralement compatibles avec les ordinateurs Windows et Mac. Dans cet exemple, nous utiliserons la plateforme Ethereum. Ethereum est une blockchain publique à laquelle vous accédez en utilisant la monnaie numérique "ether". Dans cet exemple, nous utilisons le logiciel basé sur la blockchain Ethereum pour créer notre propre version privée.
Installation du client
Pour commencer, vous avez besoin d'un client. Il s'agit d'un logiciel qui gère la communication blockchain avec d'autres ordinateurs (« nœuds »). En démarrant le client, vous participez à la blockchain et pouvez stocker de nouveaux contrats dans la blockchain. Téléchargez le client 'Go Ethereum' à partir de cette page et installez-le. Après cela, vérifiez si le client a été correctement installé. Pour ce faire, allez dans le menu Démarrer, exécutez 'cmd' suivi de 'OK' (les utilisateurs Mac ouvrent le programme 'Terminal' dans le dossier Utilitaires du dossier Applications - les autres instructions restent les mêmes). Dans la fenêtre qui s'ouvre, saisissez 'geth version' puis appuyez sur Entrée. Si tout s'est bien passé, vous verrez s'afficher la version installée de Go-Ethereum.

Le début de la chaîne : le genesis de la blockchain
Une fois le logiciel installé, il est temps de commencer à construire la blockchain. Comme mentionné précédemment, une blockchain est une chaîne de "blocs". Le premier bloc est appelé le "bloc genesis" et est spécial car c'est le premier bloc en lequel tous les participants ont confiance sans autre vérification. Tous les blocs suivants après le bloc genesis font partie de la blockchain.
Tout d'abord, téléchargez le fichier genesis.json et placez-le sur le bureau. Ce fichier décrit la structure du bloc genesis. Ensuite, exécutez la commande suivante dans l'invite de commande :
geth –datadir %USERPROFILE%/Desktop/data –networkid 3336 init %USERPROFILE%/Desktop/genesis.json

Si tout s'est bien passé, un message indiquant que le bloc genesis a été créé avec succès apparaîtra. Un dossier "data" apparaîtra sur le bureau, c'est là que le client stockera toutes les données nécessaires pour participer à la blockchain.
Maintenant que le bloc genesis a été créé, il est temps de démarrer la blockchain ! Utilisez la commande suivante :
geth –datadir %USERPROFILE%/Desktop/data –ipcpath ./geth.ipc –rpc –rpccorsdomain “*” –networkid 3336

Lorsque le message 'IPC endpoint opened' apparaît, le client est prêt à être utilisé. Vous pouvez arrêter le client en appuyant sur 'Ctrl-C' dans l'invite de commande. Maintenant, il est temps d'utiliser réellement la blockchain. Vous pouvez le faire de plusieurs façons ; d'abord, vous pouvez accéder à la blockchain via la 'console'. Il s'agit d'un environnement dans lequel vous pouvez exécuter des commandes pour interagir avec la blockchain. Laissez le client fonctionner, ouvrez une nouvelle fenêtre de commande (Démarrer, Exécuter, cmd ou Terminal sur Mac) et entrez la commande suivante :
geth attach \\.\pipe\geth.ipc
Si tout va bien, vous verrez apparaître "Welcome to the Geth JavaScript console!" et quelques numéros de version. Tout d'abord, vous devez créer un compte - un compte vous donne accès à la blockchain. Un compte est protégé par un mot de passe. Pour créer un compte, utilisez la commande suivante :
personal.newAccount()
Ensuite, à chaque redémarrage du client, vous devrez ouvrir (« déverrouiller ») le compte. Vous pouvez le faire avec la commande suivante (elle vous demandera le mot de passe choisi) :
personal.unlockAccount(personal.listAccounts[0])
Pour que le client ajoute des blocs à la chaîne, il doit être "miné". Vous démarrez le processus de minage comme suit :
miner.setEtherbase(personal.listAccounts[0]) miner.start(1)
Étant donné que le minage nécessite beaucoup de puissance de calcul, nous choisissons ici de limiter la vitesse - le chiffre '1' signifie qu'un seul processeur de votre ordinateur est utilisé pour le minage. Dans un "véritable" réseau, vous utiliserez toute votre puissance de calcul. Lorsque vous commencez le minage pour la première fois, il faut un certain temps avant que les blocs n'apparaissent réellement (dans le client, vous verrez plusieurs fois "Generating DAG" s'afficher). Ensuite, vous devriez voir un nouveau bloc apparaître toutes les quelques secondes :

Comme le minage de blocs a été configuré pour être facile dans le fichier genesis, de nouveaux blocs apparaissent rapidement. Dans une blockchain "réelle", le minage est plus difficile et les blocs apparaissent plus lentement. Cependant, pour tester une blockchain, il est préférable que les blocs apparaissent rapidement - vos contrats intelligents seront ainsi traités plus rapidement.
Vous pouvez quitter la console en tapant 'exit'. Il n'est pas nécessaire de fermer la console immédiatement.
Écriture de contrats intelligents
Pour écrire des contrats intelligents et les déployer dans la blockchain, vous utiliserez l'environnement de programmation Solidity. Téléchargez Solidity via ce lien - extrayez le fichier zip et double-cliquez sur le fichier 'index.html'. Si tout se passe bien, un champ texte vide apparaîtra :

Vous devez informer l'éditeur Solidity qu'il peut se connecter à notre propre blockchain (via notre propre client). Pour ce faire, allez à l'onglet 'Contrat' et choisissez 'Fournisseur Web3' sous 'Sélectionner l'environnement d'exécution'. Passez ensuite par toutes les notifications.
Vous êtes maintenant prêt à rédiger votre premier contrat intelligent ! Dans les prochains articles, nous approfondirons différents contrats intelligents. Ci-dessous, voici un contrat très simple qui ne fait pratiquement rien, mais qui nous permettra de tester si la blockchain fonctionne :
pragma solidity ^0.4.0; contract Hello { address public owner; function Hello() { owner = msg.sender; } // No payments can be sent function () { throw; } }
Que signifie ceci ? La première ligne indique simplement la version du langage de programmation que nous voulons utiliser (0.4.0). Ensuite, le contrat démarre ("contrat Hello"). La ligne ‘address public owner’ indique qu'il y a une information stockée dans ce contrat, c'est l'adresse (le "numéro de compte") de la personne qui a créé le contrat. La fonction ‘Hello’ indique ce qui doit se passer lorsque ce contrat est créé. Pour l'instant, nous enregistrons simplement qui a créé le contrat, dans le champ d'adresse mentionné précédemment. Enfin, quelques lignes garantissent qu'aucun argent de la blockchain ne peut être envoyé au contrat.
Le code d'un contrat doit être vu comme un plan - vous pouvez instancier un ou plusieurs contrats qui fonctionnent selon le code (tout comme dans le monde des contrats "normaux", il peut y avoir plusieurs "contrats d'achat" portant sur différentes maisons, mais qui se ressemblent tous en termes de forme).
Pour conclure un nouveau contrat, cliquez sur 'Créer' dans Solidity sur l'onglet 'Contrat'. Normalement, il devrait d'abord afficher 'en attente de la publication de la transaction'. Il se peut qu'une erreur apparaisse - dans ce cas, votre compte a pu se "verrouiller" à nouveau. Exécutez à nouveau la commande 'personal.unlockAccount(personal.listAccounts[0]))' dans la console. Si tout se passe bien, vous verrez finalement apparaître un bloc "Untitled:Hello at" suivi d'un long nombre. Ce nombre est l'adresse du contrat, en fait le "numéro de contrat". Avec ce numéro, vous pouvez effectuer des actions spécifiques avec le contrat - nous y reviendrons plus tard. Dans le bloc lui-même, vous trouverez les propriétés du contrat, y compris le numéro de compte du "propriétaire". Pour l'instant, nous nous arrêtons là - vous avez créé votre premier contrat intelligent!

En conclusion
Sur la base de votre propre blockchain, vous pouvez en principe construire toutes sortes d'applications basées sur des contrats intelligents. Cependant, cela ne signifie pas forcément qu'il est judicieux d'utiliser votre propre blockchain à cette fin. La première question à vous poser est de savoir si l'utilisation d'une blockchain est vraiment nécessaire. Lorsque toutes les parties qui doivent échanger des informations et conclure des accords se font entièrement confiance, une simple base de données partagée est suffisante. Si vous souhaitez quand même utiliser une blockchain, il est préférable de vous connecter à des blockchains existantes : celles-ci ont la masse critique pour maximiser les avantages des blockchains.