5 minutes
À propos de The Graph
Qu’est-ce que The Graph ?
The Graph est un puissant protocole décentralisé qui permet d’interroger et d’indexer facilement les données de la blockchain. Il simplifie le processus complexe de requête des données blockchain, rendant ainsi le développement des applications décentralisées (dapps) plus rapide et plus simple.
Comprendre les fondamentaux
Des projets dotés de contrats intelligents complexes tels que Uniswap et les initiatives NFT comme Bored Ape Yacht Club stockent leurs données sur la blockchain Ethereum, rendant très difficile la lecture directe de données autres que les données de base depuis la blockchain.
Défis sans The Graph
Dans le cas de l’exemple mentionné ci-dessus, Bored Ape Yacht Club, vous pouvez effectuer de simples opérations de lecture sur le contrat. Vous pouvez voir le propriétaire d’un certain Ape, lire l’URI du contenu d’un Ape en fonction de son ID, ou connaître l’offre totale en circulation.
-
Cela est possible car ces opérations de lecture sont programmées directement dans le contrat intelligent lui-même. Cependant, des requêtes et des opérations plus avancées, spécifiques et concrètes, telles que l’agrégation, la recherche, l’établissement de relations ou le filtrage complexe ne sont pas possibles.
-
Par exemple, si vous souhaitez identifier les Apes détenus par une adresse spécifique et affiner votre recherche en fonction d’une caractéristique particulière, il serait impossible d’obtenir cette information en interagissant directement avec le contrat.
-
Pour obtenir plus de données, vous devriez traiter chaque événement de
transfert
jamais émis, lire les métadonnées d’IPFS en utilisant l’ID du Token et le hash IPFS, puis les agréger.
Pourquoi est-ce un problème ?
Il faudrait des heures, voire des jours, pour qu’une application décentralisée (dapp) fonctionnant dans un navigateur obtienne une réponse à ces questions simples.
Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is resource intensive, needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization.
Les spécificités de la blockchain, comme la finalité des transactions, les réorganisations de chaîne et les blocs oncles (blocs rejetés lorsque deux blocs sont créés simultanément, ce qui entraîne l’omission d’un bloc de la blockchain.), ajoutent de la complexité au processus, rendant longue et conceptuellement difficile la récupération de résultats précis à partir des données de la blockchain.
The Graph apporte une solution
The Graph solves this challenge 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.
Aujourd’hui, il existe un protocole décentralisé soutenu par l’implémentation open source de Graph Node qui permet ce processus.
Comment fonctionne The Graph
Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL.
Spécificités
-
The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph.
-
The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database.
-
When creating a Subgraph, you need to write a Subgraph manifest.
-
After writing the
subgraph manifest
, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph.
The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions.

La description des étapes du flux :
- Une dapp ajoute des données à Ethereum via une transaction sur un contrat intelligent.
- Le contrat intelligent va alors produire un ou plusieurs événements lors du traitement de la transaction.
- Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain.
- Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events.
- 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
The following sections provide a more in-depth look at Subgraphs, their deployment and data querying.
Before you write your own Subgraph, it’s recommended to explore Graph Explorer and review some of the already deployed Subgraphs. Each Subgraph’s page includes a GraphQL playground, allowing you to query its data.