
Fin 2023, la société de capital-risque Andreessen Horowitz a publié une liste de « grandes idées » dans l’industrie de la cryptographie. Les experts ont souligné le redémarrage UX lors de la création d’applications de crypto-monnaie, ainsi que le développement d’une pile technologique modulaire dans le développement Web3.
En collaboration avec le fournisseur RPC-node GetBlock nous parlons de ce qu’un ingénieur Web3 doit savoir et pouvoir faire en 2024.
Pile technologique de développement Web3
La pile technologique est un ensemble de technologies, d’outils et de langages de programmation permettant de créer des logiciels. Par exemple, MEAN (MongoDB, Express.js, AngularJS/Angular, Node.js) et MERN (MongoDB, Express.js, React, Node.js) sont des piles de développeurs Web populaires.
Web3 comporte quatre composants principaux :
- bibliothèques. Avec leur aide, ils créent des applications qui s’exécutent ou accèdent à la blockchain ;
- contrats intelligents. Immuable code exécuté à l’intérieur du réseau ;
- portefeuilles. L’adresse est un identifiant d’utilisateur ou de contrat intelligent, ainsi qu’un stockage de crypto-monnaies et de jetons ;
- nœuds. Stockez une copie de la blockchain. Sans nœuds, la bibliothèque Web3 ne pourra pas interagir avec les contrats intelligents.
Les outils suivants sont conçus pour fonctionner avec eux :
- GetBlock est un fournisseur qui assure la communication avec les nœuds ; Remixer – EDI pour tester, déployer et exécuter des contrats intelligents dans le navigateur ;
- Casque ― environnement de développement local sur Ethereum. Il vous permet de déployer des applications et des contrats intelligents sur les réseaux de test de Mumbai et Goerli et sur le réseau principal Ethereum ;
- MétaMasque – Portefeuille Web3 basé sur un navigateur. Les développeurs l’utilisent pour les tests et le déploiement dappsutilisateurs – pour stocker des actifs cryptographiques et interagir avec Web3 ;
- Étherscan – Navigateur Ethereum affichant l’état de la transaction et les détails du contrat intelligent.
Pour créer des applications Web3, vous aurez également besoin de connaissances en JavaScript et Solidity.
« En étudiant ces concepts et outils, un développeur novice comprendra comment, par exemple, fonctionne un portefeuille de crypto-monnaie et ce qu’il faut faire pour créer un produit similaire », commente l’équipe GetBlock.
Fournisseurs de nœuds
Pour échanger des données avec la blockchain, vous avez besoin d’un nœud complet auquel tout service de crypto-monnaie peut accéder. Le nœud fournit des données sur les transactions, les blocages, les soldes et saisit les modifications survenues..
Par exemple, pour qu’Alice envoie 1 ETH à Bob, le portefeuille doit vérifier combien d’argent les deux ont avant l’envoi, vérifier qu’Alice a autorisé la transaction et que le portefeuille de Bob est valide, puis « dire » à la blockchain que les soldes ont changé. .
Vous pouvez exécuter vous-même un nœud complet : louer un serveur virtuel ou en acheter un physique, installer le client du nœud et attendre la synchronisation avec les mêmes participants.
Il s’agit d’un processus assez laborieux qui nécessite un soutien constant aux fonctionnalités de l’infrastructure (surveillance, installation, mise à jour). Par conséquent, les développeurs Web3 se tournent souvent vers les fournisseurs de nœuds RPC. Ces derniers donnent accès au nœud via API. Adresse du nœud (URL point final) s’intègre dans le code de l’application, qui lui envoie des requêtes.
« Les nœuds RPC exécutent également des commandes blockchain pour accroître leur audience. Mais leurs nœuds RPC publics sont surchargés et inadaptés au développement commercial. De tels nœuds peuvent plutôt être utilisés à des fins de recherche », souligne GetBlock.
Les fournisseurs fournissent des services selon un schéma : le client paie la puissance de calcul (le droit d’envoyer des requêtes à la blockchain) et l’entreprise assure le fonctionnement du nœud.
« Le premier fournisseur RPC populaire était Infura, donnant accès à Ethereum et EVM-réseaux compatibles.
GetBlock est une plateforme nouvelle génération. Nous prenons en charge plus de 50 blockchains. Si une équipe construit un échangeur multi-devises, elle peut se connecter à Bitcoin, Ethereum, Tron et d’autres réseaux via un seul service », commente l’équipe du projet.
Un nœud RPC simplifie, accélère et réduit les coûts de développement et de lancement d’applications, et permet également d’économiser des ressources sur leur maintenance ultérieure.
« GetBlock donne accès à des nœuds partagés et dédiés. La dernière option consiste à déployer un nœud strictement pour les tâches du client, sa vitesse et sa disponibilité maximales. Il se concentre sur les projets avec un trafic solide ou des perspectives d’évolution. Pour une réponse rapide du nœud RPC, nous utilisons des serveurs en Europe, en Asie et aux États-Unis.
Les nœuds partagés sont une solution pour les utilisateurs ordinaires. Ils partagent l’infrastructure avec d’autres, mais bénéficient également d’un accès haut débit. Vous pouvez choisir à la fois des tarifs avec une limite de requêtes (à partir de 5 millions de requêtes vers la blockchain) et des tarifs illimités pour un mois, six mois ou un an », précise GetBlock.
Pour les développeurs Web3 débutants, GetBlock offre un accès gratuit avec une limite de 40 000 requêtes par jour. Les prix des forfaits payants commencent à 29 $.
Bibliothèques Web3
Les bibliothèques sont des ensembles de fonctions prêtes à l’emploi qui augmentent la vitesse de développement d’applications décentralisées. Leur tâche principale est d’assurer l’interaction avec les contrats intelligents déployés sur Ethereum ou d’autres réseaux. La plupart des développeurs choisissent Web3.js et Ethers.js à ces fins.
Web3.js est une bibliothèque populaire pour travailler avec Ethereum, créée en 2015. De nombreux projets l’utilisent pour connecter des contrats intelligents au code JavaScript externe, effectuer des transactions et recevoir des données sur la blockchain.
La bibliothèque se compose de plusieurs modules :
- eth — aide à établir une connexion avec les testnets et le réseau principal Ethereum, à gérer les transactions, à construire des contrats Solidity et à interagir avec eux ;
- chut — échange des informations entre les dapps ;
- utilitaires — formate et convertit les données ;
- bzz ― vous permet d’utiliser Swarm comme système de stockage de données décentralisé.
« La liste complète des fonctionnalités de Web3.js est énorme. Il est très populaire en raison de sa compatibilité avec presque tous les frameworks existants », note l’équipe GetBlock.
La bibliothèque peut être téléchargée à l’aide d’un gestionnaire de packages comme NPM ou YARN puis intégrée dans diverses consoles.
Ethers.js est une alternative à Web3.js publiée en 2016 par le développeur Richard Moore. Il offre un ensemble similaire de fonctionnalités, mais possède des fonctionnalités supplémentaires. Parmi eux:
- prise en charge intégrée du système de noms de domaine Ethereum Name Service ;
- Licence MIT vous permet de réutiliser et de recycler le code sans pratiquement aucune restriction ;
- la petite taille du package évite un impact négatif sur les performances du frontend ;
- L’utilisation du langage TypeScript augmente la sécurité et minimise le risque d’erreurs et de bugs.
La bibliothèque est mise à jour régulièrement et dispose d’un processus d’installation similaire à Web3.js. Cependant, contrairement à ce dernier, Ethers.js ne nécessite pas de téléchargement complet des packages. Cela peut être utile si vous comptez utiliser uniquement des modules individuels.
Portefeuilles
Les portefeuilles Web3 sont nécessaires pour interagir avec les dapps. Ils fournissent une interface de gestion des actifs cryptographiques à l’aide de clés privées (MetaMask, Phantom) ou de contrats intelligents (Safe, Argent).
En règle générale, les portefeuilles non dépositaires s’appuient sur des nœuds RPC pour interagir avec les blockchains. Ainsi, MetaMask accède par défaut au fournisseur Infura (les deux produits appartiennent à ConsenSys).
« MetaMask suit les adresses IP et les portefeuilles des utilisateurs qui choisissent Infura comme fournisseur RPC. Cela permet à ConsenSys d’imposer beaucoup plus facilement des restrictions sur le portefeuille, ce qui n’est pas très conforme au principe de décentralisation.
Vous pouvez changer de fournisseur RPC à tout moment, par exemple en GetBlock. Nous ne partageons pas de données/informations avec des tiers et fournissons 40 000 requêtes à toutes les blockchains après enregistrement. C’est largement suffisant pour un usage personnel », notent les représentants du fournisseur.
Dans la section suivante, nous verrons comment changer le fournisseur RPC dans les paramètres MetaMask.
Contrats intelligents
Un contrat intelligent est un programme auto-exécutable qui permet à des applications décentralisées d’effectuer des transactions automatiques et de stocker des données sur la blockchain selon un ensemble de conditions définies.
Pour créer des contrats intelligents basés sur Ethereum et d’autres blockchains compatibles EVM, la plupart des développeurs utilisent la bibliothèque OpenZeppelin et IDE Remix, et pour accéder aux données de la blockchain, utilisez les services de fournisseurs de nœuds RPC comme GetBlock.
Créons un jeton ERC-721 (NFT) sur la blockchain Ethereum. Pour le faire, suivez ces étapes:
- ouvrez l’assistant de contrats et sélectionnez l’une des options disponibles (dans notre cas ERC-721), entrez le nom du jeton et le ticker ;
- remplissez le champ URI de base avec un lien vers IPFS (stocke les métadonnées NFT) et spécifiez les propriétés de l’actif ;
- cliquez sur le bouton Ouvrir dans Remix pour transférer le contrat vers l’environnement de développement. Des conditions supplémentaires peuvent y être précisées ;
- après avoir apporté des modifications à Remix, cliquez sur le bouton Compilateur de solidité dans la barre latérale pour compiler le code.
Le contrat est prêt à être déployé. Vous pouvez tester son fonctionnement dans les réseaux de test Sepolia ou Goerli. Pour ça:
- installez GetBlock en tant que fournisseur de nœuds RPC – créez un compte et obtenez un point de terminaison gratuit pour Sepolia ;
- ajoutez le réseau à MetaMask en collant le lien RPC.
Après cela, dans la barre latérale, accédez à la section Déployer et exécuter des transactions et sélectionnez Fournisseur injecté – MetaMask dans le domaine de l’Environnement. Si le réseau Sepolia est actif dans le wallet, il se connectera automatiquement à Remix.
Assurez-vous d’avoir de l’ETH pour payer le gaz. Sur Sepolia et d’autres réseaux de test, vous pouvez l’obtenir gratuitement en utilisant des robinets.
Enfin, cliquez sur Déployer et confirmez la transaction dans l’extension MetaMask qui apparaît.
Une fois déployé sur le réseau principal, le NFT généré apparaîtra dans le compte testnets.opensea.io ou sur le site Web principal d’OpenSea.
conclusions
Le développement Web3 comprend une pile technologique de plusieurs composants interconnectés. Les fournisseurs RPC comme GetBlock jouent un rôle important à cet égard : ils simplifient le développement d’applications et économisent des ressources sur leur maintenance.
Même si vous n’envisagez pas de créer des applications décentralisées, comprendre le fonctionnement de telle ou telle technologie vous aidera à mieux comprendre l’essence des différents projets de crypto-monnaie.
Vous avez trouvé une erreur dans le texte ? Sélectionnez-le et appuyez sur CTRL+ENTRÉE
Newsletters ForkLog : restez à l’écoute de l’industrie Bitcoin !
Voir l’article original en russe
