Comment rédiger et déployer votre premier contrat intelligent ?
Publié: 2020-02-13Les contrats intelligents sont une tendance majeure de la technologie Blockchain aujourd'hui. Si vous songez à bâtir une carrière dans le domaine, cet article vous aidera avec tout ce que vous devez savoir pour rédiger votre premier contrat intelligent !
Apprenez des cours de logiciels en ligne dans les 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
Comment rédiger votre premier contrat intelligent ?
L'ère numérique d'aujourd'hui a permis à deux parties de conclure des accords sans l'intervention d'un tiers. Ces contrats numériques sont traités par la blockchain et stockés sur une base de données publique. Ainsi, les transactions sont traçables et irréversibles.
Si vous souhaitez rédiger votre premier contrat intelligent , les ressources compilées ci-dessous vous mettront sur la bonne voie.
Lire : 10 tendances et prévisions de la blockchain pour 2020
Définir les contrats intelligents
Le terme "contrat intelligent" a été proposé pour la première fois par l'informaticien américain Nick Szabo en 1996. Il s'agit d'un protocole informatique ou numérique qui facilite, vérifie et applique l'exécution d'un contrat. En tant que calcul à usage général, un contrat intelligent réside sur une Blockchain ou un registre distribué.

En d'autres termes, le contrat est intégré au code sous la forme d'un programme informatique. Et les acteurs désignés reçoivent l'autorisation d'exécuter la fonction du programme. Les règles prédéfinies doivent être respectées pour la bonne exécution du contrat intelligent.
Prenez un bon de commande (PO), par exemple. C'est un simple contrat entre un acheteur et un vendeur. Certaines conditions doivent être remplies pour l'exécution du PO. Ces spécifications comprennent le paiement réussi par l'acheteur, la livraison des marchandises par le fournisseur selon les conditions convenues au moment de l'achat, les conditions de retour, etc.
Ainsi, l'acheteur peut passer une commande et le fournisseur peut exécuter la commande au format numérique. Sur un réseau informatique, toutes les actions sont appelées transactions. Et toutes les transactions sont vérifiées et appliquées par le réseau. Une fois confirmées, les transactions ne peuvent pas être annulées.
Lire : Prérequis pour apprendre Blockchain. Ce n'est pas ce que vous pensez que c'est
Conditions requises pour la configuration d'un contrat intelligent
Différents langages de programmation sont disponibles pour créer des contrats intelligents. Le choix de la langue dépend principalement de la plateforme blockchain. Par exemple, Solidity, Vyper, eWASM et Ethereum bytecode sont quelques-uns des langages de contrats intelligents les plus populaires pour la plate-forme blockchain Ethereum.
Environnement de développement de contrats intelligents
Avant de rédiger votre premier contrat intelligent , installez le terrain de jeu pour son développement. Aller plus loin dans le monde de la blockchain serait délicat sans la connaissance des environnements de développement. Vous pouvez choisir parmi les alternatives suivantes.
- Remix IDE : Il s'agit d'un environnement de développement intégré pour créer et tester des contrats intelligents. Cette option entièrement en ligne est fortement recommandée pour les débutants, car elle ne nécessite aucune installation. De plus, cela pose moins de défis pour le prototypage et la validation rapide des contrats intelligents.
- Configuration locale : les machines locales fournissent une autre ressource pour le développement de contrats intelligents. Les outils offrent une plus grande flexibilité pour les applications d'entreprise. Et bien que la configuration de cet environnement prenne du temps, la sélection d'outils pour les applications distribuées ou DApps est un processus relativement simple.
Structure d'un contrat intelligent
Explorons un contrat de bon de commande développé à l'aide du langage de programmation Solidity.
Un contrat intelligent Solidity suit une structure standard, comprenant des « données » et une « fonction ». Alors que les données maintiennent l'état actuel du contrat intelligent, la fonction applique une logique pour faire passer cet état.
Le contrat commence par la déclaration appelée « directive pragma ». Le mot-clé "pragma" active les vérifications ou fonctionnalités du compilateur. Considérez la déclaration ci-dessous:
pragma solidité >=0.4.0 <=0.6.0
La déclaration vise à garantir que le contrat intelligent ne sera pas compilé avec une version du compilateur antérieure à 0.40 et postérieure à 0.60.
Vient ensuite la « déclaration de contrat ». L'instruction suivante utilise le mot-clé « contrat » et identifie un contrat vide par le nom « Bon de commande ».
contrat bon de commande{}
Stocker des données
Chaque contrat ou programme informatique contient des données stockées. Les variables permettent de stocker, d'étiqueter, de récupérer et de manipuler les données. Il existe deux types de variables dans Solidité - Valeur et Référence. Les variables de type valeur sont toujours copiées lorsqu'elles sont utilisées comme arguments de fonction, tels que les booléens, les entiers, etc.
Alors que les variables de type référence stockent l'emplacement des données. Tout changement dans une variable de référence affecte une autre variable. Par conséquent, ils doivent être gérés avec soin. Les exemples incluent les tableaux et les structures.
Ajout de données
Dans un bon de commande, une quantité de produit est généralement associée. Alors, maintenant, ajoutons une variable de données au contrat intelligent. Nous ajouterons une variable product_quantity en supposant qu'elle n'aura que des valeurs positives.
Tout d'abord, nous introduisons un entier non signé représenté par uint256. Ici, non signé (u) signifie le type de variable qui ne peut représenter que des entiers positifs, et 256 signifie le stockage de 256 bits.
contrat Bon de commande{uint256 product_quantity;}
Constructeur
Le constructeur initialise le contrat intelligent avec certaines valeurs lorsque le contrat est déployé. Supposons que la quantité de produit soit fixée à 100.

constructeur() public{product_quantity = 100;}
A noter que le mot clé ou modificateur d'accès « public » précise que la fonction n'est pas restreinte. Ainsi, il est accessible à tous.
Ajouter des fonctions
L'ajout de fonctions rend votre programme interactif. Ce sont des capacités contrôlées précédées du mot-clé « fonction ». La déclaration inclut le nom de la fonction, le modificateur d'accès, le mutateur d'état et la valeur de retour.
Pour lire la valeur stockée, nous ajoutons la "fonction get". Avec "get_quantity", cette fonction obtient la capacité de récupérer ou de lire les données stockées. Regardez la déclaration ci-dessous.
fonction get_quantity () la vue publique renvoie (uint256) {return product_quantity ;}
En le décomposant davantage, nous voyons que:
- Nom de la fonction : get_quantity (Le "()" signifie qu'aucun paramètre n'est passé)
- Modificateur d'accès : public (l'accès n'est pas restreint)
- State Mutator : view (indique que la fonction ne change pas l'état du contrat, mais seulement le lit)
- Renvoie : définit ce qui est renvoyé par la fonction, c'est-à-dire une variable de type uint256
Fonctions de réglage
La fonction setter entre en jeu lorsque vous souhaitez écrire ou mettre à jour les données. Cette fonction prend un paramètre d'entrée de l'utilisateur, sur la base duquel elle met à jour la valeur de la variable "product_quantity". La fonction set (update_quantity) est branchée comme ceci :
update_quantity(uint256 value) public {product_quantity = product_quantity + value;}
Maintenant, branchez toutes les déclarations données ci-dessus pour rédiger votre premier contrat intelligent .

Déployer le contrat intelligent
Une fois que vous avez terminé les étapes mentionnées précédemment, il est temps de tester votre contrat intelligent. Vous pouvez faire la même chose en utilisant Remix IDE, qui fournit la capacité du compilateur Solidity pour créer, tester et valider votre contrat intelligent en ligne.
Voici les instructions par étapes pour concevoir et déployer un contrat intelligent avec Remix Online IDE :
- Cliquez sur l'icône plus pour créer un nouveau fichier (vide)
- Cliquez pour ouvrir le fichier vide
- Collez votre contrat dans ce fichier
- Allez dans le menu de gauche et cliquez sur la deuxième icône, juste en dessous de l'icône du fichier. Avec cela, l'option du compilateur de solidité apparaîtra
- Accédez à l'étiquette du compilateur pour sélectionner la version du compilateur
- Cliquez sur le fichier pour compiler le contrat intelligent
- Après la compilation, cliquez sur le bouton Détails du compilateur pour comprendre le bytecode et l'interface binaire de l'application. Le bytecode contient le code opérationnel d'Ethereum et la logique de contrat intelligent après conversion et compilation
- Dans le menu de gauche, cliquez sur l'icône sous l'icône de compilation pour déployer votre contrat intelligent
Interagir avec le contrat déployé
Les méthodes publiques mentionnées dans le contrat permettent d'interagir avec le contrat déployé. Dans le cadre du bon de commande, « update_quantity » et « get_quantity » sont les deux méthodes d'interaction disponibles. Vous pouvez également saisir vos paramètres à l'aide de la zone de saisie. N'oubliez pas que toute opération qui modifie les variables du contrat entraînera une transaction.
Avec cela, nous avons couvert les bases de la rédaction de votre premier contrat intelligent et comment le tester et le déployer à l'aide du langage de programmation Solidity dans un environnement de développement en ligne. Nous avons également compris le processus d'interaction avec un contrat intelligent et d'initiation de transactions. Alors, appliquez votre apprentissage et créez un contrat intelligent dès aujourd'hui. Après tout, la pratique rend parfait !
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 êtes intéressé à devenir un développeur de blockchain et à créer des contrats intelligents et des codes de chaîne, consultez le programme de certificat avancé de IIIT-B & upGrad en technologie blockchain
Quelles sont les applications possibles des contrats intelligents ?
Les contrats intelligents sont des programmes informatiques qui exécutent automatiquement les conditions d'un contrat. Ils utilisent la technologie blockchain, qui est une base de données distribuée qui permet des transactions sécurisées, transparentes et infalsifiables. La location de voitures, les réservations d'hôtel et les billets d'événement ne sont que quelques exemples de la manière dont les contrats intelligents peuvent être utilisés.
Pourquoi les contrats intelligents sont-ils considérés comme plus sûrs que les contrats réguliers ?
Parce que les contrats intelligents sont mis en œuvre sur un réseau blockchain, ils sont considérés comme plus sûrs que les contrats traditionnels. Une blockchain est une base de données distribuée sécurisée par cryptographie. Cela signifie que les informations sur la blockchain ne peuvent pas être altérées ou piratées. En conséquence, l'exécution d'un contrat intelligent est garantie d'être précise et fiable. Ils sont également publics et auditables, ce qui signifie que tout le monde sur la blockchain peut consulter les conditions du contrat et vérifier qu'il est exécuté. D'autre part, les contrats intelligents peuvent aider à réduire le risque de fraude et de conflits. L'essentiel est qu'ils ont beaucoup de fonctionnalités et qu'ils sont faciles à utiliser.
Pourquoi les contrats intelligents deviennent-ils de plus en plus populaires ?
L'un des avantages les plus essentiels des contrats intelligents est qu'ils peuvent aider les organisations à automatiser les procédures et à réduire les coûts. Par exemple, une entreprise peut utiliser un accord intelligent pour payer ses fournisseurs immédiatement après une livraison. Cela réduirait la nécessité pour l'entreprise de traiter les paiements manuellement, ce qui permettrait d'économiser du temps et de l'argent. Il peut également être utilisé pour instaurer la confiance entre les entreprises et leurs clients. Par exemple, un contrat intelligent pourrait être utilisé pour construire un système de paiement en ligne sécurisé. Cela permettrait aux clients d'effectuer des paiements sans craindre que leurs informations personnelles ne soient compromises. Enfin et surtout, il peut être utilisé pour construire des identités numériques pour les personnes et les entreprises. Les entreprises seraient en mesure d'authentifier l'identité de leurs clients et de les protéger ainsi contre la fraude.