Titres Titres
Web3.0 représente la prochaine génération d’Internet.
Web2.0 fait référence à la version d’Internet que la plupart d’entre nous connaissent aujourd’hui. Il a aidé Internet et la technologie à atteindre des milliards de personnes. Les applications Web2.0 réussies sont créées par des entreprises qui fournissent des services en échange de données personnelles des utilisateurs. Ces applications sont centralisées dans leurs centres de données et ont un contrôle total sur les données des utilisateurs.
Web3.0 les candidatures sont appelées Dapps alias Applications décentralisées dans le cadre d’une célèbre technologie blockchain appelée Ethereum chaîne de blocs. Ce sont les applications qui sont à l’origine du mouvement de décentralisation et permettent aux utilisateurs de posséder leurs données.
démystifions Web3.0 et Dapp en langage profane et plongez dans l’architecture d’un Dapp en le comparant avec les applications Web2.0 actuelles.
Le Web3.0 concerne la décentralisation d’Internet. Cela semble jargon. Laissez-moi vous expliquer en termes simples. Pour comprendre le Web3.0, discutons d’abord du Web1.0 et du Web2.0.
Web1.0 — Internet des sites Web statiques.
Les créateurs de sites Web statiques créent un site Web et y ajoutent du contenu. Les consommateurs comme vous et moi ne font que consommer le contenu, ce qui signifie que nous ne faisons que le lire. C’est donc un lecture seulement La toile.

Web2.0 — Internet des sites Web dynamiques
Les sites Web dynamiques permettent aux utilisateurs comme vous et moi de générer et de consommer du contenu. Pensez à Facebook. C’est donc un lire écrire La toile.
Dans Web2.0, bien que vous soyez le créateur de contenu, le contenu que vous avez créé réside dans la base de données du créateur de site Web et la personne/entreprise qui possède le site Web détient les droits de supprimer votre contenu, de vendre votre contenu, etc. Rien de mal, nous apprécions tous Facebook , Twitter, Medium etc. qui sont dans la catégorie Web2.0.

Web3.0 — Internet de la décentralisation
Web3.0 donne aux créateurs de contenu un contrôle total sur le contenu qu’ils produisent. Dans un site Web basé sur Web3.0, le propriétaire du site Web ne détient pas le droit de supprimer ou de vendre votre contenu. Parce que tout le contenu que vous créez est enregistré dans un registre public plutôt que dans la base de données du créateur du site Web.
Le grand livre public n’appartient pas à une seule entreprise, mais à des centaines de milliers de personnes qui ont fourni du stockage à partir de leurs ordinateurs. Il s’agit donc d’une base de données publique et est également appelée chaîne de blocs.
Les créateurs de contenu sont marqués comme propriétaires permanents de leur contenu dans le grand livre public. Par exemple :- Si Medium est une application Web3.0, les blogs que nous créons sont stockés sur le grand livre public, donc Medium n’a aucun droit de supprimer mon contenu (même si je suis offensant :-)) et aussi si Medium cesse ses activités, le contenu existe toujours dans le grand livre public et je peux donc gérer le contenu et utiliser mon contenu pour créer un autre site Web. D’où il lire-écrire-propre La toile.

Ainsi, toute application Web créée pour fonctionner avec une blockchain peut être qualifiée de Application Web3.0.
BTW besoin de plus d’explications sur Blockchain ? Bien sûr!
Chaîne de blocs
La blockchain est une liste d’enregistrements appelés blocs. Chaque bloc contient une transaction entre deux parties et un lien vers le bloc précédent.

Cette blockchain est maintenue par un réseau peer-to-peer d’ordinateurs interconnectés aussi appelé Nœuds. Ces nœuds sont détenus et entretenus par des utilisateurs du monde entier.

Par conséquent, une blockchain est un grand livre public distribué ouvert qui peut enregistrer efficacement les transactions de manière vérifiable. Ce registre contient toutes les transactions effectuées à ce jour. Ce registre est toujours synchronisé et disponible sur tous les nœuds de la blockchain.
Bitcoin est une application monétaire décentralisée de la blockchain Bitcoin. Sur la blockchain Bitcoin, une transaction est une personne qui envoie de l’argent à une autre personne sans aucune autorité centralisée comme une banque. De nombreuses autres blockchains sont utilisées. Par exemple : – blockchain Ethereum, blockchain Solona, etc.
Chaîne de blocs Ethereum
La même définition de la blockchain s’applique à la blockchain Ethereum, sauf que les nœuds exécutent le logiciel Ethereum et stockent le grand livre public Ethereum. La blockchain Ethereum est créée pour créer tout type d’application appelée Dapps alias applications décentralisées. Sur la blockchain Ethereum, les transactions peuvent être un transfert de devises (ou) l’achat/la vente d’art numérique (NFT) (ou) la création d’un tweet (ou) l’achat/la vente d’articles comme des thèmes et des épées dans un jeu.
Le backend de ces applications décentralisées est codé comme quelque chose appelé Smart Contracts.
SmartContracts
Smart Contract est un programme qui contient la logique métier de l’application décentralisée. C’est une collection de code (ses fonctions) et de données (son état) qui réside à une adresse spécifique sur la blockchain Ethereum. Ceux-ci sont exécutés lorsqu’une action est exécutée ou lorsqu’une condition préalable est remplie. Dans les applications Web2.0 traditionnelles, cette logique métier est similaire à la logique métier codée dans la couche API.
Pourquoi avons-nous besoin du Web3.0 ?
Comme dit précédemment, Applications Web3.0 sont tenus d’exercer des droits de propriété sur le contenu créé par vous et de supprimer la centralisation du pouvoir et du contrôle sur les données effectuée par une communauté.
Un exemple pour comprendre l’utilisation du Web3.0 — Immobilier. Dans la plupart des pays, les gouvernements possèdent et gèrent les applications d’enregistrement immobilier et agissent en tant qu’autorité centrale. Nous aurions entendu de nombreux litiges se produire et plusieurs parties revendiquant une seule propriété. L’une des raisons en est la manipulation des données par l’autorité centrale, affectant ainsi la propriété d’origine. Si l’immobilier est décentralisé, l’autorité centrale ne peut pas modifier les données car les données sont désormais disponibles sur un grand livre public et également disponibles sur des centaines et des milliers d’ordinateurs dans une blockchain.
Oeb3.0 peut être appelé le l’internet des Smart Contracts ou l’internet des Dapps.
Je pense que comprendre l’architecture fondamentale d’une Dapp est nécessaire pour mieux appréhender le Web3.0 et ses applications. Pour mieux comprendre Web3.0 Dapp, j’ai pensé qu’il serait avantageux de le comparer aux applications Web2.0 actuelles. BTW toutes les applications Web2.0 ne peuvent pas être remplacées par Web3.0.
- Dans une application Web 2.0 traditionnelle, le frontend communique avec le backend, qui stocke ensuite les données dans la base de données. Le Web3.0 Dapp est architecturé comme une interface communiquant avec la blockchain.

- Dans l’application Web 2.0, la logique métier réelle, c’est-à-dire la création de n’importe quelle ressource, la modification de n’importe quelle ressource, la gestion d’une transaction, est gérée par le backend. Le backend est développé comme un ensemble d’API REST avec un choix de vos langages comme Java, Python ou Golang. Dans App Web 3.0la logique métier est regroupée sous la forme Contrat intelligent. Les contrats intelligents sont codés en Solidity, Vyper, etc.

- Le backend des applications Web2.0 est déployé soit sur une machine sur site, soit sur AWS EC2 ou Azure VM. Le backend des applications Web3.0, c’est-à-dire les contrats intelligents, est déployé sur la blockchain.
- Dans une application Web2.0 traditionnelle, la logique métier backend est regroupée sous la forme d’un conteneur ou d’un fichier jar s’exécutant sur une machine de calcul telle que VM ou AWS EC2 ou toute plate-forme de conteneur telle qu’Openshift ou Kubernetes. Et les données créées sont stockées dans une base de données comme les bases de données Postgres, Mysql ou NoSQL. Ainsi, le calcul et le stockage s’exécutent sur des machines différentes. Dans Dapp Web3.0la logique métier, c’est-à-dire le contrat intelligent, s’exécute sur EVM (machine virtuelle Ethereum) et les données créées via le contrat intelligent se trouvent sur le même nœud informatique.
- L’application Web2.0 traditionnelle utilise REST sur HTTPS (GET, POST, PUT, DELETE) pour la communication avec le backend. Applications Web3.0 utilise JSON-RPC pour communiquer avec blockchain.RPC signifie Remote Procedure calls. Les contrats intelligents contiennent des fonctions qui contiennent la logique métier. Chaque appel RPC est en fait un contrat intelligent une fonction appel.

- Tout appel d’API dans les applications Web2.0 est authentifié en fournissant un jeton JWT dans les en-têtes avec la charge utile. Le jeton JWT est généré à l’aide du nom d’utilisateur et du mot de passe de l’utilisateur de l’application. Dans Dapp Web3.0, les appels RPC doivent être signés avec la clé privée de l’utilisateur qui utilise la Dapp pour effectuer une action. L’utilisateur est identifié dans Web3.0 Dapp via son adresse Ethereum et sa clé privée. Habituellement, il n’y a pas d’écran de connexion pour les Dapps Web3.0. Chaque utilisateur de Dapp est censé installer une extension chrome appelée MetaMask. Metamask est un portefeuille logiciel qui permet aux utilisateurs de charger leur adresse Ethereum avec leur clé privée. Ainsi, chaque appel passé à la blockchain est signé par Metamask, ce qui permet au contrat intelligent d’identifier l’utilisateur qui a initié la transaction.

- Dans les applications Web2.0, le frontend doit connaître l’URL de l’hôte où le backend (serveur API) est hébergé. À l’aide de l’URL, les appels d’API sont lancés à partir de FrontEnd pour créer/lire/mettre à jour/supprimer des données. Dans Applications Web 3.0, l’interface doit connaître l’adresse du contrat intelligent, c’est-à-dire où le contrat intelligent est déployé sur la blockchain. Le contrat intelligent est déployé sur un nœud d’une blockchain à une adresse. Une fois qu’un contrat intelligent est déployé sur un nœud, il est synchronisé sur tous les nœuds et disponible sur tous les nœuds de la blockchain à la même adresse. Le frontend utilise cette adresse pour communiquer via JSON-RPC avec des contrats intelligents.

- Dans les applications Web2.0, les informations sur le serveur API ou l’API backend sont disponibles via la spécification API comme Swagger. Dans Web3.0 Dapp, les fonctions disponibles dans le contrat intelligent sont informées à Frontend via un document JSON appelé ABI (interface binaire d’application). En utilisant l’ABI et l’adresse du contrat intelligent, le Frontend fait la communication avec les contrats intelligents.
- Déploiements: Web3.0 Dapp backend, c’est-à-dire que le contrat intelligent doit être déployé sur une blockchain. Pour déployer un contrat intelligent, le propriétaire d’un contrat intelligent doit avoir accès à un nœud sur la blockchain. Le propriétaire peut soit exécuter son nœud, soit obtenir un nœud auprès d’un fournisseur de nœuds comme Infura ou QuickNode. Une fois qu’il y a accès, le contrat intelligent peut être déployé sur un nœud. Comme indiqué, la blockchain est une chaîne de nœuds interconnectés peer-to-peer, par conséquent, le contrat intelligent déployé est synchronisé sur tous les nœuds de la blockchain. L’exécution ou la création d’un nœud via Infura est similaire à l’obtention d’une machine AWS EC2 ou Azure VM pour déployer le backend dans le monde Web2.0.

- Déploiements: Les applications Web2.0 peuvent être déployées autant de fois qu’il en coûte, car le déploiement seul ne coûte rien. En revanche, le déploiement d’un contrat intelligent coûte de l’argent appelé GAS dans l’écosystème Ethereum. Le déploiement d’un contrat intelligent est une sorte d’opération d’écriture dans le monde de la blockchain. Toutes les écritures, y compris la création de contenu ou le déploiement de contrats intelligents, coûtent GAS. Par conséquent, un contrat intelligent complètement testé devrait être déployé sur la blockchain.
- Essai: Les applications Web2.0 sont généralement testées sur un environnement de test ou un environnement de développement. De la même manière, Dapp Web3.0 est également testé au préalable sur un réseau de blockchain de test comme Sepolia, Kovan, etc. La principale chaîne de production Ethereum s’appelle Mainnet

- Applications Web2.0 – FrontEnd ou Backend sont déployés sur AWS ou Azure ou sur une infrastructure sur site comme des machines virtuelles ou des plates-formes de conteneurs comme Openshift & Kubernetes. Dapp Web3.0 Frontend peut être déployé de la même manière que l’application Web2.0 Frontend. Le backend de Web3.0 Dapp est décentralisé et le FrontEnd ressemble plus ou moins aux Frontends Web2.0 et n’est pas décentralisé.
L’architecture globale d’une Dapp Web3.0 ressemble à ce qui suit résumant tous les points ci-dessus.
