Ethereum, Smart Contract et dApps Mixte : présentiel / à distance
Dernière mise à jour : 08/03/2023
Présentation
Cette formation est conçue pour les programmeurs et les développeurs désirant se plonger dans la rédaction de smart contracts et la création d'applications qui interagissent avec. Cette formation vous fournira un aperçu détaillé d'Ethereum, des smart contracts et du langage de développement Solidity.
Vous découvrirez les fonctionnalités adaptables d'Ethereum qui vous permettront concevoir des applications décentralisées pour d'innombrables applications. Vous participerez également à des sessions de travaux pratiques pour apprendre, développer et faire progresser vos compétences dans le développement avec Ethereum.
Objectifs
- Acquérir une excellente compréhension générale de l'architecture Ethereum et du langage Solidity.
- Expliquer les composants fonctionnels, y compris les smart contracts, nécessaires au développement d'une Blockchain Ethereum.
- Comprendre comment instancier une application Ethereum sur le réseau.
- Acquérir une compréhension approfondie de la manière dont les transactions sont créées et mises en œuvre sur un réseau Ethereum.
Programme
Les bases du Blockchain et des Smart Contract
- Qu'est-ce que la Blockchain et comment fonctionne-t-elle ?
- Information centralisée vs décentralisée vs distribuée
- Blockchain vs BDD
- Bitcoin vs Ethereum
- Comment les Smart Contracts sont-ils utilisés ?
Les bases de la programmation des Smart Contracts
- Avantages et inconvénients des Smart Contracts
- Layer 1 vs. Layer 2
- Langage de haut niveau vs langage de bas niveau
- Comparaison des langages Solidity, Vyper, et autres
- Smart Contracts avec Solidity
- Mise en page d'un fichier Solidity
- Travaux pratiques
Comprendre l'information décentralisée et le Web3
- Types de variables dans Solidity
- Fonction/Visibilité variable
- Constructeurs Smart Contract
- Structures et architectures de la chaîne d'accès
- Nœuds Blockchain distants vs nœuds Blockchain locaux
- Blockchain Access vs. API RESTful centralisée
- Comprendre l'API Web3.js
- Comprendre les transactions et le consensus
- Clés privées, clés publiques et signatures
- Comprendre le respect de la vie privée dans les Blockchains publiques
- Comprendre l'architecture des gestionnaires de clés (KeyStores) tels que MetaMask ou MIST
- Travaux pratiques
Les bases d'Ethereum et de l'EVM (Etherum Virtual Machine)
- Installation et configuration de MetaMask
- Utilisation du Ropsten (Testnet) Ethereum
- Traçage de l'Ether par des explorateurs de Blockchain
- Comprendre Infura
- Dénominations d'Ethereum
- Comprendre l'EVM et l'interface ABI
- Appels vs transactions
- Concurrence et événements
- Cas d'utilisation des événements
- Travaux pratiques
Solidity avancé : modificateurs, mappings, Structs et héritages
- Installer et utiliser Ganache
- Travailler avec Web3.js
- Travailler avec Infura
- Définir des événements
- Écouter et réagir aux événements
- Comprendre les fonctions, les mappings et les Structs
- Quand utiliser les modificateurs
- Bibliothèques vs héritage
- Travaux pratiques
Comprendre le déploiement et les coûts
- Comprendre et utiliser les modificateurs
- Ajouter des mappings et des Structs
- Utiliser Inherita
- Utiliser l'héritage pour accroître la contrôlabilité
- Comprendre les cycles de développement et de déploiement
- Comprendre la compilation et le déploiement de Solidity
- L'unité de mesure « Gaz » et coûts de revient du gaz
- Techniques de mise à niveau et de migration des données
- Comprendre les parties mobiles : Compilateur, Blockchain, API, KeyStore
- Travaux pratiques
Mining, Proof of Work vs. Proof of Authority
- Passer des chaînes de caractères aux octets (économiser du gaz)
- Déploiement à l'aide du Test-Ether Ropsten
- Comprendre la différence lorsqu'on utilise une véritable Blockchain
- Utiliser une application distribuée pleinement fonctionnelle
- Qu'est-ce que le Mining dans PoW ?
- Comment les blocs sont générés
- PoW vs. PoA (vs. PoS)
- Comprendre le Go-Ethereum ou Ganache/TestRPC pour le développement local
- Comprendre les différences entre Blockchains privées et Blockchains publiques
- Travaux pratiques sur le Mining
- Problèmes actuels, solutions, perspectives, Serenity
- Travail en équipe, tests et versions
- IPFS et stockage de fichiers distribué
Compilation
- Installation et utilisation de Ganache
- Installation et utilisation de Go-Ethereum
- Connexion à Ganache/Go-Ethereum à partir de Remix et Web3.js
- Interagir avec la Blockchain avec HTML/JS
- Ethereum aujourd'hui et Ethereum demain
- Où en sommes-nous avec Ethereum ?
- Homestead
- PoW
- Vers où se dirige Ethereum ?
- Serenity
- PoS + PoW à PoS
- Sharding
- Newsletters/groupes recommandés
- Comprendre ce qu'est Truffle
- Comparaison avec Embark
- Comment gérer le code pour les équipes
- Comprendre les migrations
- Comprendre le test unitaire avec Truffle
- Travaux pratiques :
- Télécharger et installer Truffle
- Adapter le projet standard sur Truffle
- Écrire un test unitaire
- Qu'est-ce que l'IPFS ?
- Comparaison entre IPFS, FileCoin, Swarm, Sia et Storj
- Travaux pratiques :
- Installer et travailler avec l'IPFS
- Charger et récupérer un fichier entièrement décentralisé
- Travaux pratiques :
- Compiler un fichier Solidity avec un compilateur en ligne de commande
Public visé
- Programmeurs
- Développeurs d'applications
- Architectes système
- Architectes réseau
- Architectes sécurité des réseaux
Modalités pédagogiques
Softeam Institute propose plusieurs dispositifs pédagogiques adaptés aux stagiaires :
- Formation en présentiel
- En groupe (inter-entreprises ou intra-entreprise)
- En individuel (monitorat)
- En journée ou en cours du soir (sur demande spécifique)
- Formation en distanciel
- Distanciel synchrone
- Distanciel asynchrone
Prérequis
- Connaissances de base en JavaScript / HTML indispensables
- Connaissances de base en C ++ / Java recommandées
- Connaissances des types de données recommandées
- Connaissances de base sur les dépôts git recommandées
Moyens et supports pédagogiques
- Apports didactiques pour apporter des connaissances communes.
- Mises en situation de réflexion sur le thème du stage et des cas concrets.
- Méthodologie d'apprentissage attractive, interactive et participative.
- Equilibre théorie / pratique : 60 % / 40 %.
- Supports de cours fournis au format papier et/ou numérique.
- Ressources documentaires en ligne et références mises à disposition par le formateur.
- Pour les formations en présentiel dans les locaux de Softeam, les stagiaires sont accueillis dans une salle de cours équipée d'un réseau Wi-Fi, d'un tableau blanc ou paperboard. Un carnet de notes est offert. Un ordinateur avec les logiciels appropriés est mis à disposition (le cas échéant).
Modalités d'évaluation et de suivi
En amont de la formation :
- Recueil des besoins : permet de récolter des informations sur le stagiaire (profil, formation, attentes particulières, ...).
- Auto-positionnement des stagiaires afin de mesurer le niveau de départ.
Tout au long de la formation :
- Évaluation continue des acquis via des questions orales, exercices / projet fil rouge, des QCM, des cas pratiques et mises en situation.
A la fin de la formation :
- Auto-positionnement des stagiaires afin de mesurer l'acquisition des compétences.
- Evaluation du formateur des compétences acquises par les stagiaires.
- Questionnaire de satisfaction à chaud : permet de connaître le ressenti des stagiaires à l'issue de la formation.
- Questionnaire de satisfaction à froid : permet d'évaluer les apports réels de la formation et leurs mises en application au quotidien.