レッスン1

Introduction au vote décentralisé et à Remix IDE

Bienvenue à la première leçon de notre cours sur la construction d'un système de vote décentralisé. Dans cette leçon, nous allons explorer le concept de vote décentralisé et comprendre les avantages qu'il apporte au processus de vote. Nous vous présenterons également Remix IDE, un outil puissant utilisé pour développer et déployer des contrats intelligents Ethereum.

Vote décentralisé

Le vote décentralisé fait référence à un système de vote qui fonctionne sur une blockchain. L'idée clé ici est de tirer parti de la transparence, de la sécurité et de l'immuabilité offertes par la technologie blockchain pour construire un système de vote difficile à manipuler et facile à vérifier.

Dans un système de vote décentralisé, chaque vote est une transaction sur la blockchain qui peut être vue par tous les participants, mais qui ne peut être modifiée que par l'électeur jusqu'à ce que le vote soit exprimé. Une fois le vote exprimé, il est enregistré sur la blockchain et ne peut être modifié, ce qui constitue un mécanisme de vote transparent et infalsifiable.

Introduction à l'IDE Remix

Remix IDE (Integrated Development Environment) est un outil puissant et open-source conçu spécifiquement pour le développement de contrats intelligents Ethereum. Il s'exécute directement dans votre navigateur web, vous n'avez donc pas besoin d'installer quoi que ce soit sur votre ordinateur.

Vous pouvez accéder à l'IDE Remix à l'adresse https://remix.ethereum.org. Lorsque vous ouvrez Remix dans votre navigateur, vous trouverez trois panneaux :

  1. Panneau de gauche : C'est ici que vous pouvez créer, importer et gérer vos fichiers Solidity. Il comprend également divers plugins pour compiler, tester, déboguer et déployer vos contrats.

  2. Panneau central : Il s'agit de votre éditeur de code. C'est ici que vous écrirez et modifierez votre code Solidity.

  3. Panneau de droite : Ce panneau fournit divers outils pour compiler vos contrats, les déployer sur le réseau Ethereum (soit sur un réseau Ethereum réel, soit sur une simulation VM JavaScript) et interagir avec vos contrats déployés.

Votre premier contrat intelligent

Commençons par un simple contrat "Voter". Ce contrat permet d'assurer le suivi des électeurs dans notre système.

Dans l'IDE Remix, allez dans "File Explorer" et cliquez sur l'icône "+" pour créer un nouveau fichier. Nommez-le Voter.sol.

Commençons maintenant à rédiger notre contrat :

Solidity
// SPDX-License-Identifier : GPL-3.0
pragma solidity >=0.7.0 <0.9.0 ;

contract Voter {
 // Une structure pour représenter une personne
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Un mapping pour garder une trace de tous les électeurs
 mapping(address => Person) public voters ;

 // Une fonction pour enregistrer un électeur
 function registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Identifiant de licence SPDX : La ligne // SPDX-License-Identifier : GPL-3.0 indique que notre contrat utilise la licence publique générale GNU v3.0. Il s'agit d'une licence de logiciel libre couramment utilisée qui garantit aux utilisateurs finaux la liberté d'exécuter, d'étudier, de partager et de modifier le logiciel.

  2. Directive Pragma : L'instruction pragma solidity > =0 .7.0 & lt ;0.9.0 ; spécifie que le contrat est écrit dans une version de Solidity supérieure ou égale à 0.7.0 et inférieure à 0.9.0. Cela permet d'éviter que le contrat soit compilé avec une version plus récente et incompatible du compilateur.

  3. Définition du contrat : Le bloc contrat Voter {...} définit un nouveau contrat nommé Voter. C'est ici que nous spécifions les variables d'état et les fonctions du contrat.

  4. Définition de la structure : Dans le contrat, nous définissons une structure Personne qui représente une personne dans notre système de vote. Chaque personne dispose d'un booléen " voted " qui indique si elle a déjà voté et d'un entier " vote " qui indique la proposition pour laquelle elle a voté.

  5. Variable d'état : L'instruction mapping(address => Person) public voters ; déclare une variable d'état voters qui crée un lien entre une adresse Ethereum et une structure Person. Cela nous permettra de savoir qui a le droit de voter dans le système et quel est son vote. Le mot-clé public crée automatiquement une fonction getter pour les électeurs.

  6. Définition de la fonction : La fonction registerVoter() public {...} définit une fonction publique qui permet aux utilisateurs de s'inscrire comme électeurs dans le système. L'instruction voters[msg.sender].voted = false ; définit le statut de vote du nouveau votant à false.
    C'est tout pour ce contrat ! Au fur et à mesure de l'avancement du cours, nous développerons ce contrat en ajoutant d'autres fonctions pour le processus de vote. N'oubliez pas de compiler et de tester régulièrement votre code pour vous assurer que tout fonctionne comme prévu. Dans l'IDE Remix, vous pouvez compiler votre contrat en cliquant sur l'icône du compilateur Solidity dans la barre latérale gauche (la troisième en partant du haut) et en cliquant ensuite sur le bouton "Compiler".

Dans la prochaine leçon, nous apprendrons à autoriser les électeurs inscrits à voter et à mettre en œuvre la logique d'un système de vote. Mais pour l'instant, jouez avec le contrat et familiarisez-vous avec l'environnement Remix. Vous venez de faire votre premier pas dans le monde du développement de contrats intelligents !

免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。
カタログ
レッスン1

Introduction au vote décentralisé et à Remix IDE

Bienvenue à la première leçon de notre cours sur la construction d'un système de vote décentralisé. Dans cette leçon, nous allons explorer le concept de vote décentralisé et comprendre les avantages qu'il apporte au processus de vote. Nous vous présenterons également Remix IDE, un outil puissant utilisé pour développer et déployer des contrats intelligents Ethereum.

Vote décentralisé

Le vote décentralisé fait référence à un système de vote qui fonctionne sur une blockchain. L'idée clé ici est de tirer parti de la transparence, de la sécurité et de l'immuabilité offertes par la technologie blockchain pour construire un système de vote difficile à manipuler et facile à vérifier.

Dans un système de vote décentralisé, chaque vote est une transaction sur la blockchain qui peut être vue par tous les participants, mais qui ne peut être modifiée que par l'électeur jusqu'à ce que le vote soit exprimé. Une fois le vote exprimé, il est enregistré sur la blockchain et ne peut être modifié, ce qui constitue un mécanisme de vote transparent et infalsifiable.

Introduction à l'IDE Remix

Remix IDE (Integrated Development Environment) est un outil puissant et open-source conçu spécifiquement pour le développement de contrats intelligents Ethereum. Il s'exécute directement dans votre navigateur web, vous n'avez donc pas besoin d'installer quoi que ce soit sur votre ordinateur.

Vous pouvez accéder à l'IDE Remix à l'adresse https://remix.ethereum.org. Lorsque vous ouvrez Remix dans votre navigateur, vous trouverez trois panneaux :

  1. Panneau de gauche : C'est ici que vous pouvez créer, importer et gérer vos fichiers Solidity. Il comprend également divers plugins pour compiler, tester, déboguer et déployer vos contrats.

  2. Panneau central : Il s'agit de votre éditeur de code. C'est ici que vous écrirez et modifierez votre code Solidity.

  3. Panneau de droite : Ce panneau fournit divers outils pour compiler vos contrats, les déployer sur le réseau Ethereum (soit sur un réseau Ethereum réel, soit sur une simulation VM JavaScript) et interagir avec vos contrats déployés.

Votre premier contrat intelligent

Commençons par un simple contrat "Voter". Ce contrat permet d'assurer le suivi des électeurs dans notre système.

Dans l'IDE Remix, allez dans "File Explorer" et cliquez sur l'icône "+" pour créer un nouveau fichier. Nommez-le Voter.sol.

Commençons maintenant à rédiger notre contrat :

Solidity
// SPDX-License-Identifier : GPL-3.0
pragma solidity >=0.7.0 <0.9.0 ;

contract Voter {
 // Une structure pour représenter une personne
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Un mapping pour garder une trace de tous les électeurs
 mapping(address => Person) public voters ;

 // Une fonction pour enregistrer un électeur
 function registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Identifiant de licence SPDX : La ligne // SPDX-License-Identifier : GPL-3.0 indique que notre contrat utilise la licence publique générale GNU v3.0. Il s'agit d'une licence de logiciel libre couramment utilisée qui garantit aux utilisateurs finaux la liberté d'exécuter, d'étudier, de partager et de modifier le logiciel.

  2. Directive Pragma : L'instruction pragma solidity > =0 .7.0 & lt ;0.9.0 ; spécifie que le contrat est écrit dans une version de Solidity supérieure ou égale à 0.7.0 et inférieure à 0.9.0. Cela permet d'éviter que le contrat soit compilé avec une version plus récente et incompatible du compilateur.

  3. Définition du contrat : Le bloc contrat Voter {...} définit un nouveau contrat nommé Voter. C'est ici que nous spécifions les variables d'état et les fonctions du contrat.

  4. Définition de la structure : Dans le contrat, nous définissons une structure Personne qui représente une personne dans notre système de vote. Chaque personne dispose d'un booléen " voted " qui indique si elle a déjà voté et d'un entier " vote " qui indique la proposition pour laquelle elle a voté.

  5. Variable d'état : L'instruction mapping(address => Person) public voters ; déclare une variable d'état voters qui crée un lien entre une adresse Ethereum et une structure Person. Cela nous permettra de savoir qui a le droit de voter dans le système et quel est son vote. Le mot-clé public crée automatiquement une fonction getter pour les électeurs.

  6. Définition de la fonction : La fonction registerVoter() public {...} définit une fonction publique qui permet aux utilisateurs de s'inscrire comme électeurs dans le système. L'instruction voters[msg.sender].voted = false ; définit le statut de vote du nouveau votant à false.
    C'est tout pour ce contrat ! Au fur et à mesure de l'avancement du cours, nous développerons ce contrat en ajoutant d'autres fonctions pour le processus de vote. N'oubliez pas de compiler et de tester régulièrement votre code pour vous assurer que tout fonctionne comme prévu. Dans l'IDE Remix, vous pouvez compiler votre contrat en cliquant sur l'icône du compilateur Solidity dans la barre latérale gauche (la troisième en partant du haut) et en cliquant ensuite sur le bouton "Compiler".

Dans la prochaine leçon, nous apprendrons à autoriser les électeurs inscrits à voter et à mettre en œuvre la logique d'un système de vote. Mais pour l'instant, jouez avec le contrat et familiarisez-vous avec l'environnement Remix. Vous venez de faire votre premier pas dans le monde du développement de contrats intelligents !

免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。