Accélérer le Web 3.0 avec The Graph

Kumosoukai
6 min readDec 10, 2020

--

Comprendre les fondamentaux du Graph

www.thegraph.com

L’avenir des applications décentralisées et du Web 3 sera façonné par la couche d’infrastructure fondamentale qui le soutient. Alors que les dApps devaient auparavant élaborer leur propre logique d’interrogation et trouver un stockage pour les résultats (sur la blockchain), nous avons freiné l’innovation possible pour les dApps.

Le graphique fournit des accélérateurs pour permettre une mise sur le marché rapide et une innovation plus précoce pour les constructeurs dApp

Si certaines données sont facilement interrogeables à partir d’une blockchain comme Ethereum, la tâche devient plus difficile à mesure que les requêtes deviennent plus spécifiques. Dans certains cas, les données demandées peuvent nécessiter un niveau de transformation/agrégation qui peut être long et coûteux à mettre en place, souvent à plusieurs reprises (par plusieurs équipes indépendantes).

Le Graph et ses Subgraph apportent la solution à ce problème.

Au cœur de cette solution se trouve le “nœud du Graph” (“Graph Node”).

Le nœud du Graph

https://thegraph.com/docs/introduction#what-the-graph-is

Le nœud du Graph fonctionne en tandem avec un nœud de blockchain (par exemple Geth, Parité dans le contexte d’Ethereum) et fournit exactement les informations extraites dans chaque bloc en utilisant un “Subgraph”.

De la même manière, Google conserve les résultats de recherche les plus pertinents en fonction de la requête, de même que le Protocole des graphes permet aux indexeurs (personnes qui exécutent les nœuds de graphes) de n’indexer que les Subgraph les plus pertinents. Cependant, contrairement à Google, The Graph vise à être décentralisé et la conservation ne sera pas effectuée par une entité centrale, mais plutôt par un grand nombre de conservateurs, qui seront (comme leurs frères indexeurs) rémunérés pour leur rôle.

Le Subgraph définit les données que The Graph indexera à partir d’Ethereum et la manière de les stocker. Des Subgraph peuvent être créés pour chaque projet ou application (c’est-à-dire Uniswap/Compound) qui fonctionnent tous sur Ethereum.

Le Graph a publié un ensemble complet de normes de documentation qui peuvent être consultées sur son site web (par exemple, le manifeste des Subgraphs, le mapping).

Le nœud du Graph peut être interrogé en utilisant le point d’extrémité GraphQL du nœud.

GraphQL

www.graphql.com

GraphQL est un langage de requête et de manipulation de données en open source. Les applications mobiles de Facebook sont propulsées par GraphQL depuis 2012.

Une spécification de GraphQL a été open-source en 2015 et est maintenant disponible dans de nombreux environnements et utilisée par des équipes de toutes tailles.

Le nœud du Graph traduit les commandes GraphQL en requêtes pour sa base de données sous-jacent afin de récupérer les données. GraphQL est un langage agnostique, vous pouvez utiliser GraphQL avec n’importe quel langage de programmation. Il vit entre votre client et vos sources de données, ce qui le rend ultra flexible.

GraphQL dispose d’un environnement de développement basé sur un navigateur pour l’étude des requêtes GraphQL, ce qui permet d’écrire des requêtes pour l’extraction et la transformation de données. La syntaxe du langage est différente de celle de SQL en ce sens qu’elle ressemble davantage à des objets JavaScript.

Les requêtes GraphQL sont rapides/stables et donnent toujours des résultats prévisibles

Les API GraphQL sont organisées en termes de types et de champs, où vous pouvez accéder à toutes les capacités de vos données à partir d’un point d’accès unique. GraphQL utilise des types pour s’assurer que les dApps ne demandent que ce qui est possible et fournissent des erreurs claires et utiles.

Les applications peuvent utiliser des types pour éviter d’écrire du code d’analyse manuel.

GraphQL crée une API uniforme sur l’ensemble de votre dApp sans être limité par un moteur de stockage spécifique, vous laissant avec un processus aussi simple que :

Décrivez vos données

Demandez ce que vous voulez

Obtenir des résultats prévisibles

En s’appuyant sur GraphQL, le protocole Graph introduit des “sous-graphes” (Subgraph).

Sous-graphes (Subgraph)

Les Subgraph permettent des temps de réponse rapides car les calculs sur les données brutes des blockchains sont effectués avant l’interrogation, ce qui permet de fournir rapidement les données indexées sur demande. Grâce au pré-calcul et à une infrastructure robuste, les Subgraph peuvent exécuter des requêtes complexes (permettant d’indexer des contrats, des méthodes et des événements spécifiques selon les besoins). Ils offrent également la liberté de commencer l’indexation à une hauteur de bloc donnée, ce qui peut contribuer à réduire le temps nécessaire pour synchroniser et indexer un Subgraph.

Les sous-graphes rendus publics permettent à toute application/utilisateur d’interroger les données indexées qu’ils contiennent. Ainsi, de multiples applications peuvent exploiter le même ensemble de Subgraph, ce qui réduit la réplication et le temps de développement répliqué/redondant.

Les développeurs peuvent être sûrs que le sous-graphe auquel ils accèdent restera en ligne grâce au réseau décentralisé redondant de The Graph qui ne dépend pas d’un seul indexeur.

Les sous-graphes sont composés de trois éléments principaux, à savoir

Manifeste — un fichier (YAML) qui définit les contrats, événements, blocs et appels intelligents. En outre, il associe les données d’événements aux entités et aux objets qui contiennent des données

Le Manifeste est un excellent moyen d’évaluer la validité du sous-graph en s’assurant que les contrats sont correctement référencés, que les bons gestionnaires d’événements/d’appels et que les fichiers ABI les plus récents sont utilisés. Il donne également un aperçu de la manière dont les données brutes sont mises en correspondance avec l’ensemble défini d’entités et permet de savoir si la convention d’appellation de ces dernières est simple à comprendre.

Schéma — un fichier (GraphQL) qui organise les données stockées dans les entités et permet de spécifier la manière dont les données sont présentées

Le schéma donne un aperçu de l’exhaustivité et de l’utilité du Subgraph. Une évaluation du schéma pourrait déterminer les ensembles de données manquants, bien que cela doive toujours être considéré dans le contexte de ce que le sous-graphe vise à réaliser.

Mappings — un fichier qui transforme les données Ethereum de niveau inférieur en entités souhaitées spécifiées dans le fichier de schéma GraphQL

Le fichier Mappings fournit à ceux qui sont familiers avec le langage AssemblyScript une vue sur la complexité et l’utilité du subgraphe à partir des données brutes et sur la façon dont il est transformé.

Maintenant, à quoi peut ressembler un “Subgraphe” et où pouvez-vous aller pour en trouver un…

Trouver un Subgraphe dans la nature

Commencez par visiter le site https://thegraph.com/explorer/

Dans l’explorateur, sélectionnez un Subgraph dans la liste fournie, pour cet exemple, sélectionnons le Subgraph du protocole composé.

https://thegraph.com/explorer/subgraph/graphprotocol/compound-v2

Maintenant, faisons le tour du Subgraph pour mieux vous familiariser avec ses composantes.

Voici les points forts de la page du Subgraph :
• le réseau Ethereum sur lequel il réside (c’est-à-dire Mainnet)
• la dernière mise à jour effectuée
• date de création originale
• le nombre d’entités (c’est-à-dire d’objets contenant des données) dans le sous-graph
• si elle est entièrement synchronisée avec le bloc Ethereum le plus récent
• URL Github
• IPFS ID
• Adresse de requête (HTTP)

Sur l’image ci-dessus, vous pouvez voir les différentes entités dans le terrain de jeu du sous-graphe et tester des requêtes simples. Souvent, quelques exemples d’interrogations sont déjà disponibles. Cela vous permet de vous faire une idée des données, de leur fonctionnalité et de leurs limites. En outre, vous pouvez découvrir quelles entités sont disponibles avec quels attributs du schéma (modèle de données).

Il ne vous reste plus qu’à explorer le “terrain de jeu du Subgraph” (Playground Subgraph)

Conclusion

J’espère que ce petit guide vous a donné une vue d’ensemble des possibilités offertes par The Graph et sa puissante boîte à outils, permettant un monde Web 3 décentralisé pour les dApps et leurs utilisateurs.

--

--

Kumosoukai
Kumosoukai

Written by Kumosoukai

Blockchain Believer — Crypto Scientist

No responses yet