Comment apprendre la solidité pour les débutants

Comment apprendre la solidité pour les débutants

Qu’est-ce que la solidité ?

Solidity est le langage de programmation qui a permis à Ethereum d’étendre la technologie blockchain au-delà des crypto-monnaies peer-to-peer de style Bitcoin pour devenir ce que l’un de ses créateurs appelle « un ordinateur pour la planète entière ».

Il a été proposé en 2014 par le Dr Gavin Wood, qui a travaillé avec Vitalik Buterin pour développer Ethereum. La solidité est le langage des contrats intelligents auto-exécutables au cœur de la blockchain n°2. Considérant que les applications décentralisées – DApps – sont essentiellement des contrats intelligents très complexes, Solidity est le langage sur lequel tout, des plates-formes de financement décentralisé (DeFi) aux jeux cryptographiques et aux outils de gestion de la chaîne d’approvisionnement, est construit.
Fondamentalement, tout ce qui s’exécute dans la machine virtuelle Ethereum – le moteur de calcul isolé d’Ethereum dans lequel tous les contrats intelligents sont créés, exécutés et exécutés – peut être, et est en grande partie, construit à l’aide de Solidity.

Avantages de la solidité

La solidité a un certain nombre de points forts qui ont contribué à faire d’Ethereum un mastodonte. D’une part, il a été conçu pour être assez simple à utiliser par toute personne ayant une connaissance de base des langages de programmation tels que Javascript ou C++.

D’autre part, ses contrats intelligents sont construits sur une blockchain, ils ne peuvent donc pas être modifiés ou supprimés. Cela signifie qu’Ethereum est un moyen très sûr de faire ce pour quoi il a été conçu – transférer tout ce qui a de la valeur, en utilisant soit les jetons Ether natifs, soit les jetons ERC-20 compatibles mais en marque blanche pour payer ces transactions.

Limites de solidité

Ce dernier est cependant une épée à double tranchant, car cela signifie que tout contrat intelligent Solidity doit être parfaitement écrit. Comme les experts en conception de cryptographie aiment à le dire : « Le code est la loi ».

Les erreurs ne peuvent pas être corrigées, les transactions ne peuvent pas être annulées et les exploits ne peuvent être corrigés qu’en mettant à jour le code Ethereum – ce qui nécessite la participation de nœuds individuels qui n’est pas toujours disponible, du moins pas rapidement.

C’était un problème avec le piratage DAO 2016 qui a drainé 60 millions de dollars en 2016 en utilisant une vulnérabilité EVM appelée réentrance – l’un des un certain nombre d’exploits connus – tout comme c’était un problème avec le piratage du 27 août 2021 qui a provoqué un fork dans la blockchain Ethereum. Dans les deux cas, l’exploit était connu et un correctif avait été publié lorsqu’il a été exploité.
En juillet, le plus grand échange de crypto-monnaie américain, Coinbase, a publié un outil nommé Solidifier, qui est utilisé pour détecter et classer les risques liés aux contrats intelligents, un audit automatisé. Comme le nom de l’outil l’indique, son objectif est d’améliorer les contrats intelligents Solidity en trouvant des failles potentielles, ce que fait Coinbase dans son examen rigoureux mais chronophage des protocoles dont il envisage de lister les jetons.

Combien de temps faut-il pour apprendre la solidité ?

La solidité est ce qu’on appelle un haut niveau, programmation orientée objet (OOP) développé pour et principalement utilisé par la blockchain Ethereum. Les POO permettent aux développeurs de créer des programmes à l’aide d’extraits de code prédéfinis.

Solidity a été conçu pour être particulièrement convivial pour toute personne ayant une connaissance de base d’autres langages de codage plus courants, notamment C++, Java, JavaScript et Python. Cela signifie que les personnes ayant une expérience des concepts généraux de programmation et des langages de codage susmentionnés prendraient moins de temps pour apprendre Solidity. Cela peut prendre de un à six mois.

Cependant, si vous n’avez aucune idée du fonctionnement de la programmation — et que votre seule connaissance est celle d’un super codeur ténébreux – alors la seconde moitié de cet article pourrait être pour vous. Il existe de nombreux cours adaptés aux débutants complets pour acquérir les bases de Solidity, même sans connaissances en programmation.

Combien gagnent les développeurs Solidity ?

Mais d’abord, pourquoi voudriez-vous investir des heures de votre temps précieux à apprendre à coder dans Solidity, au lieu de vérifier les prix du prochain gros jeton meme sur CoinMarketCap ?
Selon cryptocurrencyjobs.co, le salaire de base moyen pour un développeur Solidity varie de 125 000 $ à 145 000 $. Compte tenu de la croissance explosive du secteur de la cryptographie dans son ensemble et de la demande croissante d’emplois dans la cryptographie, vous pouvez vous attendre à ce que les développeurs de Solidity soient de plus en plus recherchés.

Déjà convaincu ? Sur ce, plongeons dans l’apprentissage de Solidity avec CryptoZombies.

Comment apprendre la solidité pour les débutants avec CryptoZombies

L’une des meilleures façons d’apprendre Solidity est avec CryptoZombies – une école de codage interactive gratuite utilisée par plus de 400 000 étudiants pour apprendre à créer des DApps Blockchain en créant un jeu vidéo simple.

Il existe deux programmes : la conception de contrats intelligents de base à intermédiaire et Solidity avancé, qui couvre le test et le déploiement de DApps comme votre jeu de zombies, et la création d’oracles qui apportent des données externes fiables sur lesquelles les contrats intelligents peuvent s’appuyer pour déterminer quand s’exécuter.

Leçon de base : Créer vos crypto-zombies

Le plan de cours de base commence par la construction de votre usine de zombies – la création d’une base de données de zombies individuels sur la blockchain, une méthode pour en créer de nouveaux et une fonction numérique « ADN » qui contrôle l’apparence de chaque zombie – et celle des autres créatures qu’ils infectent. C’est-à-dire fabriquer les personnages.

Il y a six leçons, chacune avec 11 à 15 étapes couvrant différents concepts de conception Solidity. Celles-ci contiennent à la fois une explication écrite très claire et simple de ce que vous faites et pourquoi vous le faites, ainsi que des champs de codage qui vous guident dans la création du code pour créer les sections de contrat intelligentes qui composent le jeu. C’est là que vous avez besoin d’une certaine familiarité avec le codage, mais cela se résume en grande partie à la compréhension de la terminologie et des concepts de base – ces extraits de code sont utilisés, et chaque chapitre a un bouton « vérifier la réponse » qui donne la bonne réponse si vous vous trompez.

Par exemple, cela implique de créer des structures – en donnant au zombie un nom et une chaîne d’ADN – en rendant publique la base de données des zombies et en utilisant ces informations ADN.

Concepts avancés de solidité sur CryptoZombies

Le deuxième ensemble de programmes couvre la création d’un moyen pour les zombies de se multiplier en se nourrissant et en infectant d’autres formes de vie – en ajoutant et en définissant la dynamique du jeu. Les collations de zombies peuvent être des humains construits dans le jeu, mais le plan de leçon crée un moyen d’infecter les CryptoKitties – eh bien, en utilisant leurs informations ADN pour créer de nouveaux zombies sans endommager les avatars NFT coûteux. Ce qui revient à apprendre à faire interagir son contrat intelligent avec un contrat extérieur.

Entre autres choses, cela inclut de rendre les zombies propriétaires – en donnant à un utilisateur des privilèges spéciaux – en utilisant des mappages et des adresses. Ensuite, il passe à la création de l’interface CryptoKitties et à la détermination de la manière dont les gènes qui en sont extraits créent des zombies avec de nouveaux traits – comme des queues – pour accompagner la couleur et la forme des yeux, les nuances de peau vives et la conception des vêtements.

D’autres leçons viennent après cela, couvrant des problèmes allant de rendre les CryptoZombies propriétaires, de payer les frais de transaction de gaz Ethereum et de garder les zombies en sécurité.

Leçon avancée : Création de NFT de zombies

Ceux-ci sont suivis d’un système de combat; utiliser la norme ERC-721 pour créer des jetons non fongibles – NFT – qui contiennent un zombie unique ainsi que « externaliser » la nécessité de créer un système d’enchères permettant aux utilisateurs d’acheter, de vendre et d’échanger des zombies ; et la création d’une interface utilisateur frontale comprenant tout, de l’interaction du portefeuille MetaMask à la gestion des transactions.

Les leçons avancées couvrent le test des erreurs de vos contrats intelligents, le déploiement de vos contrats intelligents et la création d’oracles. Il y a quelques endroits où du JavaScript est nécessaire en plus de Solidity.

Autres leçons

Après cela, le programme « Beyond Ethereum » couvre les blockchains non-Ethereum, y compris le stablecoin Diem (anciennement Libra), la chaîne intelligente Binance basée sur Ethereum et l’utilisation de preuves à connaissance nulle – zkSync – assurant la sécurité des transferts de jetons, entre autres choses.

Et puis vous avez un jeu de zombies qui vous a aidé à apprendre à créer des DApps blockchain et des contrats intelligents – une bonne chose à un moment où de nombreuses entreprises blockchain sont bloquées par un «pénurie massive d’approvisionnement” des développeurs qui comprennent la blockchain.