diff --git a/study-guides/fr/chapitre1-suggestions-du-guide-d-etude-des-fondamentaux.md b/study-guides/fr/chapitre1-suggestions-du-guide-d-etude-des-fondamentaux.md new file mode 100644 index 00000000..5268d5b5 --- /dev/null +++ b/study-guides/fr/chapitre1-suggestions-du-guide-d-etude-des-fondamentaux.md @@ -0,0 +1,49 @@ +Guide d'étude de la semaine 1 + +Pour les personnes intéressées par les groupes d'étude, nous fournissons quelques ressources que vous pouvez parcourir en groupe. Ce ne sont que des suggestions pour vous aider à démarrer et vous n'êtes pas obligé de les suivre. + +Attention: Certains de ces exercices peuvent prendre plus d'une séance! Ne vous sentez pas obligé de les terminer en une seule séance. Il peut être utile de commencer à travailler sur eux séparément, puis de vous réunir lorsque vous êtes tous à un point d'arrêt similaire. Vous pouvez partager ce que vous avez couvert, certains défis que vous avez rencontrés et aider tous ceux qui travaillent encore sur les exercices. + +Nous passerons également par ces exemples/tutoriels dans les sessions hebdomadaires. Nous encourageons également les étudiants à partager leur travail là-bas. Soyez gentil avec les membres de votre groupe ! + +# 1. Début : Atelier Ethereum 101 +[Voir un enregistrement du premier exercice ici](https://www.loom.com/share/a02b5dec33d4468e9aa862540561697e) + +Le premier consiste en quelques exercices de base montrant à quoi ressemble une clé privée et comment elle fonctionne. Nous allons parcourir ces diapositives, mais il y a des exercices situés au milieu de la présentation qui pourraient vous intéresser, surtout en groupe. + +Faites défiler les diapositives à l'aide des touches fléchées jusqu'à ce que vous voyiez "Exercice 1" sur la diapositive, environ vingt diapositives. En bas de la colonne de gauche, cliquez sur le bouton rouge clair "Générer une adresse Ethereum" pour voir les sections "Comptes Ethereum" et "Clé privée" se remplir. + +**Veuillez noter : les clés privées générées ici NE SONT PAS sûres et ne doivent pas être utilisées à des fins autres que pédagogiques!** + +Cliquez sur le champ "Clé privée" pour faire glisser et déposer la clé privée dans l'emplacement vide "Clé privée". Écrivez un message dans le champ "Message" et cliquez sur "Signer le message" + +Dans la colonne de droite, faites glisser le "Texte du message" et la "Signature du message" de la colonne de droite et l'Adresse Ethereum de la colonne de gauche. Remarque : N'utilisez pas la clé privée ! + +Vérifiez la validité du message en cliquant sur "Vérifier la signature". Essayer de modifier l'une des entrées (texte, signature ou compte) pour voir la vérification échoue. (Veuillez noter que tout se passe localement sur votre machine en utilisant une bibliothèque cryptographique, sans communiquer à un serveur ou un tiers.) + +Si vous cliquez sur "Télécharger les données de message", cela générera un fichier .txt que vous pourrez envoyer à d'autres personnes de votre groupe pour tester également leurs messages. Attention : vous devez copier et coller parfaitement le contenu et vous devez ouvrir leur fichier d'une manière qui ne changera pas l'encodage .txt. Si vous l'ouvrez à l'aide de Microsoft Word, par exemple, ou de Google Docs, cela altérera le message et le rendra invalide. C'est un excellent exemple de la façon dont l'identité décentralisée est très puissante mais aussi très fragile : même le plus petit des problèmes casse le système. + +Si cela vous intéresse, il y a un autre exercice après cet exercice "Encode / Decode". C'est similaire aux [exercices Anders Blockchain](https://andersbrownworth.com/blockchain/hash), qui montrent comment la modification d'une information dans une chaîne de hachage rend tous les blocs suivants invalides. + +Il existe également un éditeur Solidity jouet qui vous permet de déployer du code en un clic si MetaMask est installé avec suffisamment d'éther pour le réseau sur lequel vous vous trouvez! + +Nous les passerons en revue lors de la session en direct de mercredi + +# 2. Technique : Exercices de hachage Bitcoin +Tout d'abord, [clonez ce référentiel d'exercices du livre blanc Bitcoin](https://github.com/cooganb/bitcoin-whitepaper-exercises) + +Ensuite, [suivez les étapes de ce README pour faire le premier exercice, le hachage.](https://github.com/cooganb/bitcoin-whitepaper-exercises/blob/master/hashing/README.md) + +Veuillez noter que peu importe l'algorithme de hachage que vous utilisez, tant qu'il est cohérent. + +[Un tutoriel plus avancé que vous pouvez suivre est celui-ci en Python](http://karpathy.github.io/2021/06/21/blockchain/). Il s'agit d'une implémentation à partir de zéro de Bitcoin sans aucune dépendance (🤯 🤯 🤯). Pour ceux d'entre vous qui suivent l'apprentissage automatique, c'est d'Andrej Karpathy, qui a écrit des trucs formidables sur les réseaux de neurones). Vous pouvez suivre le Python au fur et à mesure qu'il le construit ou vous pouvez exécuter le bloc-notes Jupyter ici. Ceci est destiné aux utilisateurs Python intermédiaires à avancés. Si vous n'êtes pas familier avec Python, ce n'est pas l'endroit pour apprendre. + +# 3. Technique : Atelier sur la création d'un réseau P2P +Jusqu'à présent, ce guide d'étude contient du matériel d'introduction et du matériel sur les primitives cryptographiques. Ce qui nous manque, c'est un didacticiel sur le système distribué / le consensus distribué ! + +[Voici deux bons tutoriels de WebTorrent. Le premier didacticiel (Atelier P2P)](https://mafintosh.github.io/p2p-workshop/build/01.html) décrit le processus de création d'un serveur jouet sur votre ordinateur local, crée un service de chat, puis développe les processus de mise en réseau pour découvrir les pairs de votre réseau. + +[Le deuxième didacticiel (Atelier de partage de fichiers P2P)](https://mafintosh.github.io/p2p-file-sharing-workshop/build/01.html) présente les spécificités techniques des fichiers en streaming, la découverte de services, le hachage de fichiers, la segmentation de fichiers (une fonctionnalité du protocole torrent), puis le partage de fichiers avec plusieurs participants. + +Ces tutoriels sont dans Node.js et sont bons car ils décomposent ces projets compliqués en étapes discrètes. Cependant, il est assez avancé et, si vous rencontrez des problèmes, essayez de rejoindre un groupe qui y travaille. + diff --git a/study-guides/fr/chapitre2-guide-d-etude-des-fondamentaux-et-ethereum.md b/study-guides/fr/chapitre2-guide-d-etude-des-fondamentaux-et-ethereum.md new file mode 100644 index 00000000..620230dc --- /dev/null +++ b/study-guides/fr/chapitre2-guide-d-etude-des-fondamentaux-et-ethereum.md @@ -0,0 +1,76 @@ +**Guide d'étude du chapitre 2** + +Pour les personnes intéressées par les groupes d'étude, nous fournissons quelques ressources que vous pouvez parcourir en groupe. Ce sont juste des suggestions pour vous aider à démarrer et vous n'êtes pas obligé de les suivre. + +Veuillez noter que certains de ces exercices peuvent nécessiter plus d'une séance ! Ne vous sentez pas obligé de les terminer en une seule séance. Il peut être utile de commencer à les travailler séparément, puis de vous réunir lorsque vous êtes tous au même point d'arrêt. Vous pouvez partager ce que vous avez vécu, les défis que vous avez rencontrés, et aider ceux qui sont encore en train de travailler sur les exercices. + +Nous examinerons également ces exemples / tutoriels lors des sessions hebdomadaires. Nous encouragerons les gens à partager leur travail. Vous pouvez également en discuter dans les canaux Discord respectifs. N'oubliez pas : soyez gentil avec les membres de votre groupe ! + +## **1. Débutant : Configuration du Geth et / ou Hyperledger Besu:** +** + +Pour la session de cette semaine, nous abordons d'autres aspects des principes fondamentaux de la cryptographie, mais nous pivotons également pour discuter le protocole Ethereum. Au cours de la présentation du vendredi et de la démonstration de la semaine prochaine, nous allons parler des clients Ethereum. + + + +La création de l'environnement sur votre machine locale pour un client Ethereum a quelques inconvénients, il est donc bon de commencer à l'avance. De plus, cela vous aidera à vous préparer pour la présentation de vendredi où Tom vous guidera dans la mise en place de Hyperledger Besu, le démarrage d'un testnet local et l'intégration de MetaMask. + + + +Pour configurer Geth, veuillez suivre les instructions de cette leçon au chapitre 2, " Qu'est-ce qu'un client Ethereum ? Exécution de Go-Ethereum (geth)" : + +` `![](chapitre2-image1.png) + +Si vous ne pouvez pas accéder à cette leçon, c'est très probablement parce que vous n'avez pas terminé cette leçon du chapitre 1, "Comment rester en sécurité en utilisant les crypto-monnaies", ce que vous devez faire immédiatement : + + + +![](chapitre2-image1.png) + + + +Vous pouvez faire quelques préparatifs pour la présentation de vendredi en installant [Hyperledger Besu](https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/Install-Binaries/). L'exécution de Besu à partir d'un binaire nécessite Java JDK 11+ pour fonctionner, ce qui peut être un peu délicat. [Vous pouvez l'installer à partir d'ici](https://www.oracle.com/java/technologies/javase-downloads.html). + + + + + +**2. Technique : Exercice sur [les transactions du Bitcoin](https://github.com/cooganb/bitcoin-whitepaper-exercises/blob/master/transactions/README.md) et [les portefeuilles** ](https://github.com/cooganb/bitcoin-whitepaper-exercises/blob/master/wallet/README.md)** + +Si vous ne l'avez pas encore fait, [clonez ce repo des exercices sur les ](https://github.com/cooganb/bitcoin-whitepaper-exercises)[whitepaper](https://github.com/cooganb/bitcoin-whitepaper-exercises)[s de Bitcoin](https://github.com/cooganb/bitcoin-whitepaper-exercises) et effectuez l'exercice de hachage. Si vous avez besoin d'aide, vous pouvez regarder l'enregistrement du chapitre 1 : [\[SESSION EN DIRECT\] Semaine 1 - Principes fondamentaux : Forker un repo Github, VSCode et exercice de hachage.](https://courses.consensys.net/courses/take/blockchain-developer-bootcamp-registration-2021/lessons/27760900-live-session-week-1-fundamentals-fork-a-github-repo-vscode-and-hashing-exercise) + + + +**Lors de notre session de mercredi, nous passerons en revue la fonction verifyBlock(...) de l'exercice de hachage, puis nous passerons à la création de signatures digitales à l'aide de la bibliothèque OpenPGP. Veuillez noter que nous utilisons une version non sécurisée d'OpenPGP (3.0.8 vs 5.0.0), ceci est uniquement destiné à des fins éducatives !** + +**3. Avancé : commencez à explorer d'autres clients Ethereum** + +Outre Hyperledger Besu et Geth, il existe d'autres clients Ethereum. Si vous souhaitez en savoir plus, vous pouvez explorer ces deux clients et leur documentation d'installation : + + + +. + +● [Erigon ](https://github.com/ledgerwatch/erigon)Précédemment appelé « Turbogeth », Erigon est récemment devenu officiellement son propre client. + +● [OpenEthereum AKA Parity](https://docs.nethereum.com/en/latest/ethereum-and-clients/parity/) Ce client a été déprécié en raison du fait que ses constructeurs d'origine ([Parity Technologies](https://www.parity.io/)) se sont davantage intéressés au développement de Polkadot. Cependant, il pourrait être intéressant de fouiller dans le repo ! Écrit en Rust.ntation : + +Quelques autres choses intéressantes liées au client Ethereum : + + + +● [Nethereum ](https://docs.nethereum.com/en/latest/getting-started/)Une bibliothèque écrite en C# pour "simplifier la gestion des contrats intelligents et l'interaction avec les nœuds Ethereum". + +● [Geth Snap Sync](https://blog.ethereum.org/2021/03/03/geth-v1-10-0/) Désormais intégré de manière native à Geth, vous pouvez en savoir plus sur Snap sync [ici](https://github.com/ethereum/devp2p/blob/master/caps/snap.md). + + + +Il y a un canal animé dans le discord appelé #🏃node-runners avec des gens qui sont également intéressés à exécuter leurs propres nœuds Ethereum si vous voulez rejoindre la conversation là-bas ou comparer des notes sur les clients Ethereum ! + + + + + + + + diff --git a/study-guides/fr/chapitre2-image1.png b/study-guides/fr/chapitre2-image1.png new file mode 100644 index 00000000..335191ac Binary files /dev/null and b/study-guides/fr/chapitre2-image1.png differ diff --git a/study-guides/fr/chapitre2-image2.png b/study-guides/fr/chapitre2-image2.png new file mode 100644 index 00000000..f9f9c174 Binary files /dev/null and b/study-guides/fr/chapitre2-image2.png differ diff --git a/study-guides/fr/chapitre3-contrats-intelligents.md b/study-guides/fr/chapitre3-contrats-intelligents.md new file mode 100644 index 00000000..e5babb15 --- /dev/null +++ b/study-guides/fr/chapitre3-contrats-intelligents.md @@ -0,0 +1,53 @@ +Exercice #1 : Simple Bank + +[Veuillez suivre ce lien pour accéder à l'exercice « Simple Bank » sur GitHub. ](https://classroom.github.com/a/r6Ichc_V) Ce lien vous demandera de cloner le devoir dans le dépôt du Classroom dans « GitHub Classroom ». + +Nous utilisons [GitHub](https://github.com/features/actions)[ Actions](https://github.com/features/actions) pour vérifier automatiquement vos devoirs. Les actions exécuteront ganache-cli sur le port 8545 pour exécuter les tests, alors assurez-vous que votre devoir est en cours d’exécution sur ce port lorsque vous soumettez la version finale. + +Nous avons écrit quelques tests pour le contrat intelligent qui s’exécutera chaque fois que vous mettrez à jour votre code sur GitHub. [Vous pouvez voir les tests ici.](https://github.com/ConsenSys-Academy/simple-bank-exercise/blob/master/test/simpleBank.test.js) Nous expliquerons comment réaliser cet exercice et le suivant dans la leçon en direct « Introduction aux exercices de contrats intelligents » le **28 septembre 2021**. Un enregistrement de cette session sera disponible par la suite. En attendant, vous pouvez poser des questions dans le canal Discord pour la section « contrat intelligent ». + +En regardant le dépôt GitHub, vous pouvez voir si les tests réussissent ou non. Ci-dessous, vous pouvez voir un exemple du dépôt du devoir réussissant tous ses tests : + +![](chapitre3-image1.png) + +Voici un exemple d’un dépôt du devoir qui ne réussit pas ses tests : + +![](chapitre3-image2.png) +### Workflow pour terminer le devoir +1. Cliquez sur le lien du devoir pour créer votre propre dépôt GitHub du devoir +1. Clonez le dépôt sur votre ordinateur local et complétez le code du contrat intelligent. [Suivez ces instructions](https://github.com/ConsenSys-Academy/simple-bank-exercise#instructions) pour que tous vos tests réussissent lorsque vous exécutez le test de truffe +1. Commit votre contrat intelligent dans le dépôt localement et push le vers votre propre fork GitHub +1. Visite votre dépôt sur GitHub pour vous assurer que vous voyez une coche verte indique que vos tests ont réussi. + +Bonne chance ! + + + + +# Exercice #2 : Supply Chain +# [Veuillez suivre ce lien pour accéder à l’exercice « Supply Chain » sur GitHub. ](https://classroom.github.com/a/O-yrYqWz) Ce lien vous demandera de cloner le devoir dans le dépôt du Classroom dans « GitHub Classroom ». +Si vous rencontrez des difficultés pour accéder au devoir, veuillez contacter Discord. + +Nous utilisons [GitHub](https://github.com/features/actions)[ Actions](https://github.com/features/actions) pour vérifier automatiquement vos devoirs. Les actions exécuteront ganache-cli sur le port 8545 pour exécuter les tests, alors assurez-vous donc que votre devoir est en cours d’exécution sur ce port lorsque vous soumettez la version finale. + +Nous avons écrit quelques tests pour le contrat intelligent qui s’exécutera chaque fois que vous mettrez à jour votre code sur GitHub. [Vous pouvez voir les tests ici.](https://github.com/ConsenSys-Academy/simple-bank-exercise/blob/master/test/simpleBank.test.js) Nous expliquerons comment réaliser à la fois cet exercice et le suivant dans la leçon en direct « Introduction aux exercices de contrats intelligents » le **28 septembre 2021**. Un enregistrement de cette session sera disponible par la suite. En attendant, vous pouvez poser des questions dans le canal Discord pour la section « contrat intelligent ». + +En regardant le dépôt GitHub, vous pouvez voir si les tests réussissent ou non. Ci-dessous, vous pouvez voir un exemple du dépôt du devoir réussissant tous ses tests : + +![](chapitre3-image1.png) + +Voici un exemple d’un dépôt du devoir qui ne réussit pas ses tests : + +![](chapitre3-image2.png) + +**REMARQUE : Lorsque votre soumission réussit tous les tests, vous recevrez un crédit pour le devoir.** +### Workflow pour terminer l’affectation +1. [Cliquez sur le lien](https://classroom.github.com/a/O-yrYqWz) du devoir pour cloner le devoir dans votre propre dépôt GitHub +1. Pull le dépôt sur votre ordinateur local et complétez le code de contrat intelligent. [Suivez ces instructions](https://github.com/ConsenSys-Academy/simple-bank-exercise#instructions) pour que tous vos tests réussissent lorsque vous exécutez le test de truffe +1. Commit votre contrat intelligent dans le dépôt localement et [push](https://www.atlassian.com/git/tutorials/syncing/git-push) le vers votre fork GitHub +1. Visite votre dépôt sur GitHub pour vous assurer que vous voyez une coche verte indique que vos tests ont réussi. + +Bonne chance ! + + + diff --git a/study-guides/fr/chapitre3-image1.png b/study-guides/fr/chapitre3-image1.png new file mode 100644 index 00000000..29b302d1 Binary files /dev/null and b/study-guides/fr/chapitre3-image1.png differ diff --git a/study-guides/fr/chapitre3-image2.png b/study-guides/fr/chapitre3-image2.png new file mode 100644 index 00000000..f961f074 Binary files /dev/null and b/study-guides/fr/chapitre3-image2.png differ diff --git a/study-guides/fr/guide-de-projet-partie1.md b/study-guides/fr/guide-de-projet-partie1.md new file mode 100644 index 00000000..0988255c --- /dev/null +++ b/study-guides/fr/guide-de-projet-partie1.md @@ -0,0 +1,56 @@ +# Votre idée de projet final. +La culmination de votre temps dans l’éducation DAO sera votre projet final, qui sera une application distribuée (ou dapp) exécutée sur le réseau Ethereum (mainnet ou testnet) avec une interface utilisateur web interactive. + +Nous aimerions commencer à travailler sur le projet dès que possible, mais ne vous inquiétez pas, il s'agit vraiment d'un exercice de brainstorming pour vous donner un avantage lorsque vous plongerez vraiment dans votre projet plus tard. + +Dans le cours jusqu’à présent, vous avez appris sur : +* La promesse de la blockchain et un aperçu général de la technologie +* Les problèmes que les blockchains espèrent résoudre +* Les concepts fondamentaux de la blockchain (cryptographie et consensus distribué) +* Un modèle mental général pour les blockchains +* Quand utiliser une blockchain +* Une introduction aux portefeuilles cryptographiques, y compris MetaMask + +Pour cet exercice, nous aimerions que vous preniez toutes les connaissances générales de la blockchain et que vous commenciez à réfléchir à la façon dont vous l’appliqueriez. **Après avoir appris ce que vous avez appris jusqu’à présent, avez-vous des idées sur ce que vous aimeriez que votre projet final soit ?** + +Si cela semble trop accablant : **Pourquoi avez-vous pensé à créer une application blockchain ?** + +Vous ne devriez pas ressentir de pression de notre part sur cet exercice. Les enjeux sont très faibles, étant donné que vous êtes très tôt dans le cours, mais c’est un processus important qui vous préparera au succès. **Bien que votre projet final soit noté, cet exercice ne sera pas noté.** + +Cet exercice vous permet de discuter d’une idée avec d’autres et de réfléchir à certaines des implications ou à la logique du programme sans avoir à coder quoi que ce soit pour le moment. Discuter de vos idées avec des instructeurs, des boursiers et d’autres collègues vous aidera à réfléchir au processus, identifiez les parties passionnantes, peut-être les zones plus difficiles. Cela vous aidera également à commencer à tracer une limite autour de ce que vous aimeriez que votre projet soit. +Nous allons vous demander de configurer le dépôt GitHub pour votre projet final et de le remplir avec un seul document, qui décrira le brainstorming et les idées sur lesquelles vous travaillez. Cela vous aidera à vous familiariser avec le GitHub parfois difficile et le flux de travail Git et à vous préparer au succès plus tard. + +Remarque : Si vous rencontrez des problèmes avec Git ou GitHub, assurez-vous de consulter la section ["Git: The Language of the Development Gods"](https://consensys-academy.github.io/basic-training/M5-git/L3/) de notre [Cours de Formation de base](https://courses.consensys.net/courses/bootcamp-basic-training). Nous créerons également des liens vers les ressources Git et GitHub ci-dessous. + +Dernier point, et plus important encore : **KEEP IT SUPER SIMPLE** ([KISS](https://dev.to/kwereutosuthe-k-i-s-s-principle-in-programming-1jfg)). C’est l’une des techniques de développement logiciel les plus importantes. Il est tentant de vouloir refaire le monde avec l’incroyable puissance de la blockchain. Cependant, pour ce projet, il est important de commencer grand et de dissoudre les idées jusqu’à leur essence la plus simple et la plus puissante. + +Certes, le projet sera codé dans toutes sortes de langages étonnants à l’aide d’outils de développement blockchain impressionnants, mais, à ce stade, vous voulez travailler sur l’espace de problème de base et la logique que vous allez construire. La réflexion que vous ferez à cette étape sera un guide, pour vous aider à avancer sur la bonne voie lorsque les choses deviennent plus compliquées. Vous en serez reconnaissants plus tard, promis ! + +(Remarque : nous en reparlerons plus tard, mais **vous n’avez absolument pas besoin d’écrire du code pour cet exercice**, tout sera écrit en langage simple) + +# Parties d’exercice + +L’exercice est divisé en deux parties : + +**1.Faites un brainstorming sur votre idée** dans le Discord, ou pendant les heures de session d’étude, nous voulons que vous partagiez des idées que vous avez pour un projet final. Voici quelques points à garder à l’esprit lorsque vous réfléchissez et discutez de votre idée avec d’autres : +* **Expliquez de manière très simple ce que vous aimeriez que votre projet fasse.** Il est facile de se compliquer avec des idées, mais le véritable exercice mental consiste à dissoudre une idée dans son essence. Lorsque vous discutez de votre idée avec des gens, essayez de trouver quelques concepts qui sous-tendent votre idée. +* Parcourez un flux de travail unique pour le futur utilisateur de votre projet. Une fois que vous avez une idée générale de ce que vous aimeriez faire, isolez certaines des actions qu’un utilisateur entreprendra. Écrire +* Vous pouvez avoir une grande idée et n’en travailler qu’une partie pour votre projet. Vous serez surpris de la rapidité avec laquelle une idée « simple » peut se compliquer lorsque vous écrivez un logiciel ! Une fois que vous avez une idée générale, isolez deux ou trois choses essentielles qu’un utilisateur fera. Ce sera un excellent point de départ pour votre projet. Si vous les réalisez rapidement, vous pouvez passer aux autres aspects de votre idée ! +* [Pseudocode](https://en.wikipedia.org/wiki/Pseudocode) est un excellent outil pour cet exercice Lorsque vous réfléchissez aux actions que vos futurs utilisateurs entreprendront, il peut être utile d’écrire les étapes en langage simple ! Voici un exemple de base : + +**Exemple de flux de travail de contrat de vote** +1. Les utilisateurs devront s’inscrire d’une manière ou d’une autre sur le contrat +2. Ils doivent identifier la campagne sur laquelle ils votent +3. Ils devront soumettre un vote pour cette campagne. +4. Ils ne peuvent pas voter deux fois pour une seule campagne + +**2.Téléchargez-le sur GitHub** Une fois que vous avez une idée générale de votre projet (Rappelez-vous: cela devrait être très simple et pas compliqué!), Nous aimerions que vous configuriez un dépôt GitHub pour votre projet et soumettiez votre idée de projet dans le fichier README.md du référentiel. + +* Votre dépôt et projet Github doit s’intituler education-dao-final-project et, à ce stade, il ne doit contenir qu’un README.md avec votre idée de projet et toutes les notes que vous souhaitez inclure ! (Vous n’êtes pas obligé de vous arrêter là, soit dit en passant, mais c’est le minimum pour cet exercice) +* Pour ceux qui sont déjà à l’aise avec la ligne de commande, l’éditeur de code et git, [voici un lien vers la leçon de formation de base où nous vous procédons à la configuration d’un nouveau projet GitHub](https://consensys-academy.github.io/basic-training/M5-git/L3/). +* Pour ceux qui préfèrent commencer sur Github, puis travailler localement, [veuillez consulter cet excellent tutoriel de Github sur la façon d’initialiser](https://docs.github.com/en/get-started/quickstart/create-a-repo) + +Une fois que vous avez téléchargé vos README.md dans votre dépôt Github, veuillez partager le lien vers votre référentiel avec votre groupe d’étude. + +Nous avons hâte d’entendre vos idées de projets ! + diff --git a/study-guides/fr/guide-de-projet-partie2.md b/study-guides/fr/guide-de-projet-partie2.md new file mode 100644 index 00000000..5e3e9488 --- /dev/null +++ b/study-guides/fr/guide-de-projet-partie2.md @@ -0,0 +1,51 @@ + +# Invite d’exercice +**Écrivez l’architecture Solidity (noms des fonctions et leurs entrées et sorties) pour les contrats intelligents de votre projet final. Téléchargez-le dans le dépôt GitHub que vous avez créé au chapitre 1.** +## Concept d’exercice +Depuis le dernier exercice, vous avez appris : +* Contexte du réseau Ethereum +* Comment les comptes, les transactions et l’état sont stockés sur le réseau Ethereum +* Comment exécuter un client Ethereum +* Comment les contrats intelligents s’intègrent dans notre modèle mental blockchain +* Comment utiliser Truffle +* Fondamentaux de solidité +* Modèles de conception de contrats intelligents +* Pièges de sécurité et vecteurs d’attaque +* Options de vérification et de protection de votre application + +Pour cet exercice, nous aimerions que vous preniez votre compréhension des contrats intelligents et que vous l’appliquiez à votre projet final. + + +Plus précisément, nous aimerions que vous réfléchissiez au **flux de travail unique pour le futur utilisateur de votre projet** que vous avez écrit dans le premier exercice. Pour ce flux de travail, écrivez les fonctions de contrat intelligent de base qui seront requises. Vous n’avez pas encore besoin d’écrire la logique de solidité ! + +# Parties d’exercice +1.**Dans un premier temps, écrivez simplement le nom de la fonction, les entrées dont la fonction a besoin et ce qu’elle pourrait retourner. Démarrez un nouveau fichier dans votre dépôt GitHub et commencez à esquisser les fonctions.** + +Voici à quoi cela pourrait ressembler pour notre exemple de vote du premier exercice : + +1.Les utilisateurs devront s’inscrire d’une manière ou d’une autre sur le contrat +```solidity +function registerVoter(address _voter) { + // registers voter +}; +``` +2.Ils doivent identifier la campagne sur laquelle ils votent +```solidity +function registerVote(uint campaignID) { + // registers the vote of the voter +}; +``` +3. Ils devront soumettre un vote pour cette campagne, mais ils ne peuvent pas voter deux fois pour une seule campagne. +```solidity +modifier onlyVoteOnce() { + // checks the vote hasn't voted before + _ +}; +``` +Encore une fois, vous n’avez pas encore besoin d’écrire la logique interne (bien que vous le puissiez). **Le but est de commencer à réfléchir aux comportements de l’utilisateur en termes d’actions discrètes et à ce que ces actions exigent.** Vous pouvez voir dans l’exemple ci-dessus comment nous commençons déjà à avoir une idée de certaines variables globales dont le contrat aura besoin pour exécuter ces fonctions. C’est le but de cet exercice, **commencer à comprendre les contours généraux de la façon dont un utilisateur interagira avec votre code de contrat intelligent.** + +**2.Une fois que vous avez quatre à cinq fonctions esquissées, validez et poussez le changement vers votre dépôt GitHub final de projet existant.** Une fois que vous avez poussé vers le référentiel, partagez votre lien avec votre groupe d’étude ou vos sessions ou dans le Discord ! + +https://github.com/YOUR_GITHUB_USERNAME_HERE/education-dao-final-project + +Bon croquis! diff --git a/study-guides/fr/guide-de-projet4-soumission-du-projet.md b/study-guides/fr/guide-de-projet4-soumission-du-projet.md new file mode 100644 index 00000000..37190057 --- /dev/null +++ b/study-guides/fr/guide-de-projet4-soumission-du-projet.md @@ -0,0 +1,40 @@ +# Projet Final + +Pour ce devoir, vous devrez soumettre le lien du dépôt GitHub pour votre projet final. Lorsque vous serez prêt, veuillez télécharger le modèle situé en dessous de cette fenêtre, remplissez-le et soumettez-le en tant que votre devoir. + +## Pour obtenir une certification de développeur pour ce cours, votre projet doit : + +1. Suivre cette forme de nomination : +[**https://github.com/VOTRE_IDENTIFIANT_GITHUB_ICI/blockchain-developer-bootcamp-final-project**](https://github.com/VOTRE_IDENTIFIANT_GITHUB_ICI/blockchain-developer-bootcamp-final-project) + +2. Contenir un fichier README.md qui décrit le projet, décrit la structure du répertoire, et comment accéder à la partie frontend du projet (voir #8). S’il vous plait veuillez aussi inclure votre compte public d’ETHEREUM si vous vous voulez recevoir votre certificat sous format NFT (Optionnel). +3. Contenir un ou des contrats intelligents (Smart Contract(s)) qui: + - **Sont commentés** suivant la [description décrite ici](https://docs.soliditylang.org/en/latest/natspec-format.html) + - Utilisent au moins deux model de conception (Design Pattern) depuis la section des contrats intelligents [(VOIR LA LISTE DES MODEL DE CONCEPTION ICI)](https://docs.google.com/document/d/1tthsXLlv5BDXEGUfoP6_MAsL_8_T0sRBNQs_1OnPxak/edit) + - **Se protégent contre deux vecteurs d’attaque** depuis la section des contrats intelligents avec leurs [numéro SWC](https://swcregistry.io/) [(VOIR LA LISTE DES VECTEURS D’ATTAQUE ICI](https://docs.google.com/document/d/1tthsXLlv5BDXEGUfoP6_MAsL_8_T0sRBNQs_1OnPxak/edit)) +- héritent d'au moins **une bibliothèque(library) ou interface** +- Peuvent être facilement compilé, migré et testé (voir #5) (nous devons juste le compiler et le tester localement). +4. **Contenir un fichier Markdown nommé** **design\_pattern\_decisions.md** **et** **avoiding\_common\_attacks.md** qui décrit votre model de conception et les mesures de sécurité. [Vous pouvez voir une liste de modèles de conception et des problèmes de sécurité traité dans ce cours ici](https://docs.google.com/document/d/1tthsXLlv5BDXEGUfoP6_MAsL_8_T0sRBNQs_1OnPxak/edit). +5. **Ayez au moins cinq tests unitaires pour votre (vos) contrat(s) intelligent(s)** qui passent. Dans le code, incluez une phrase ou deux expliquant ce que sont les tests couvrant leur comportement attendu. Vous n'êtes pas obligé de construire des tests unitaires pour votre frontend, seulement pour vos contrats intelligents +6. **Contenir un fichier** deployed\_address.txt qui contient l'adresse testnet et le réseau où votre ou vos contrats ont été déployés. +7. **Avoir une interface frontend** construite avec un framework comme React ou du simple HTML/CSS/JS qui : +- **Détecte l**a présence de MetaMask. +- **Se connecte** au compte courant. +- **Affiche les informations** de votre contrat intelligent +- Permet à un utilisateur de **soumettre une transaction** pour mettre à jour l'état du contrat intelligent +- **Met à jour le frontend** si la transaction est réussie ou non +8. **Être héberger** sur **GitHub Pages, Netlify, Fleek, Surge, Heroku** ou tout autre service frontal gratuit qui offre aux utilisateurs une interface publique à votre application décentralisée. Cette adresse doit figurer dans votre document README.md. +9. Dans votre fichier README.md, assurez-vous d'avoir des instructions claires sur : +- **L'installation des dépendances** pour votre projet. +- **L'accès ou** - si votre projet nécessite un serveur (non requis) - **l'exécution de votre projet**. +- **L’exécution des tests unitaires de votre contrat intelligent** et savoir sur quel port un testnet local doit être exécuté. +- Note : Cette section nécessitait auparavant trois scripts bash mais a été révisée. +10. **Un enregistrement de votre parcours dans votre projet,** y compris la soumission des transactions et la visualisation de l'état mis à jour. Vous pouvez utiliser un enregistreur d'écran de votre choix ou un logiciel comme Loom, et vous pouvez partager le lien vers l'enregistrement dans votre README.md. + +## Rappelez-vous : +**NE TÉLÉCHARGEZ PAS D'INFORMATIONS SENSIBLES SUR GITHUB OU UN SITE PUBLIC !** Les détails de votre compte Infura, les mnémoniques MetaMask, les clés privées, etc., doivent tous être dans un fichier .env que vous ajoutez à votre .gitignore dans votre projet local. Dans votre README.md, vous devez indiquer à l'utilisateur comment remplir le fichier .env localement avec ses propres informations. [Lisez plus à ce sujet ici](https://blog.infura.io/how-to-use-dotenv-to-enhance-basic-security-within-your-dapp/) + + ## **Une note sur le style :** + Dans ce cours, nous mettons l'accent sur **la fonctionnalité** et **la sécurité** plutôt que sur le style. Il ne s'agit pas d'un cours de conception d'interface, mais d'un cours sur Ethereum et le développement d'applications décentralisées. Nous voulons simplement que vous démontriez ce que vous avez appris tout au long du cours, même si c'est très simple. + +### **Vous pourrez livrer des mises à jour à votre dépôt jusqu'à 23h59, [heure de l'AoE](https://www.timeanddate.com/time/zones/aoe) , le 30 novembre.** diff --git a/study-guides/fr/guide-du-projet-partie3.md b/study-guides/fr/guide-du-projet-partie3.md new file mode 100644 index 00000000..584d24c1 --- /dev/null +++ b/study-guides/fr/guide-du-projet-partie3.md @@ -0,0 +1,32 @@ +## Consigne d’exercice +**Ajoutez une interface front-end pour votre contrat intelligent** +## Concept d’exercice +Dans le exercice précèdent, nous avons appris : + +- Comment les utilisateurs s’inscrivent dans notre modelé mental du blockchain. En particulier, nous avons appris à : +- Comment les API JavaScript que nous obtenons de Web3.js ou ethers.js et un portefeuille crypto comme MetaMask se connectent au réseau Ethereum et à l’ABI généré a partir des fonctions dans notre code de contrat intelligent +- Comment ces ressources Web 3 se connectent aux ressources Web 2, comme React, pour créer une interface mélangée avec l’utilisateur + +Pour cet exercice, nous aimerions que vous construisiez l’interface utilisateur pour votre projet final. + +Votre projet final sera note, mais cet exercice spécifique ne sera pas note. +## Parties d’exercice +Construire une interface front-end inclura la construction de la structure de base de site web (de n’importe quelle manière vous souhaitez le faire). Vous devrez vous assurer que votre interface et l’utilisateur peuvent se connecter au réseau Ethereum via MetaMask. Votre utilisateur devrait pouvoir soumettre des transactions à votre contrat. Lorsque cette transaction est réussie, votre interface devrait être mise à jour avec l’état récemment reflété. [La documentation de MetaMask sera utile pour comprendre ce flux de travail. Consultez également leur tutoriel ici.](https://docs.metamask.io/guide/getting-started.html#basic-considerations) + +Dans cet exercice, vous aurez besoin des fonctions de base pour les contrats intelligents de votre projet. Vous les utiliserez pour construire une transaction côté client. + +1. **Choisissez une interface front-end que vous souhaitez utiliser pour votre projet.** Par exemple : React ou bien HTML / CSS / JS. + +2. **Intégrer Web 3** Choisissez une bibliothèque JavaScript Web 3 que vous souhaitez utiliser. Nous avons parlé de [Web3.js](https://web3js.readthedocs.io/en/v1.4.0/) et [ethers.js](https://docs.ethers.org/v5/). + +3. Construisez les méthodes JavaScript qui permettent à votre interface de **détecter la présence de MetaMask, de se connecter au compte courant, d’afficher des informations provenant de votre contrat intelligent, de soumettre une transaction a votre contrat, de surveiller l’état de la transaction** et **de mettre à jour l’interface** front-end si la transaction est réussie ou non. + +**Une note sur le style :** *Dans ce cours, nous nous concentrons plus sur la fonctionnalité et la sécurité plutôt que sur le style. Ce n'est pas un cours de conception d'interface, c'est un cours sur Ethereum et le développement d'applications décentralisées. Nous voulons simplement que vous montriez ce que vous avez appris tout au long du cours, même si c'est très simple.* + +Une fois que vous avez poussé le front-end de l'interface utilisateur de votre projet final, veuillez partager le lien vers votre référentiel avec votre groupe d'étude ou sur Discord. + +Le lien que vous soumettez ci-dessous devrait ressembler à ceci : + +[**https://github.com/YOUR_GITHUB_USERNAME_HERE/education-dao-final-project**](https://github.com/YOUR_GITHUB_USERNAME_HERE/blockchain-developer-bootcamp-final-project) + +**Bon Courage!** diff --git a/study-guides/fr/guides-d-etude-et-de-projet.md b/study-guides/fr/guides-d-etude-et-de-projet.md new file mode 100644 index 00000000..d14782db --- /dev/null +++ b/study-guides/fr/guides-d-etude-et-de-projet.md @@ -0,0 +1,51 @@ + + +Salut Jenni, + +Je voulais rassembler les guides d'étude et les guides de projet ici pour vous aider à les regrouper tous ensemble. + + + +**Guide pour le chapitre 1 :** + +[Guide d'étude fondamentale](https://docs.google.com/document/d/1NgCIwDov5UWsOT4Rcs3pRzGiWvzslVDbllMHHYpmJ3M/edit?usp=sharing) + +[Guide de projet partie 1](https://docs.google.com/document/d/1gIup1zJwoLpJQt7P_vTyq1MPSNXqNO3nsWCWktjdKIE/edit?usp=sharing) + +**Guide pour le chapitre 2 :** + +[Guide d'étude des bases d'Ethereum](https://docs.google.com/document/d/1u_rTDfKjNl9rhF_ZISFnfd4Vwy8DL1lkvY5LMFAqqOY/edit) + +` `**Guide pour le chapitre 3 :** + +[Exercices de contrat intelligent](https://docs.google.com/document/d/1FhfMuASokMCO9fgIyZJ_1LEJXEgiKOCcvNdqTTWxUis/edit) + +[Guide de projet partie 2](https://docs.google.com/document/d/1H9K6MWgMT7DeF_VSSP4e2BImxSPkXiFHjj7l0UXa3Ao/edit?usp=sharing) + +\*\*\*\*\*\*\*\* + +À partir de ce moment-là, nous passons aux guides de projet, en demandant aux gens de commencer à formuler leurs projets + +**Guide pour le chapitre 4 :** + +[Guide de projet partie 3](https://docs.google.com/document/d/1OnkqUNmNlxo05JTKjVHfHgRtnRf5fuOwDUthCDPvhJg/edit?usp=sharing) + +` `**Guide pour le chapitre 5 :** + +Jamais écrit, mais sera pour écrire du code Solidity et des tests pour le projet + +**Guide** + +[Soumission finale du projet](https://docs.google.com/document/d/10JofmlFAbIa6KmC1L-RvobC3wFHlJQNQShzYr5DEki4/edit) + + + + + + + + + + + +