info
This commit is contained in:
@@ -17,6 +17,7 @@ Documentation du projet, sur le modèle de [piscine_mobile/docs](../../piscine_m
|
||||
|----------|------|
|
||||
| **Reprise / état du projet** | [pedagogie/00-reprise-et-etat.md](pedagogie/00-reprise-et-etat.md) |
|
||||
| **Ce que le projet t’apporte** | [pedagogie/01-apports-pedagogiques.md](pedagogie/01-apports-pedagogiques.md) |
|
||||
| **Web3 — définition détaillée** | [pedagogie/02-web3-comprendre.md](pedagogie/02-web3-comprendre.md) |
|
||||
| **Guide de réalisation** | [pedagogie/guide-realisation.md](pedagogie/guide-realisation.md) |
|
||||
| Plan des étapes | [pedagogie/README.md](pedagogie/README.md) |
|
||||
|
||||
|
||||
242
docs/pedagogie/02-web3-comprendre.md
Normal file
242
docs/pedagogie/02-web3-comprendre.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# Web3 — définition et concepts (pour le projet Tokenizer)
|
||||
|
||||
> Document **pédagogique** (dépôt de travail). Le sujet Tokenizer indique seulement : *« This document is a Web3 related exercise »* — ce texte complète cette mention avant de coder.
|
||||
|
||||
---
|
||||
|
||||
## 1. Qu’est-ce que le Web3 ?
|
||||
|
||||
**Web3** (ou **Web 3.0**) désigne une **vision** d’Internet où les utilisateurs interagissent avec des **services numériques** en s’appuyant sur des **réseaux décentralisés** (souvent des **blockchains**), plutôt que sur des **plateformes centralisées** seules (serveurs d’une entreprise, comptes verrouillés chez un opérateur).
|
||||
|
||||
En pratique, quand on dit « projet Web3 » à l’école ou en entreprise, on parle souvent de :
|
||||
|
||||
- des **smart contracts** (programmes exécutés sur une chaîne) ;
|
||||
- des **tokens** (actifs numériques définis par ces contrats) ;
|
||||
- des **portefeuilles** (*wallets*) qui signent des transactions avec des **clés cryptographiques** ;
|
||||
- des **applications décentralisées** (**DApps**) qui lisent/écrivent l’état on-chain via des bibliothèques (ethers.js, web3.js, etc.).
|
||||
|
||||
Le Web3 n’est **pas** un protocole unique ni un fichier de norme ISO : c’est un **ensemble d’idées et de technologies** dont l’emballage marketing varie. Pour Tokenizer, l’angle utile est **technique** : tu crées un **token sur une blockchain publique** — c’est un brique classique de l’écosystème Web3.
|
||||
|
||||
---
|
||||
|
||||
## 2. Web1, Web2, Web3 — repères historiques (simplifiés)
|
||||
|
||||
| Génération | Image courante | Qui « possède » les données / la logique ? | Exemples |
|
||||
|------------|----------------|--------------------------------------------|----------|
|
||||
| **Web1** (~1990–2000) | Pages **lecture seule** | Éditeurs de sites, hébergeurs | Pages HTML statiques, premiers forums |
|
||||
| **Web2** (~2000–aujourd’hui) | **Lecture + écriture** sociale, apps riches | **Plateformes** (GAFAM, SaaS) : tes données et règles chez elles | Réseaux sociaux, Google Docs, API 42 hébergée par 42 |
|
||||
| **Web3** (depuis ~2017, terme popularisé) | **Lecture + écriture + propriété** d’actifs / règles on-chain | **Réseau** + contrats : l’état partagé est sur la chaîne ; l’utilisateur garde souvent sa **clé** | Tokens, DeFi, NFT, DApps |
|
||||
|
||||
Ces frontières sont **floues** : le Web2 n’a pas disparu ; la plupart des DApps ont encore un **site web classique** (Web2) qui parle à la blockchain (Web3).
|
||||
|
||||
**Lien Tokenizer :** tu ne construis pas tout un site décentralisé ; tu fabriques l’**actif** (token BEP-20) que d’autres apps Web3 pourraient utiliser plus tard.
|
||||
|
||||
---
|
||||
|
||||
## 3. Idées centrales du Web3 (vocabulaire)
|
||||
|
||||
### 3.1 Décentralisation
|
||||
|
||||
Plusieurs machines (nœuds) maintiennent une **copie** (ou une vue) du même registre. Personne ne peut, à lui seul, « effacer » une transaction validée selon les règles du protocole — contrairement à une base SQL sur un serveur unique.
|
||||
|
||||
- **Nuance :** « décentralisé » ≠ « parfaitement égalitaire ». Miners/validateurs, fondations, bridges peuvent concentrer du pouvoir. Il faut rester **critique**.
|
||||
|
||||
### 3.2 Blockchain
|
||||
|
||||
Chaîne de **blocs** liés par empreintes cryptographiques ; chaque bloc contient des **transactions** (ou des exécutions de contrats). Consensus (PoS, PoA, etc.) définit qui peut proposer le bloc suivant.
|
||||
|
||||
- **BNB Chain** (sujet Tokenizer) est une de ces chaînes, orientée **smart contracts** et volume d’usage.
|
||||
|
||||
### 3.3 Smart contract
|
||||
|
||||
Programme déployé à une **adresse** sur la chaîne. Une fois publié, son code est (en principe) **immuable** sauf si le contrat prévoit une mise à jour ou un proxy. Les utilisateurs l’appellent en envoyant des **transactions**.
|
||||
|
||||
- **Ton projet :** le token est un smart contract (souvent basé sur le standard **BEP-20**).
|
||||
|
||||
### 3.4 Token
|
||||
|
||||
Actif numérique défini par un contrat : soldes par adresse, transferts, parfois mint/burn. Un token peut représenter une **unité de compte** (style monnaie), des **parts**, ou un rôle dans un protocole — selon ce que **tu documentes**.
|
||||
|
||||
- **Contrainte 42 :** le **nom** doit contenir `42` ; le ticker et l’usage sont à toi (dans le cadre du sujet).
|
||||
|
||||
### 3.5 Wallet (portefeuille)
|
||||
|
||||
Logiciel ou matériel qui gère une **paire de clés** :
|
||||
|
||||
- **Adresse publique** (ex. `0xabc…`) — identifiant pour recevoir ;
|
||||
- **Clé privée** — secret qui **signe** les transactions (ne jamais la committer dans Git).
|
||||
|
||||
Sur testnet, le wallet contient des **tBNB** (gas) et tes tokens après déploiement / transfer.
|
||||
|
||||
### 3.6 DApp (Decentralized Application)
|
||||
|
||||
Application dont une partie critique repose sur des contrats on-chain (échanges, votes, tokens). Souvent : front web ou mobile + bibliothèque Web3 + RPC vers un nœud.
|
||||
|
||||
- Tokenizer **n’exige pas** une DApp complète ; le token est la brique de base.
|
||||
|
||||
### 3.7 Gas
|
||||
|
||||
Frais payés dans la **monnaie native** de la chaîne (BNB sur BSC, ETH sur Ethereum) pour exécuter une transaction. Sur **testnet**, cette monnaie n’a **pas de valeur réelle** — le sujet insiste : pas d’argent réel pour le projet.
|
||||
|
||||
### 3.8 Explorateur de blocs (BscScan, etc.)
|
||||
|
||||
Site qui indexe chaîne : adresses, transactions, code vérifié du contrat. Obligatoire pour **prouver** le déploiement et le ticker en soutenance.
|
||||
|
||||
---
|
||||
|
||||
## 4. Web3 et « crypto » — ne pas confondre
|
||||
|
||||
| Terme | Sens |
|
||||
|-------|------|
|
||||
| **Cryptographie** | Mathématiques (signatures, hash) — **fondation** technique de la blockchain |
|
||||
| **Crypto-actif / « crypto »** (langage courant) | Tokens échangeables, souvent spéculatifs — **contexte économique** |
|
||||
| **Web3** | Mouvement produit / dev autour d’apps et actifs on-chain |
|
||||
|
||||
Le projet Tokenizer est un exercice **d’ingénierie** (contrat, déploiement, sécurité, documentation), pas une recommandation d’investissement. Le partenariat **BNB Chain** situe l’exercice dans un **écosystème** réel, tout en utilisant le **testnet** pour éviter le risque financier.
|
||||
|
||||
---
|
||||
|
||||
## 5. Architecture mentale : où se place ton token ?
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph web2 [Couche familière Web2]
|
||||
User[Utilisateur]
|
||||
Browser[Navigateur / IDE / Git]
|
||||
end
|
||||
subgraph web3 [Couche Web3]
|
||||
Wallet[Wallet]
|
||||
RPC[Réseau RPC]
|
||||
Chain[Blockchain publique]
|
||||
SC[Smart contract Token BEP-20]
|
||||
Explorer[Explorateur BscScan]
|
||||
end
|
||||
User --> Browser
|
||||
User --> Wallet
|
||||
Wallet --> RPC
|
||||
RPC --> Chain
|
||||
Chain --> SC
|
||||
SC --> Explorer
|
||||
Browser --> Explorer
|
||||
```
|
||||
|
||||
1. Tu **écris** le contrat en local (`code/`).
|
||||
2. Tu **déploies** via un script (`deployment/`) — transaction signée par ton wallet test.
|
||||
3. Le contrat vit à une **adresse** sur la chaîne.
|
||||
4. Tout le monde peut **lire** l’état via l’explorateur ; les détenteurs de tokens **transfèrent** via leurs wallets.
|
||||
|
||||
---
|
||||
|
||||
## 6. Standards : pourquoi BEP-20 / ERC-20 ?
|
||||
|
||||
Les blockchains compatibles **EVM** (Ethereum, BSC, etc.) partagent souvent le même modèle de contrat. **ERC-20** (Ethereum) et **BEP-20** (BSC) décrivent les mêmes idées : `balanceOf`, `transfer`, `approve`, `allowance`, événements `Transfer`, etc.
|
||||
|
||||
Les wallets et explorateurs savent afficher un token **s’il respecte** ce standard. C’est pour cela que le sujet exige de respecter le standard de ta chaîne.
|
||||
|
||||
---
|
||||
|
||||
## 7. Sécurité — angle Web3 (rappel sujet)
|
||||
|
||||
Le Web3 déplace une partie des risques vers **le code** et **les clés** :
|
||||
|
||||
| Risque | Exemple |
|
||||
|--------|---------|
|
||||
| Clé privée exposée | Drain du wallet |
|
||||
| `owner` trop puissant | Mint illimité, vol de confiance |
|
||||
| Bug de contrat | Fonds ou tokens bloqués / volés |
|
||||
| Mauvaise doc | Utilisateurs qui ne comprennent pas les privilèges |
|
||||
|
||||
Tokenizer te demande explicitement de réfléchir à **ownership** et **privilèges** et de le montrer en **démo minimale** + **revue de code**.
|
||||
|
||||
---
|
||||
|
||||
## 8. Ce que le Web3 t’apporte dans *ce* projet (résumé)
|
||||
|
||||
| Concept Web3 | Dans Tokenizer |
|
||||
|--------------|----------------|
|
||||
| Blockchain publique | Déploiement testnet + adresse dans README |
|
||||
| Smart contract | `code/` — token |
|
||||
| Token standard | BEP-20 (recommandé) |
|
||||
| Wallet + gas | tBNB via faucet |
|
||||
| Transparence | Explorer + verify |
|
||||
| Gouvernance minimale | Owner, éventuel bonus multisig |
|
||||
|
||||
Pour aller plus loin sur les **compétences** visées : [01-apports-pedagogiques.md](01-apports-pedagogiques.md).
|
||||
Pour passer à l’action : [guide-realisation.md](guide-realisation.md).
|
||||
|
||||
---
|
||||
|
||||
## 9. Lectures utiles (hors 42)
|
||||
|
||||
- [Ethereum.org — Introduction](https://ethereum.org/fr/developers/docs/intro-to-ethereum/) (concepts transférables à BSC)
|
||||
- [BNB Chain — documentation développeurs](https://www.bnbchain.org/en/developers)
|
||||
- [OpenZeppelin — ERC20](https://docs.openzeppelin.com/contracts/5.x/erc20)
|
||||
|
||||
---
|
||||
|
||||
## 10. BNB, BNB Chain et Binance (partenaire du sujet)
|
||||
|
||||
Le chapitre I du sujet parle de **BNB Chain** et du faucet **tBNB**. Le sigle **BNB** prête souvent à confusion avec **Binance** : voici une cartographie claire pour Tokenizer.
|
||||
|
||||
### 10.1 Trois sens différents de « BNB »
|
||||
|
||||
| Sens | Explication |
|
||||
|------|-------------|
|
||||
| **BNB Chain** | Le **réseau blockchain** (smart contracts, tokens, DApps). Nom marketing actuel : *Build N Build* — c’est ce que le PDF cite en partenariat avec 42. |
|
||||
| **BNB (l’actif)** | La **monnaie native** de cette chaîne : tu la dépenses en **gas** pour déployer un contrat ou envoyer une transaction. |
|
||||
| **tBNB** | Même rôle sur le **testnet** : BNB de **test**, **sans valeur réelle** — obtenu via le [faucet](https://www.bnbchain.org/en/testnet-faucet) du sujet. |
|
||||
|
||||
Ton token du projet (BEP-20) est un **autre** contrat : ce n’est pas le BNB natif, mais il vit sur la **même chaîne** et les transferts de ton token consomment aussi du gas payé en (t)BNB.
|
||||
|
||||
### 10.2 Rapport avec Binance
|
||||
|
||||
**Oui, il y a un lien historique et économique**, mais **BNB Chain n’est pas « l’application Binance »** au sens du site d’échange.
|
||||
|
||||
| Élément | Rôle |
|
||||
|---------|------|
|
||||
| **Binance** | Entreprise fondée en 2017, connue surtout comme **plateforme d’échange** centralisée (ordres, carnets, comptes utilisateurs). |
|
||||
| **Origine du token BNB** | Lancé par l’écosystème Binance ; le nom venait souvent de **Binance Coin** à l’époque. |
|
||||
| **Binance Smart Chain (BSC)** | Lancée en 2020 : chaîne **compatible EVM** (proche d’Ethereum) pour des contrats moins chers / rapides que le mainnet ETH de l’époque. |
|
||||
| **Rebranding BNB Chain** | La chaîne et la marque ont été regroupées sous **BNB Chain** (*Build N Build*) : communication orientée **réseau pour développeurs**, pas seulement exchange. |
|
||||
|
||||
En soutenance, une formulation honnête et suffisante :
|
||||
|
||||
> « Le sujet est en partenariat avec **BNB Chain**. BNB est la monnaie native de ce réseau ; l’écosystème est lié historiquement à **Binance**, mais mon projet tourne sur le **testnet public** avec **tBNB** — je n’utilise pas de fonds réels ni le compte trading Binance. »
|
||||
|
||||
### 10.3 Noms que tu peux croiser (glossaire)
|
||||
|
||||
| Abréviation | Signification | Utile pour Tokenizer |
|
||||
|-------------|---------------|----------------------|
|
||||
| **BSC** | *Binance Smart Chain* — ancien nom courant de la chaîne | Encore utilisé dans les tutos (MetaMask « BSC Testnet ») |
|
||||
| **BNB Smart Chain** | Formulation intermédiaire | Même famille que BSC / BNB Chain |
|
||||
| **BEP-20** | Standard des **tokens** sur BNB Chain | **Obligatoire** à respecter (équivalent ERC-20) |
|
||||
| **BEP-2** | Ancien format sur une autre brique (Binance Chain legacy) | **Pas** le standard de ton exercice type ERC-20/BEP-20 |
|
||||
| **BscScan** | Explorateur de blocs pour BSC / BNB Chain | Où publier l’adresse du contrat après déploiement |
|
||||
| **chainId 97** | Identifiant du **BSC Testnet** | À mentionner dans le README école avec l’adresse |
|
||||
|
||||
### 10.4 Ce dont tu as besoin (et ce dont tu n’as pas besoin)
|
||||
|
||||
| Besoin | Pourquoi |
|
||||
|--------|----------|
|
||||
| **Wallet** (MetaMask, Rabby, etc.) | Adresse + signature des transactions de déploiement |
|
||||
| **RPC testnet** | Connexion Hardhat / Remix à la chaîne de test |
|
||||
| **tBNB** (faucet) | Payer le gas du deploy et des démos |
|
||||
| **Compte Binance / KYC** | **Non requis** pour le projet tel que décrit dans le sujet |
|
||||
|
||||
Le **mainnet** BNB (vrai BNB avec valeur marché) n’est **pas** demandé ; le sujet insiste sur les **test chains**.
|
||||
|
||||
### 10.5 Lien avec le chapitre I du PDF
|
||||
|
||||
Le partenariat **42 × BNB Chain** explique :
|
||||
|
||||
- les statistiques d’usage (volume, DApps) dans le préambule ;
|
||||
- le lien vers [bnbchain.org](https://www.bnbchain.org/) (Figure I.1) ;
|
||||
- le **faucet** pour développer sans argent réel.
|
||||
|
||||
Ce n’impose pas juridiquement BSC en une phrase « tu dois utiliser BSC », mais c’est la piste **la plus alignée** avec le sujet (BEP-20, tBNB, BscScan). Une autre chaîne EVM reste possible si tu **justifies** tes choix dans le README école.
|
||||
|
||||
→ Rappel dans le sujet traduit : [Chapitre I — BNB, Binance et BNB Chain](../sujets/tokenizer.md#bnb-binance-et-bnb-chain).
|
||||
|
||||
---
|
||||
|
||||
*Dernière révision : ajout section BNB / Binance — à compléter si tu choisis une chaîne non-EVM (peu courant pour ce sujet).*
|
||||
@@ -10,6 +10,8 @@ Parcours pour construire le projet **étape par étape** et le défendre en sout
|
||||
|
||||
→ **[01-apports-pedagogiques.md](01-apports-pedagogiques.md)** — **ce que ce projet t’apporte** (compétences, concepts).
|
||||
|
||||
→ **[02-web3-comprendre.md](02-web3-comprendre.md)** — **Web3 : définition détaillée** (Web1/2/3, blockchain, token, wallet, **BNB / Binance**, lien avec Tokenizer).
|
||||
|
||||
## Prérequis suggérés
|
||||
|
||||
| Domaine | Niveau attendu |
|
||||
@@ -45,6 +47,7 @@ README correcteurs (dépôt école) : [tokenizerRendu/README.md](../../tokenizer
|
||||
|---------|------|
|
||||
| [00-reprise-et-etat.md](00-reprise-et-etat.md) | État, arborescence, reprise |
|
||||
| [01-apports-pedagogiques.md](01-apports-pedagogiques.md) | Valeur pédagogique du projet |
|
||||
| [02-web3-comprendre.md](02-web3-comprendre.md) | Web3 — définitions et vocabulaire |
|
||||
| [guide-realisation.md](guide-realisation.md) | Réalisation technique pas à pas |
|
||||
|
||||
Demande dans le chat l’étape à approfondir : le guide pourra être mis à jour au fil du code (fichiers réels, adresses, scripts).
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|-------|---------------------|------------|
|
||||
| Titre | Tokenizer | Tokenizer |
|
||||
| Sous-titre | Build your own token | Construis ton propre token |
|
||||
| Résumé | This document is a Web3 related exercise. | Ce document est un exercice lié au **Web3**. |
|
||||
| Résumé | This document is a Web3 related exercise. | Ce document est un exercice lié au **Web3** → voir [définition détaillée](../pedagogie/02-web3-comprendre.md). |
|
||||
| Version | 1.1 | 1.1 |
|
||||
|
||||
### Référence visuelle — couverture
|
||||
@@ -54,6 +54,21 @@ Tu peux obtenir des **tBNB** (BNB de **test**, sans argent réel) via le faucet
|
||||
|
||||
- [BNB Chain Faucet](https://www.bnbchain.org/en/testnet-faucet) (lien cité dans le sujet : *BNB Chain Faucet*)
|
||||
|
||||
### BNB, Binance et BNB Chain
|
||||
|
||||
Le sigle **BNB** désigne à la fois l’**écosystème blockchain** du sujet (**BNB Chain**, *Build N Build*) et la **monnaie native** utilisée pour payer le **gas**. Sur testnet, on utilise **tBNB** (sans valeur réelle).
|
||||
|
||||
**Rapport avec Binance :** oui, **historiquement** — Binance a lancé et porté cet écosystème (l’actif s’appelait souvent *Binance Coin* ; la chaîne s’appelait **Binance Smart Chain**, **BSC**). Aujourd’hui la communication officielle parle surtout de **BNB Chain** comme réseau pour développeurs et DApps. Ce n’est **pas** le même produit que l’application d’**échange** Binance : pour Tokenizer, tu n’as en principe **pas besoin** d’un compte Binance — wallet + **testnet** + faucet suffisent.
|
||||
|
||||
| Terme | En bref |
|
||||
|-------|---------|
|
||||
| **Binance** | Exchange centralisé (entreprise) |
|
||||
| **BNB Chain / BSC** | Blockchain smart contracts (ton déploiement) |
|
||||
| **BEP-20** | Standard de **ton** token sur cette chaîne |
|
||||
| **BscScan (testnet)** | Explorateur pour prouver le contrat déployé |
|
||||
|
||||
→ Développement détaillé : [section 10 — BNB, BNB Chain et Binance](../pedagogie/02-web3-comprendre.md#10-bnb-bnb-chain-et-binance-partenaire-du-sujet).
|
||||
|
||||
### Référence visuelle — Figure I.1 (PDF page 2)
|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user