Un guide des projets et des entreprises travaillant pour rendre le développement web3 aussi simple que web2
Autour du blocde Coinbase Ventures met en lumière les tendances clés de la cryptographie. Écrit par Jonathan King, Connor Dempsey& Hoolie Tejwani
Un merci spécial à Mike Armstrong, Aaron Henshaw, Michael Atassi, Steven Willinger et Shan Aggarwal pour avoir contribué à la rédaction de cet article.
Malgré la montée en puissance de Bitcoin et d’Ethereum, ainsi que l’émergence de nouvelles catégories telles que DeFi, NFT, GameFi et DAO, les développeurs web3 représentent moins de 1 % des 31,1 millions de développeurs de logiciels dans le monde.*
Alors pourquoi y a-t-il si peu de développeurs dans le web3 aujourd’hui ? D’une part, les outils et l’infrastructure disponibles pour les développeurs web3 sont beaucoup moins robustes que ceux du web2. Cela rend simplement plus difficile le démarrage de la construction, de l’expérimentation et du déploiement dans web3. Cependant, tout cela change rapidement, car le nombre de développeurs Web3 actifs par mois a atteint des sommets historiques à la fin de 2021. Et pour soutenir cette éventualité croissante, un écosystème dynamique d’équipes travaille à simplifier l’ensemble du parcours des développeurs Web3, ce qui finira par aider à débloquer la prochaine étape de la croissance et de l’innovation du web3.
Dans cette édition d’Around The Block, nous explorerons la pile croissante de développeurs Web3.
La pile de développeurs Web3
Construire en Web2 vs Web3
Le développement de logiciels est le processus de création de programmes informatiques. Il y a trois composantes principales à un programme donné :
- Le front-end (avec quoi les utilisateurs interagissent)
- Le back-end (ce que les utilisateurs ne voient pas)
- Base de données (où les données critiques sont stockées)
Le frontal avec lequel un utilisateur typique interagit via un navigateur mobile ou de bureau est fondamentalement le même dans web2 et web3. Une application Web3 comme Uniswap ressemble à une application Web2 typique, car les deux frontaux sont principalement créés à l’aide de React, un framework de développement populaire pour les applications Web et mobiles.
C’est sous le capot que web2 et web3 diffèrent. Les frameworks backend et les types de bases de données qui font la caractéristique déterminante de web3 – définie par l’utilisateur la possession – possibles sont nouveaux et uniques.
Là où les applications web2 reposent largement sur des bases de données centralisées, les applications web3 sont construites sur des bases de données décentralisées (blockchains). Cela nécessite des backends entièrement nouveaux et de nouvelles primitives comme les portefeuilles.
Les outils qui facilitent la création, le déploiement et la maintenance des applications Web2 sont incroyablement conviviaux pour les développeurs, grâce à des décennies de développement cumulatif. Des solutions prêtes à l’emploi, une infrastructure mature, des bibliothèques de code partagées et des frameworks faciles à utiliser facilitent largement la construction dans Web2.
Web3, d’autre part, nécessite toujours une expertise spécialisée pour s’interfacer avec une infrastructure complexe et implique généralement de nombreux processus redondants étant donné que la pile est moins développée, ce qui oblige les équipes à réinventer la roue. Cela dit, les outils qui aideront à intégrer les prochains 1M + développeurs web3 s’améliorent rapidement.
Jetons un coup d’œil (non exhaustif) à l’évolution de la pile de développeurs Web3 couche par couche (* désigne la société de portefeuille Coinbase Ventures).
Couche de protocole
La première décision qu’un développeur web3 doit prendre est qui protocole blockchain sur lequel s’appuyer. Construire sur Bitcoin est entièrement différent de construire sur Ethereum, et Solana diffère d’Ethereum, etc.
Pour des applications plus rapides et moins coûteuses, les développeurs peuvent vouloir s’appuyer sur un protocole de couche 2 – Optimism*, Arbitrum*, etc. Pour les applications qui doivent transférer la valeur d’une chaîne à une autre, les développeurs voudront tirer parti des ponts inter-chaînes comme Hop * ou Synapse*.
Une fois ces décisions prises, les développeurs peuvent commencer à incorporer des blocs de construction qui rendent les applications utilisateur possibles.
Primitives d’infrastructure
La prochaine chose qu’un développeur doit comprendre est comment leur application interagira finalement avec les blockchains sous-jacentes. C’est là que les primitives d’infrastructure entrent en jeu.
Infrastructure de nœud — Les nœuds sont l’endroit où l’interaction d’une application avec une blockchain « se produit ». Ce sont des ordinateurs qui lisent l’état de la blockchain et y écrivent des mises à jour une fois qu’un utilisateur interagit avec une application. Les fournisseurs d’infrastructure de nœuds tels que Coinbase Cloud, Infura* et Alchemy* permettent aux développeurs de configurer, de gérer ou d’accéder facilement aux nœuds de la blockchain, ce qui leur fait gagner un temps et des ressources considérables.
Portefeuille et gestion des clés — Les portefeuilles Blockchain, comme Coinbase Wallet, permettent aux utilisateurs de gérer les clés privées nécessaires pour effectuer des transactions dans les applications web3. Les fournisseurs de gestion de portefeuilles et de clés comme Web3Auth* ou Pine Street Labs*, permettent aux développeurs de créer une connectivité sécurisée entre les portefeuilles blockchain et les applications destinées aux utilisateurs.
Identité — des protocoles comme ENS* servent d’identité d’utilisateur à travers les applications. Spruce* fournit des cadres et des boîtes à outils que les développeurs peuvent utiliser pour vérifier les informations d’identification des utilisateurs afin d’authentifier les actions sur Ethereum. Par exemple, les développeurs peuvent utiliser la boîte à outils Spruce ID pour permettre aux utilisateurs de se connecter aux applications avec leurs comptes ENS. De plus, des entreprises comme Lit Protocol fournissent des outils de développement pour accorder l’accès au contenu, aux logiciels et à d’autres données en utilisant leurs jetons ou NFT.
Calcul décentralisé — Les ressources de calcul fournissent une puissance de traitement sur laquelle les applications s’appuient pour effectuer des tâches de calcul. Actuellement, la plupart des calculs du Web sont fournis par des fournisseurs centralisés comme AWS. Le calcul décentralisé est une transition vers des réseaux appartenant à la communauté, dans lesquels les ressources de calcul sont distribuées sans autorisation à faible coût. Des entreprises comme Akash Network et Aleph.im ont émergé pour fournir des ressources de calcul peer-to-peer hautement performantes et optimisées pour les contrats intelligents et les applications blockchain.
Stockage décentralisé — Stocker chaque élément de données associé à une application web3 donnée directement sur les nœuds de la blockchain est coûteux. Plutôt que de stocker des données sur une base de données centralisée, les développeurs Web3 peuvent utiliser des protocoles de stockage de données peer-to-peer comme IPFS, Arweave* et Ceramic Network* pour certaines données. Par exemple, le site de blog Web3 Mirror est construit sur Ethereum, mais stocke le contenu réel du blog sur Arweave.
Oracles — Pour une application Ethereum typique, la blockchain stocke l’historique et « l’état » des transactions (soldes, contrats intelligents et autres variables). Cependant, il ne peut pas stocker et interagir nativement avec des données provenant de sources externes, c’est-à-dire l’historique des transactions d’autres chaînes de blocs ou des données du « monde réel » comme la météo à San Francisco. C’est là qu’interviennent des oracles comme Chainlink ou Flux*, connectant les blockchains aux sources de données en chaîne et hors chaîne.
Interopérabilité — de nombreuses chaînes de blocs différentes existent, mais peu ont la capacité d’échanger de la valeur et d’utiliser des informations inter-chaînes. Les protocoles d’interopérabilité tels que LayerZero*, Axelar Network* et Astar Network* fournissent des SDK et des API aux développeurs pour créer des applications portables et capables de communiquer avec différentes chaînes de blocs.
Outils de développement
Au sommet des primitives d’infrastructure qui permettent aux applications d’interagir avec les réseaux blockchain se trouvent des outils qui permettent aux développeurs d’interagir de manière plus transparente avec les primitives susmentionnées.
Frameworks et IDE — Les frameworks de développement consistent en des bibliothèques de code que d’autres développeurs ont créées et qui facilitent le développement. Les frameworks Web3 tels que Truffle, Moralis*, Tatum et ThirdWeb* permettent aux développeurs d’exploiter le code existant pour les applications de contrats intelligents afin qu’ils n’aient pas à tout créer à partir de zéro. Ils permettent également aux développeurs de tester et de déployer des applications. Les environnements de développement intégrés (IDE) tels que Foundry et HardHat combinent des éditeurs de code source communs et créent des outils d’automatisation et de débogage dans une interface unique et facilement accessible.
Low-code / No-code — Ces plates-formes permettent aux applications destinées aux utilisateurs d’être rapidement conçues/déployées entièrement via des interfaces glisser-déposer. Des entreprises comme Settlemint fournissent aux développeurs des modèles de contrat intelligents pour les NFT afin d’éviter que les développeurs Web3 n’aient à réinventer la roue.
Indexer & interroger — Les indexeurs de données aident les utilisateurs à localiser et à accéder à des données spécifiques dans une base de données sous-jacente. Dans Web2, la recherche Google est le service d’indexation de données le plus populaire qui permet aux utilisateurs d’interroger des données stockées dans des bases de données en ligne avec des temps de réponse inférieurs à la seconde. Dans Web3, des services d’indexation décentralisés font leur apparition pour aider les développeurs d’applications à récupérer, traiter et interroger les données de la blockchain. Les protocoles Graph Protocol*, Covalent* et Coherent* fournissent tous des API pour extraire et utiliser des données provenant de fournisseurs de stockage de données décentralisés et de chaînes de blocs compatibles EVM.
Tester, simuler et surveiller — Il est important de tester et de simuler les applications Web3 avant qu’elles ne soient diffusées dans la nature. Des entreprises comme Tenderly* et Kurtosis* offrent une variété d’outils pour simuler le comportement des contrats et transactions intelligents une fois en ligne, ainsi que des outils pour déboguer tout problème. Blocknative* fournit des tableaux de bord et des outils pour surveiller les transactions avant qu’elles ne soient soumises en chaîne.
Sécurité & audit — Compte tenu du potentiel d’exploitation des contrats intelligents, ces plates-formes permettent aux développeurs d’appliquer les meilleures pratiques de sécurité et d’audit à leurs applications. OpenZeppelin, Forta*, Certik* et Certora* fournissent tous une variété de services, de cadres et d’outils de surveillance pour les développeurs afin d’atténuer les risques de sécurité et les vulnérabilités potentiels.
Messagerie — Les applications Web3 impliquent souvent l’envoi de diverses communications aux utilisateurs finaux. Par exemple, un portefeuille cryptographique peut vouloir envoyer des alertes à un utilisateur concernant les confirmations de transaction. Des entreprises comme XMTP Labs* et EPNS créent des protocoles de messagerie sécurisés et des réseaux de communication décentralisés qui stimulent l’engagement des utilisateurs et alimentent ces notifications dans les applications Web3.
Analytique — Il existe une multitude de plates-formes et de services qui permettent aux développeurs d’explorer, d’analyser, d’extraire et de visualiser les données de la blockchain. Dune*, Nansen* et Messari* offrent chacun une variété d’API et de capacités de création de rapports pour créer des fonctionnalités de visualisation de données dans les applications Web3. Flipside Crypto* propose des SDK (kits de développement logiciel) et des API pour créer et partager des informations sur les données sur divers projets de cryptographie.
Couche d’activation d’application
La couche d’activation des applications relie toutes les couches ci-dessus à des utilisations Web3 spécifiques. Les NFT, DAO, DeFi et les jeux ont chacun leurs propres solutions de développement sur mesure.
Les outils axés sur NFT offrent une infrastructure pour créer et gérer des actifs NFT. Les outils DAO proposent des solutions de création de DAO (Syndicate*, Samudai*), de gouvernance (Snapshot*) et de gestion de trésorerie (Utopia Labs*). Les outils axés sur DeFi offrent des API qui permettent aux développeurs d’accéder à diverses primitives DeFi. Les outils axés sur les jeux (Venly*, Joyride*, Horizon Blockchain Games*) fournissent des solutions pour créer des mondes virtuels et des jeux basés sur la blockchain.
La pile de développement en constante évolution
Les protocoles, l’infrastructure et les outils de développement mentionnés ci-dessus constituent la pile de développeurs Web3 naissante, mais en constante évolution. La nature modulaire et interopérable de web3 signifie que la pile peut être combinée à l’infini pour créer de nouvelles applications intéressantes.
Bien que le cadre et les couches que nous avons mis en évidence resteront probablement inchangés, nous continuons de voir émerger de nouvelles primitives d’outils de développement et nous nous attendons à ce que l’ensemble de la pile évolue de manière spectaculaire dans les années à venir.
Coinbase Ventures continuera d’investir dans la prochaine génération de plate-forme et d’outils de développement qui intégreront à terme des millions de développeurs dans le web3. Si vous êtes aussi dévoué que nous à la construction de la pile de développement Web3, nous aimerions avoir de vos nouvelles — Les DM de JK sont ouverts !
Source https://blog.coinbase.com/a-simple-guide-to-the-web3-developer-stack-8364b612d69c?source=rss—-c114225aeaf7—4