Académique Documents
Professionnel Documents
Culture Documents
Objectifs du Projet
Le but de ce projet était de créer et déployer un smart contract sur le réseau de test Goerli en utilisant le
langage solidity.
Méthodologie
Pour atteindre cet objectif, nous avons utilisé plusieurs outils et technologies, notamment Metamask, Infura
et Remix.
Metamask
Metamask est une extension de navigateur qui permet aux utilisateurs d’interagir avec le réseau Ethereum
et de gérer leurs portefeuilles de cryptomonnaies. Nous avons installé Metamask, créé une phrase de
récupération et ajouté Goerli GoETH au portefeuille.
Cette ressource joue un rôle crucial dans le cycle de développement blockchain en offrant un moyen pratique
d'acquérir des fonds de test nécessaires pour évaluer et perfectionner les fonctionnalités des applications
blockchain dans un environnement simulé, sans exposer les utilisateurs aux coûts réels associés à l'utilisation
du réseau principal Ethereum.
Infura
Infura est un service tiers qui offre une interface simplifiée vers les nœuds du réseau Ethereum. Les nœuds
sont des ordinateurs qui font partie du réseau Ethereum et qui stockent une copie de toutes les transactions
passées sur la blockchain. En utilisant Infura, les développeurs peuvent éviter de gérer leurs propres nœuds
Ethereum et accéder facilement à des fonctionnalités telles que la lecture de données, la création de contrats
intelligents, et l'envoi de transactions.
Remix IDE
Remix est un environnement de développement intégré (IDE) en ligne conçu pour simplifier et faciliter le
processus de développement de contrats intelligents sur la blockchain Ethereum. Il offre une interface
utilisateur conviviale qui permet aux développeurs de créer, déployer et tester des contrats intelligents de
manière efficace. Voici quelques points clés sur Remix :
• IDE en ligne : Remix fonctionne entièrement dans le navigateur web, ce qui signifie qu'aucune installation
n'est nécessaire sur l'ordinateur local. Cela rend l'accès au développement de contrats intelligents rapide et
pratique.
• Prise en charge de Solidity : Solidity est le langage de programmation le plus couramment utilisé pour écrire
des contrats intelligents sur la blockchain Ethereum. Remix offre un support complet pour Solidity,
permettant aux développeurs de coder, compiler et déployer des contrats intelligents directement depuis
l'interface.
• Environnement de test intégré : Remix propose un environnement de test intégré qui permet aux
développeurs de tester leurs contrats intelligents dans des environnements de test tels que le réseau de test
Goerli ou d'autres réseaux de test Ethereum. Cela permet de détecter et de résoudre les erreurs avant de
déployer les contrats sur le réseau principal.
• Explorateur de contrats intelligents : Remix propose un explorateur de contrats intelligents qui facilite
l'interaction avec les contrats déjà déployés sur la blockchain. Les développeurs peuvent examiner l'état du
contrat, appeler des fonctions, et explorer les transactions associées.
• Intégration avec Infura : Remix peut être intégré avec des services tels qu'Infura, qui offre un accès simplifié
aux nœuds Ethereum. Cela permet aux développeurs de déployer et de tester leurs contrats intelligents sur
des réseaux Ethereum, y compris des réseaux de test comme Goerli.
Réalisation
1. Installation de Metamask : Installez l’extension Metamask sur votre navigateur. Créez un nouveau
portefeuille et notez votre phrase de récupération.
2. La création d'un budget sur le Goerli Testnet avec l'utilisation du faucet implique l'obtention d'Ether de test
(GoETH) pour simuler des transactions et tester des contrats intelligents sans dépenser de véritables ethers
sur le réseau principal d'Ethereum
• Accédez au Faucet : Rendez-vous sur le site du Goerli Testnet Faucet. Vous pouvez trouver le lien sur les
canaux officiels d'Ethereum ou du Goerli Testnet.
• Créez un compte sur le Faucet : Certains faucets peuvent nécessiter la création d'un compte. Suivez les
instructions pour vous inscrire au service.
• Obtenez une clé API : Si le faucet nécessite une clé API, assurez-vous de générer une clé API lors de votre
inscription. Cette clé API sera utilisée pour accéder au service de faucet.
• Connectez-vous à votre compte : Utilisez vos identifiants (adresse Ethereum et éventuellement la clé API)
pour vous connecter à votre compte sur le faucet.
• Sélectionnez le réseau Goerli : Assurez-vous de sélectionner le réseau Goerli, car le faucet peut prendre en
charge plusieurs réseaux de test Ethereum.
• Indiquez votre adresse Ethereum : Sur le site du faucet, indiquez l'adresse Ethereum pour laquelle vous
souhaitez recevoir des GoETH de test. Assurez-vous d'utiliser une adresse associée au réseau Goerli.
• Passez les éventuelles vérifications : Certains faucets peuvent nécessiter que vous passiez des vérifications,
comme la résolution de captchas ou d'autres mécanismes anti-abus.
• Demandez des GoETH de test : Une fois toutes les étapes précédentes terminées, soumettez la demande
pour recevoir des GoETH de test sur votre adresse.
• Attendez la confirmation : Il peut y avoir un délai avant que les GoETH de test n'arrivent sur votre adresse.
Attendez la confirmation que la transaction a été effectuée avec succès.
3. La création d'un compte sur Infura pour utiliser son interface avec Web3 implique plusieurs étapes. Voici un
guide général sur la procédure :
• Visitez le Site Web d'Infura : Rendez-vous sur le site web officiel d'Infura à l'adresse https://infura.io/.
• Inscription : Sur la page d'accueil, cherchez l'option d'inscription ou de création de compte. Cela peut être
sous la forme d'un bouton "Get Started" ou "Sign Up". Cliquez dessus.
• Remplissez le Formulaire : Vous serez probablement redirigé vers un formulaire d'inscription. Remplissez les
champs requis, cela pourrait inclure votre nom, adresse e-mail et la création d'un mot de passe.
• Validation de l'Adresse E-mail : Après avoir rempli le formulaire, Infura peut vous demander de valider votre
adresse e-mail. Consultez votre boîte de réception, trouvez l'e-mail de confirmation d'Infura et suivez les
instructions pour valider votre compte.
• Connexion à votre Compte : Une fois votre compte validé, connectez-vous avec vos identifiants (adresse e-
mail et mot de passe).
• Création d'un Projet : Après vous être connecté, créez un nouveau projet. Donnez un nom significatif à votre
projet, et choisissez le réseau Ethereum sur lequel vous souhaitez travailler (par exemple, Mainnet ou un
réseau de test comme Ropsten, Rinkeby, ou Goerli).
• Génération de la Clé API : Une fois votre projet créé, accédez à la section de gestion du projet et générez une
clé API. Cette clé API sera nécessaire pour accéder aux services d'Infura.
• Intégration avec Web3 : Utilisez votre clé API d'Infura dans votre application Web3. Vous pouvez l'intégrer en
utilisant cette clé comme point d'accès pour interagir avec les nœuds Ethereum gérés par Infura.
4. Remix IDE
Remix est un environnement de développement intégré (IDE) en ligne pour Ethereum, qui facilite la création,
le déploiement et le test de contrats intelligents. Voici un aperçu de certaines fonctionnalités et étapes
courantes que vous pouvez rencontrer en utilisant Remix IDE :
• Accès à Remix : Rendez-vous sur le site officiel de Remix IDE à l'adresse https://remix.ethereum.org/.
• Interface de Remix : Remix propose une interface utilisateur avec plusieurs panneaux, notamment l'éditeur
de code, le gestionnaire de fichiers, la console de sortie, et d'autres panneaux pour gérer les contrats
intelligents, les plugins, etc.
• Création d'un Nouveau Fichier : Utilisez le gestionnaire de fichiers pour créer un nouveau fichier Solidity
(l'extension de fichier est généralement .sol). C'est là où vous allez écrire votre code de contrat intelligent.
• Écriture du Contrat Intelligent : Utilisez l'éditeur de code pour écrire le code de votre contrat intelligent en
utilisant le langage Solidity. Remix offre des fonctionnalités telles que la coloration syntaxique,
l'autocomplétion et la vérification de la syntaxe.
• Compilation du Contrat : Utilisez l'onglet "Solidity Compiler" pour compiler votre contrat. Cela générera les
bytecode et l'ABI (Application Binary Interface) nécessaires pour déployer et interagir avec le contrat.
• Déploiement du Contrat : Passez à l'onglet "Deploy & Run Transactions" pour déployer votre contrat sur un
réseau Ethereum. Vous pouvez sélectionner différents environnements, y compris les réseaux de test tels
que Ropsten, Rinkeby, ou Goerli.
• Interaction avec le Contrat : Après le déploiement, vous pouvez interagir avec votre contrat en utilisant
l'interface générée dans l'onglet "Deploy & Run Transactions". Cela vous permet d'appeler des fonctions et
de voir les résultats.
• Débogage : Remix propose des outils de débogage qui vous permettent de suivre l'exécution de votre contrat,
d'inspecter les variables et de déboguer les erreurs éventuelles.
• Sauvegarde du Projet : Utilisez le gestionnaire de fichiers pour sauvegarder votre projet. Remix propose
également des fonctionnalités d'import/export pour faciliter le partage de projets.
• Extensions et Plugins : Remix prend en charge des extensions et plugins qui ajoutent des fonctionnalités
supplémentaires à l'IDE. Vous pouvez les trouver dans l'onglet "Plugin Manager".
Signification du code :
Ce code représente un contrat intelligent simple écrit en langage Solidity, qui peut être déployé sur la
blockchain Ethereum. Voici une explication ligne par ligne :
1. // SPDX-License-Identifier: MIT
Cette ligne spécifie la licence sous laquelle le contrat intelligent est publié. Ici, il est sous la licence MIT, qui
est une licence open source populaire.
Cette déclaration spécifie la version du compilateur Solidity nécessaire pour compiler ce contrat. Dans ce cas,
le compilateur Solidity de la version 0.8.2 ou supérieure est requis.
3. contract DataContract {
C'est la déclaration d'une variable de type mapping (une structure de données dans Solidity) appelée data.
Ce mapping associe des chaînes de caractères (string) à d'autres chaînes de caractères. Il est privé (private),
ce qui signifie qu'il ne peut être accédé que depuis l'intérieur du contrat.
6. data[index] = value;
C'est la ligne de code à l'intérieur de la fonction setData. Elle assigne la valeur value à la clé index dans le
mapping data.
7. }
Ceci est une autre fonction publique appelée getData. Elle prend un paramètre index et retourne la valeur
associée à cette clé dans le mapping data.
9. return data[index];
C'est la ligne de code à l'intérieur de la fonction getData. Elle renvoie la valeur associée à la clé index dans le
mapping data.
10. }
11. }
Le smart contract a été écrit en Solidity, un langage dédié aux contrats intelligents sur la plateforme
Ethereum.
Le smart contract permet de stocker et de récupérer des données arbitraires dans une mapping associant
des chaînes de caractères à des chaînes de caractères.
Le smart contract a été compilé et déployé sur le réseau de test Goerli à l’aide de Remix et de Metamask,
une extension de navigateur qui permet d’interagir avec la blockchain Ethereum.
Le smart contract a été testé avec succès en utilisant les fonctions setData et getData fournies par Remix.
Ce projet a montré les bases de la programmation et de l’utilisation des smart contracts et de la blockchain,
qui sont des technologies prometteuses pour le développement d’applications décentralisées, sécurisées et
transparentes.