À propos de The Graph

Reading time: 4 min

Cette page expliquera ce qu'est The Graph et comment vous pouvez commencer.

Qu’est-ce que The Graph ?

Lien vers cette section

The Graph est un protocole décentralisé pour l'indexation et l'interrogation de données blockchain. The Graph permet d'interroger des données qui sont difficiles à interroger directement.

Les projets avec des contrats intelligents complexes comme Uniswap et des projets NFT comme Bored Ape Yacht Club stockent des données sur la blockchain Ethereum. La façon dont ces données sont stockées rend leur lecture difficile au-delà de quelques informations simples.

In the case of Bored Ape Yacht Club, we can perform basic read operations on the contract like getting the owner of a certain Ape, getting the content URI of an Ape based on their ID, or the total supply. This can be done because these read operations are programmed directly into the smart contract. However, more advanced real-world queries and operations like aggregation, search, relationships, and non-trivial filtering are not possible. For example, if we wanted to query for Apes that are owned by a certain address and filter by one of its characteristics, we would not be able to get that information by interacting directly with the contract itself.

To get this data, you would have to process every single transfer event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. It would take hours or even days for a decentralized application (dapp) running in a browser to get an answer to these simple questions.

Vous pouvez également créer votre propre serveur, y traiter les transactions, les enregistrer dans une base de données et créer un point de terminaison d'API par-dessus tout cela afin d'interroger les données. Cependant, cette option est consommatrice de ressources, nécessite une maintenance, présente un point de défaillance unique et brise d'importantes propriétés de sécurité requises pour la décentralisation.

L’indexation des données blockchain est vraiment très difficile.

Blockchain properties like finality, chain reorganizations, or uncled blocks complicate this process further. They make it time consuming and conceptually hard to retrieve correct query results from blockchain data.

The Graph provides a solution with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "subgraphs") can then be queried with a standard GraphQL API. Today, there is a hosted service as well as a decentralized protocol with the same capabilities. Both are backed by the open source implementation of Graph Node.

Fonctionnement du Graph

Lien vers cette section

The Graph apprend quoi et comment indexer les données Ethereum en fonction des descriptions de subgraphs, connues sous le nom de manifeste de subgraph. La description du subgraph définit les contrats intelligents d'intérêt pour un subgraph, les événements de ces contrats auxquels il faut prêter attention et comment mapper les données d'événement aux données que The Graph stockera dans sa base de données.

Une fois que vous avez écrit un manifeste de subgraph, vous utilisez le Graph CLI pour stocker la définition dans IPFS et vous indiquez par la même occasion à l'indexeur de commencer à indexer les données pour ce subgraph.

Ce diagramme donne plus de détails sur le flux de données une fois qu'un manifeste de subgraph a été déployé, traitant des transactions Ethereum :

Un graphique expliquant comment The Graph utilise Graph Node pour répondre aux requêtes des consommateurs de données

La description des étapes du flux :

  1. Une dapp ajoute des données à Ethereum via une transaction sur un contrat intelligent.
  2. Le contrat intelligent va alors produire un ou plusieurs événements lors du traitement de la transaction.
  3. Parallèlement, Le nœud de The Graph scanne continuellement Ethereum à la recherche de nouveaux blocs et de nouvelles données intéressantes pour votre subgraph.
  4. The Graph Node trouve alors les événements Ethereum d'intérêt pour votre subgraph dans ces blocs et vient exécuter les corrélations correspondantes que vous avez fournies. Le gestionnaire de corrélation se définit comme un module WASM qui crée ou met à jour les entités de données que le nœud de The Graph stocke en réponse aux événements Ethereum.
  5. Le dapp interroge le Graph Node pour des données indexées à partir de la blockchain, à l'aide du point de terminaison GraphQL du noeud. À son tour, le Graph Node traduit les requêtes GraphQL en requêtes pour sa base de données sous-jacente afin de récupérer ces données, en exploitant les capacités d'indexation du magasin. Le dapp affiche ces données dans une interface utilisateur riche pour les utilisateurs finaux, qui s'en servent pour émettre de nouvelles transactions sur Ethereum. Le cycle se répète.

Les Étapes suivantes

Lien vers cette section

The following sections provide more detail on how to define subgraphs, how to deploy them, and how to query data from the indexes that Graph Node builds.

Before you start writing your own subgraph, you might want to have a look at Graph Explorer and explore some of the subgraphs that have already been deployed. The page for each subgraph contains a playground that lets you query that subgraph's data with GraphQL.

Modifier une page

Précédente
Commencer
Suivante
Overview
Modifier une page