Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1bf622d
Added a new folder with the first study document along with its frenc…
adilmezghouti Nov 20, 2022
4adaa7d
Added the remaining english documents
adilmezghouti Nov 20, 2022
39e3560
translate the second document
senyoudev Nov 22, 2022
99a6b07
Add files via upload
Yassine-Chraa Nov 23, 2022
c3a12c5
Add files via upload
Yassine-Chraa Nov 23, 2022
be4370c
project guide && convert 2 projects to markdown files
senyoudev Dec 14, 2022
a8b06e3
convert an other document to markdown file
senyoudev Dec 14, 2022
7acd333
convert an other document to markdown file
senyoudev Dec 14, 2022
2f59e88
change the name of the images:
senyoudev Dec 14, 2022
b9adda6
Delete ~$apitre 1_ Suggestions du guide d'étude des fondamentaux.docx
senyoudev Dec 14, 2022
336ccde
Guide du projet partie 3
asmaerhiati Dec 14, 2022
618a761
Guide du projet partie 3
asmaerhiati Dec 14, 2022
5cfe5de
Add files via upload
AmmariAbdelmounaim Dec 14, 2022
fb4ff15
Add files via upload
Ali-Ouazzani-H-T Dec 14, 2022
4e63a34
Add files via upload
AmmariAbdelmounaim Dec 14, 2022
bfb64c2
Update Guide de Projet Partie 1.md
AmmariAbdelmounaim Dec 14, 2022
e3cd12b
Update Guide de Projet Partie 2.md
AmmariAbdelmounaim Dec 14, 2022
79b088b
Update Guide de Projet Partie 2.md
AmmariAbdelmounaim Dec 14, 2022
bb7533c
Delete Guide de Projet Partie 1.docx
senyoudev Dec 14, 2022
1f51fa2
Delete Guide de Projet Partie 2.docx
senyoudev Dec 14, 2022
ddc36c3
Added English style guides
adilmezghouti Dec 21, 2022
8b98317
Converted study guides into markdown
adilmezghouti Dec 22, 2022
c24df3c
Merge branch 'ConsenSys-Academy:staging' into staging
adilmezghouti Dec 22, 2022
ff765a8
removed .idea folder
adilmezghouti Dec 22, 2022
826486b
renamed a study guide to be consistent with standard naming
adilmezghouti Dec 22, 2022
26111a1
Merge branch 'ConsenSys-Academy:staging' into staging
adilmezghouti Jan 16, 2023
7c34a57
Added french study guides
adilmezghouti Jan 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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.

Original file line number Diff line number Diff line change
@@ -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 !








Binary file added study-guides/fr/chapitre2-image1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added study-guides/fr/chapitre2-image2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions study-guides/fr/chapitre3-contrats-intelligents.md
Original file line number Diff line number Diff line change
@@ -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 !



Binary file added study-guides/fr/chapitre3-image1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added study-guides/fr/chapitre3-image2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading