第3课

Créer et gérer des contrats intelligents dans Vyper

Vous avez créé une base solide pour la programmation de la blockchain avec Vyper en terminant ce cours. Vous avez maintenant une solide compréhension d'Ethereum, des contrats intelligents, et comment les créer dans l'IDE Remix avec Vyper. Cette compréhension ouvre un monde d'opportunités pour développer des applications décentralisées et participer à l'écosystème de la blockchain.

Introduction

Bienvenue à la leçon 3 ! Dans cette leçon, nous allons nous concentrer sur l'application des concepts et de la syntaxe que nous avons appris dans les leçons précédentes pour développer des contrats intelligents Ethereum en utilisant Vyper avec l'IDE Remix. Nous allons créer, déployer et interagir avec des contrats intelligents simples, ce qui vous permettra d'acquérir une expérience pratique avec Vyper et Ethereum. Le premier contrat sera un simple contrat de stockage de données, tandis que le second simulera un système de vote de base.

SimpleStorage : Introduction aux contrats intelligents

Le premier contrat que nous allons déployer est SimpleStorage. Ce contrat, comme son nom l'indique, est un simple contrat de stockage de données qui stocke un seul nombre. SimpleStorage se compose d'une variable storedData et de deux fonctions, set et get. La fonction set permet à un utilisateur de stocker un numéro, et la fonction get permet à quiconque de récupérer ce numéro.

Déploiement et interaction avec SimpleStorage

Nous allons passer en revue les étapes pour déployer et interagir avec le contrat SimpleStorage sur la blockchain Ethereum. Le déploiement d'un contrat sur la blockchain Ethereum consiste à transmettre le bytecode et l'ABI du contrat au réseau Ethereum, d'où il peut être appelé et exécuté. Une fois qu'un contrat est déployé, il reçoit une adresse unique à laquelle il peut être joint.

Voici le code de SimpleStorage:

Python
# @title SimpleStorage
storedData : int128

@external
def set(x : int128) :
 self.storedData = x

@external
def get() -> int128 :
 return self.storedData

Dans ce contrat, nous définissons une variable publique entière storedData, une fonction publique set(x : int128) pour fixer la valeur de storedData, et une fonction constante publique get() -> int128 pour récupérer la valeur actuelle de storedData.

Voici un guide étape par étape sur la façon de déployer ce contrat à l'aide de Remix :

  1. Ouvrez votre navigateur web et naviguez vers Remix Ethereum IDE.

  2. Activez le plugin Vyper

  3. Passez l'environnement à Injected Web3 dans la section Deploy & Run Transactions. Ceci connectera Remix à votre portefeuille MetaMask.

  4. Dans la section Explorateur de fichiers, cliquez sur l'icône + pour créer un nouveau fichier. Nommez-le SimpleStorage.vy.

  5. Collez le code du contrat SimpleStorage dans ce nouveau fichier.

  6. Allez maintenant dans l'ongletVyperCompile et sélectionnez le contrat SimpleStorage.

  7. Passez à l'onglet Déployer & Run Transactions, puis cliquez sur le bouton Déployer.

  8. MetaMask ouvre une fenêtre contextuelle de confirmation de la transaction. Confirmez la transaction.

  9. Une fois la transaction confirmée, vous verrez le contrat SimpleStorage déployé dans la section Contrats déployés.

  10. Vous pouvez maintenant interagir avec le contrat. Par exemple, pour enregistrer un numéro, entrez le numéro dans la fonction set et cliquez sur transact. Pour récupérer le numéro enregistré, cliquez sur obtenir.

SimpleVoting : Un contrat plus complexe

Après nous être familiarisés avec SimpleStorage, nous allons passer à quelque chose d'un peu plus complexe : SimpleVoting. Le contrat SimpleVoting simulera un système de vote simple. Nous aurons une liste de candidats, chacun représenté par une chaîne de caractères. Les utilisateurs pourront voter pour ces candidats, et nous tiendrons compte du nombre de votes reçus par chaque candidat. Le contrat fournira des fonctions permettant d'ajouter un candidat, de voter pour un candidat et d'obtenir le nombre total de voix obtenues par un candidat.

Déployer et interagir avec SimpleVoting

Le contrat SimpleVoting est un peu plus complexe que SimpleStorage. Dans SimpleVoting, nous disposons d'une liste de candidats, chacun étant représenté par une chaîne de caractères.

Voici le code de SimpleVoting:

Python
# Contrat de vote Vyper

# Déclarez une variable d'état `votes` en tant que HashMap pour stocker les votes pour chaque candidat.
votes : HashMap[bytes32, uint256]

@external
def vote(candidate : bytes32) :
   """
    Votez pour un candidat.

    Arguments :
 candidate : bytes32 - L'identifiant du candidat pour lequel voter.
    """
   # Incrémente le nombre de votes pour le candidat spécifié.
    self.votes[candidat] += 1

@external
@view
def get_votes(candidate : bytes32) -> uint256 :
 " " " 
 Obtient le nombre total de votes pour un candidat.

    Arguments :
 candidate : bytes32 - L'identifiant du candidat pour lequel les votes doivent être récupérés.

    Returns :
 uint256 - Le nombre total de votes que le candidat a reçu.
    """
   return self.votes[candidate]

Ce contrat est assez basique, sans précautions contre le double vote ou le vote non autorisé. Dans la pratique, vous devrez prévoir des procédures pour éviter ces difficultés, telles que l'inscription des électeurs et la vérification que chaque adresse ne peut être utilisée qu'une seule fois.

Conclusion et prochaines étapes

Vous avez créé une base solide pour la programmation de la blockchain avec Vyper en terminant ce cours. Vous avez maintenant une solide compréhension d'Ethereum, des contrats intelligents, et comment les créer dans l'IDE Remix avec Vyper. Cette compréhension ouvre un monde d'opportunités pour développer des applications décentralisées et participer à l'écosystème de la blockchain.

Pour améliorer vos compétences et vos connaissances, envisagez d'explorer les domaines suivants :

  1. Programmation avancée de Solidity : Solidity est un autre langage de programmation populaire pour les contrats intelligents Ethereum. L'apprentissage de Solidity élargira votre capacité à travailler avec des contrats existants et à contribuer à la communauté Ethereum. Consultez notre cours ici :[insérez le lien du cours Solidity lorsque vous êtes en ligne]

  2. Développement d'applications décentralisées (DApp) : Plongez plus profondément dans la construction d'applications décentralisées complètes en combinant les contrats intelligents avec le développement frontal à l'aide de frameworks tels que Web3.js, React, ou Vue.js. Cela vous permettra de créer des interfaces utilisateur interactives qui interagissent avec vos contrats intelligents.

  3. Sécurité et audit : Explorez les meilleures pratiques pour sécuriser les contrats intelligents et mener des audits de code approfondis. Comprendre les vulnérabilités potentielles et atténuer les risques garantira la fiabilité et la sécurité de vos contrats intelligents.

  4. Interopérabilité de la blockchain : Étudier l'intégration de différents réseaux et protocoles de blockchain. Découvrez la communication inter-chaînes et le développement de contrats intelligents interopérables qui peuvent interagir avec plusieurs blockchains.
    N'oubliez pas que la technologie blockchain est en constante évolution et qu'il est crucial de se tenir au courant des dernières avancées. Engagez-vous auprès de la communauté blockchain, participez activement aux discussions et explorez les nouveaux concepts et technologies pour rester informé et à jour.

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第3课

Créer et gérer des contrats intelligents dans Vyper

Vous avez créé une base solide pour la programmation de la blockchain avec Vyper en terminant ce cours. Vous avez maintenant une solide compréhension d'Ethereum, des contrats intelligents, et comment les créer dans l'IDE Remix avec Vyper. Cette compréhension ouvre un monde d'opportunités pour développer des applications décentralisées et participer à l'écosystème de la blockchain.

Introduction

Bienvenue à la leçon 3 ! Dans cette leçon, nous allons nous concentrer sur l'application des concepts et de la syntaxe que nous avons appris dans les leçons précédentes pour développer des contrats intelligents Ethereum en utilisant Vyper avec l'IDE Remix. Nous allons créer, déployer et interagir avec des contrats intelligents simples, ce qui vous permettra d'acquérir une expérience pratique avec Vyper et Ethereum. Le premier contrat sera un simple contrat de stockage de données, tandis que le second simulera un système de vote de base.

SimpleStorage : Introduction aux contrats intelligents

Le premier contrat que nous allons déployer est SimpleStorage. Ce contrat, comme son nom l'indique, est un simple contrat de stockage de données qui stocke un seul nombre. SimpleStorage se compose d'une variable storedData et de deux fonctions, set et get. La fonction set permet à un utilisateur de stocker un numéro, et la fonction get permet à quiconque de récupérer ce numéro.

Déploiement et interaction avec SimpleStorage

Nous allons passer en revue les étapes pour déployer et interagir avec le contrat SimpleStorage sur la blockchain Ethereum. Le déploiement d'un contrat sur la blockchain Ethereum consiste à transmettre le bytecode et l'ABI du contrat au réseau Ethereum, d'où il peut être appelé et exécuté. Une fois qu'un contrat est déployé, il reçoit une adresse unique à laquelle il peut être joint.

Voici le code de SimpleStorage:

Python
# @title SimpleStorage
storedData : int128

@external
def set(x : int128) :
 self.storedData = x

@external
def get() -> int128 :
 return self.storedData

Dans ce contrat, nous définissons une variable publique entière storedData, une fonction publique set(x : int128) pour fixer la valeur de storedData, et une fonction constante publique get() -> int128 pour récupérer la valeur actuelle de storedData.

Voici un guide étape par étape sur la façon de déployer ce contrat à l'aide de Remix :

  1. Ouvrez votre navigateur web et naviguez vers Remix Ethereum IDE.

  2. Activez le plugin Vyper

  3. Passez l'environnement à Injected Web3 dans la section Deploy & Run Transactions. Ceci connectera Remix à votre portefeuille MetaMask.

  4. Dans la section Explorateur de fichiers, cliquez sur l'icône + pour créer un nouveau fichier. Nommez-le SimpleStorage.vy.

  5. Collez le code du contrat SimpleStorage dans ce nouveau fichier.

  6. Allez maintenant dans l'ongletVyperCompile et sélectionnez le contrat SimpleStorage.

  7. Passez à l'onglet Déployer & Run Transactions, puis cliquez sur le bouton Déployer.

  8. MetaMask ouvre une fenêtre contextuelle de confirmation de la transaction. Confirmez la transaction.

  9. Une fois la transaction confirmée, vous verrez le contrat SimpleStorage déployé dans la section Contrats déployés.

  10. Vous pouvez maintenant interagir avec le contrat. Par exemple, pour enregistrer un numéro, entrez le numéro dans la fonction set et cliquez sur transact. Pour récupérer le numéro enregistré, cliquez sur obtenir.

SimpleVoting : Un contrat plus complexe

Après nous être familiarisés avec SimpleStorage, nous allons passer à quelque chose d'un peu plus complexe : SimpleVoting. Le contrat SimpleVoting simulera un système de vote simple. Nous aurons une liste de candidats, chacun représenté par une chaîne de caractères. Les utilisateurs pourront voter pour ces candidats, et nous tiendrons compte du nombre de votes reçus par chaque candidat. Le contrat fournira des fonctions permettant d'ajouter un candidat, de voter pour un candidat et d'obtenir le nombre total de voix obtenues par un candidat.

Déployer et interagir avec SimpleVoting

Le contrat SimpleVoting est un peu plus complexe que SimpleStorage. Dans SimpleVoting, nous disposons d'une liste de candidats, chacun étant représenté par une chaîne de caractères.

Voici le code de SimpleVoting:

Python
# Contrat de vote Vyper

# Déclarez une variable d'état `votes` en tant que HashMap pour stocker les votes pour chaque candidat.
votes : HashMap[bytes32, uint256]

@external
def vote(candidate : bytes32) :
   """
    Votez pour un candidat.

    Arguments :
 candidate : bytes32 - L'identifiant du candidat pour lequel voter.
    """
   # Incrémente le nombre de votes pour le candidat spécifié.
    self.votes[candidat] += 1

@external
@view
def get_votes(candidate : bytes32) -> uint256 :
 " " " 
 Obtient le nombre total de votes pour un candidat.

    Arguments :
 candidate : bytes32 - L'identifiant du candidat pour lequel les votes doivent être récupérés.

    Returns :
 uint256 - Le nombre total de votes que le candidat a reçu.
    """
   return self.votes[candidate]

Ce contrat est assez basique, sans précautions contre le double vote ou le vote non autorisé. Dans la pratique, vous devrez prévoir des procédures pour éviter ces difficultés, telles que l'inscription des électeurs et la vérification que chaque adresse ne peut être utilisée qu'une seule fois.

Conclusion et prochaines étapes

Vous avez créé une base solide pour la programmation de la blockchain avec Vyper en terminant ce cours. Vous avez maintenant une solide compréhension d'Ethereum, des contrats intelligents, et comment les créer dans l'IDE Remix avec Vyper. Cette compréhension ouvre un monde d'opportunités pour développer des applications décentralisées et participer à l'écosystème de la blockchain.

Pour améliorer vos compétences et vos connaissances, envisagez d'explorer les domaines suivants :

  1. Programmation avancée de Solidity : Solidity est un autre langage de programmation populaire pour les contrats intelligents Ethereum. L'apprentissage de Solidity élargira votre capacité à travailler avec des contrats existants et à contribuer à la communauté Ethereum. Consultez notre cours ici :[insérez le lien du cours Solidity lorsque vous êtes en ligne]

  2. Développement d'applications décentralisées (DApp) : Plongez plus profondément dans la construction d'applications décentralisées complètes en combinant les contrats intelligents avec le développement frontal à l'aide de frameworks tels que Web3.js, React, ou Vue.js. Cela vous permettra de créer des interfaces utilisateur interactives qui interagissent avec vos contrats intelligents.

  3. Sécurité et audit : Explorez les meilleures pratiques pour sécuriser les contrats intelligents et mener des audits de code approfondis. Comprendre les vulnérabilités potentielles et atténuer les risques garantira la fiabilité et la sécurité de vos contrats intelligents.

  4. Interopérabilité de la blockchain : Étudier l'intégration de différents réseaux et protocoles de blockchain. Découvrez la communication inter-chaînes et le développement de contrats intelligents interopérables qui peuvent interagir avec plusieurs blockchains.
    N'oubliez pas que la technologie blockchain est en constante évolution et qu'il est crucial de se tenir au courant des dernières avancées. Engagez-vous auprès de la communauté blockchain, participez activement aux discussions et explorez les nouveaux concepts et technologies pour rester informé et à jour.

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。