Description
Le programme de formation en programmation avancée en Solidity vise à approfondir les compétences des développeurs dans la création de smart contracts et d'applications décentralisées (dApps). Les participants exploreront des concepts tels que les structures de données complexes, la sécurité des smart contracts, et l'intégration de protocoles DeFi. Des ateliers pratiques permettront de développer et tester des contrats sécurisés, tout en utilisant des outils d'optimisation et de sécurité. Ce programme s'adresse aux développeurs souhaitant maîtriser des techniques avancées et se préparer à des projets complexes dans l'écosystème blockchain.
Objectifs
- Maîtriser les concepts avancés de la programmation en Solidity
- Optimiser la performance et la sécurité des smart contracts
- Développer et déployer des applications décentralisées (dApps) complexes
- Intégrer des protocoles DeFi et d'autres services blockchain dans des smart contracts
- Utiliser des outils avancés pour le test, le débogage et la gestion des smart contracts
- Appliquer les meilleures pratiques pour la sécurité et l'optimisation des gas fees
Récapitulatif
Public
développeurs ayant déjà une expérience de base en programmation de smart contracts et souhaitant approfondir leurs compétences
Prérequis
Connaissance de base de la programmation en Solidity
Expérience pratique dans le développement et le déploiement de smart contracts simples
Familiarité avec les concepts de la blockchain et de la technologie des registres distribués
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
Programmation avancée en Solidity
- Structures de données complexes : mappings, structs, arrays dynamiques :
- Solidity permet la gestion avancée des données avec des structures comme les mappings, structs pour regrouper des données de types différents, et les arrays dynamiques pour stocker des collections de données dont la taille peut varier.
- Modifiants, événements, et gestion des erreurs :
- Les modifiants sont des fonctionnalités permettant de modifier le comportement des fonctions dans Solidity, utiles pour la gestion des autorisations et des conditions préalables. Les événements permettent de notifier les utilisateurs des changements d'état importants dans les contrats. La gestion des erreurs est cruciale pour assurer la robustesse des smart contracts.
- Inheritance et design patterns en Solidity :
- L'héritage en Solidity permet la réutilisation du code et la structuration des smart contracts en utilisant des contrats parents et des contrats enfants. Les design patterns comme Singleton, Factory, et Proxy sont des approches avancées pour organiser et optimiser la logique des contrats.
Optimisation des smart contracts
- Techniques d'optimisation pour réduire les gas fees :
- Les gas fees sont des frais de traitement sur Ethereum. L'optimisation inclut la réduction de la complexité des opérations, l'utilisation de types de données moins coûteux en gas, et l'évitement de boucles coûteuses pour minimiser les frais de transaction.
- Utilisation de la bibliothèque OpenZeppelin pour des implémentations sécurisées et optimisées :
- OpenZeppelin offre des bibliothèques sécurisées pour le développement de smart contracts, prévenant des vulnérabilités courantes et facilitant l'implémentation de standards comme ERC-20 et ERC-721 avec des contrats robustes et testés.
Sécurité des smart contracts
- Analyse des vulnérabilités courantes : reentrancy, integer overflow/underflow, etc :
- Les vulnérabilités comme la reentrancy (exploitée dans le hack de The DAO), et les erreurs d'overflow/underflow peuvent causer des failles critiques. Comprendre et prévenir ces risques est essentiel pour assurer la sécurité des smart contracts.
- Pratiques de codage sécurisé et utilisation d'outils de sécurité (MythX, Slither) :
- MythX et Slither sont des outils d'analyse statique qui identifient automatiquement les vulnérabilités dans le code des smart contracts, permettant aux développeurs de corriger les problèmes de sécurité avant le déploiement.
- Audit de smart contracts et étude de cas de hacks célèbres :
- Les audits de sécurité par des experts sont recommandés pour identifier et corriger les failles potentielles. L'étude des hacks célèbres comme celui de Parity ou de KuCoin enrichit la compréhension des risques et des bonnes pratiques en matière de sécurité.
Atelier
- Implémentation de Smart Contracts Sécurisés
- Les participants développeront, testeront et auditeront des smart contracts complexes en utilisant les meilleures pratiques de sécurité. L'utilisation d'outils comme MythX et la rédaction de tests rigoureux garantiront la robustesse des contrats.
Développement et intégration de dApps
Développement de dApps avancées
- Les frameworks comme Truffle et Hardhat simplifient le développement d'interfaces utilisateur (UI) interactives qui interagissent avec les smart contracts via Web3.js ou Ethers.js. Cela permet aux développeurs de créer des applications décentralisées (dApps) complexes avec une interface utilisateur conviviale.
Intégration des protocoles DEFI
- Les protocoles DeFi comme Uniswap, Compound et Aave sont intégrés aux smart contracts pour offrir des fonctionnalités financières avancées telles que le prêt, le trading et le yield farming. Les développeurs apprendront à intégrer ces protocoles dans leurs dApps pour fournir des services financiers décentralisés.
Test et déploiement avancé
- Utilisation de Ganache pour des tests locaux avancés :
- Ganache permet aux développeurs de simuler des réseaux Ethereum locaux pour tester et déboguer leurs smart contracts dans des environnements contrôlés avant le déploiement sur le réseau principal.
- Stratégies de débogage et gestion des migrations de smart contracts :
- Les développeurs apprendront des techniques de débogage avancées pour identifier et résoudre les erreurs dans leurs smart contracts. La gestion des migrations assure la mise à jour et la gestion efficace des versions des contrats déployés.
Atelier
- Projet Capstone : Développement d'une dApp Complexe
- Les participants concevront, développeront et déploieront une dApp intégrant des fonctionnalités avancées et des protocoles DeFi. La présentation et la revue des projets par les pairs permettront de consolider les compétences acquises et de partager les meilleures pratiques.
Session de clôture : synthèse et Q&R
- Récapitulatif des concepts avancés en Solidity et des meilleures pratiques de développement de dApps. Les formateurs guideront une discussion sur les prochaines étapes pour devenir un expert en développement blockchain. La session de questions-réponses offrira aux participants l'occasion d'approfondir leurs connaissances et de discuter des tendances émergentes dans l'écosystème blockchain.