Docs
La Recherche⌘ K
  • Accueil
  • À propos de The Graph
  • Réseaux pris en charge
  • Contrats du Protocole
  • Subgraphs
    • Substreams
      • Token API
        • AI Suite
          • Indexing
            • Resources
              Subgraphs > Guides pratiques

              5 minutes

              Agrégation de données par composition de subgraphs

              Tirez parti de la composition de subgraphs pour accélérer le temps de développement. Créez un subgraph de base avec les données essentielles, puis construisez d’autres subgraphs par-dessus.

              Optimize your Subgraph by merging data from independent, source Subgraphs into a single composable Subgraph to enhance data aggregation.

              Présentation

              Composable Subgraphs enable you to combine multiple Subgraphs’ data sources into a new Subgraph, facilitating faster and more flexible Subgraph development. Subgraph composition empowers you to create and maintain smaller, focused Subgraphs that collectively form a larger, interconnected dataset.

              Avantages de la composition

              La composition de subgraphs est une fonctionnalité puissante pour la mise à l’échelle, qui vous permet de.. :

              • Réutiliser, mélanger et combiner les données existantes
              • Rationaliser le développement et les requêtes
              • Utiliser plusieurs sources de données (jusqu’à cinq subgraphs sources)
              • Accélérer la vitesse de synchronisation de votre subgraph
              • Gérer les erreurs et optimiser la resynchronisation

              Overview de l’architecture

              La configuration de cet exemple implique deux subgraphs :

              1. Subgraph source : Suit les données d’événements en tant qu’entités.
              2. Subgraph dépendant : Utilise le subgraph source comme source de données.

              Vous pouvez les trouver dans les répertoires source et dependent.

              • Le Subgraph Source est un subgraph de base de suivi des événements qui enregistre les événements émis par les contrats concernés.
              • Le subgraph dépendant fait référence au subgraph source en tant que source de données, en utilisant les entités de la source comme déclencheurs.

              Alors que le subgraph source est un subgraph standard, le subgraph dépendant utilise la fonction de composition de subgraphs.

              Prérequis

              Source Subgraphs

              • All Subgraphs need to be published with a specVersion 1.3.0 or later (Use the latest graph-cli version to be able to deploy composable Subgraphs)
              • See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0⁠
              • Immutable entities only: All Subgraphs must have immutable entities when the Subgraph is deployed
              • Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of
              • Source Subgraphs cannot use grafting on top of existing entities
              • Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly

              Composed Subgraphs

              • You can only compose up to a maximum of 5 source Subgraphs
              • Composed Subgraphs can only use datasources from the same chain
              • Nested composition is not yet supported: Composing on top of another composed Subgraph isn’t allowed at this time
              • Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly
              • Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph)

              Additionally, you can explore the example-composable-subgraph⁠ repository for a working implementation of composable Subgraphs

              Commencer

              The following guide provides examples for defining 3 source Subgraphs to create one powerful composed Subgraph.

              Spécificités⁠

              • Pour que cet exemple reste simple, tous les subgraphs sources n’utilisent que des gestionnaires de blocs. Cependant, dans un environnement réel, chaque subgraph source utilisera des données provenant de différents contrats intelligents.
              • Les exemples ci-dessous montrent comment importer et étendre le schéma d’un autre subgraph afin d’en améliorer les fonctionnalités.
              • Chaque subgraphe source est optimisé avec une entité spécifique.
              • Toutes les commandes listées installent les dépendances nécessaires, génèrent du code basé sur le schéma GraphQL, construisent le subgraph et le déploient sur votre instance locale de Graph Node.

              Étape 1. Déployer le subgraph source de temps de bloc

              Ce premier subgraph source calcule le temps de bloc pour chaque bloc.

              • Il importe des schémas d’autres subgraphs et ajoute une entité block avec un champ timestamp, représentant l’heure à laquelle chaque bloc a été extrait.
              • Il écoute les événements de la blockchain liés au temps (par exemple, les horodatages des blocs) et traite ces données pour mettre à jour les entités du subgraph en conséquence.

              Pour déployer ce subgraph localement, exécutez les commandes suivantes :

              1npm install2npm run codegen3npm run build4npm run create-local5npm run deploy-local

              Étape 2. Déployer le subgraph de la source de coût du bloc

              Ce deuxième subgraph source indexe le coût de chaque bloc.

              Principales fonctions

              • Il importe des schémas d’autres subgraphs et ajoute une entité block avec des champs liés aux coûts.
              • Il écoute les événements de la blockchain liés aux coûts (par exemple, les frais de gaz, les coûts de transaction) et traite ces données pour mettre à jour les entités du subgraph en conséquence.

              Pour déployer ce subgraph localement, exécutez les mêmes commandes que ci-dessus.

              Étape 3. Définition de la taille des blocs dans le subgraph source

              Ce troisième subgraph source indexe la taille de chaque bloc. Pour déployer ce subgraph localement, exécutez les mêmes commandes que ci-dessus.

              Principales fonctions

              • Il importe les schémas existants des autres subgraphs et ajoute une entité block avec un champ size représentant la taille de chaque bloc.
              • Il écoute les événements de la blockchain liés à la taille des blocs (par exemple, le stockage ou le volume) et traite ces données pour mettre à jour les entités du subgraph en conséquence.

              Étape 4. Combinaison en Subgraph Block Stats

              This composed Subgraph combines and aggregates the information from the source Subgraphs above, providing a unified view of block statistics. To deploy this Subgraph locally, run the same commands as above.

              Note:

              • Toute modification apportée à un subgraph source est susceptible de générer un nouvel ID de déploiement.
              • Veillez à mettre à jour l’ID de déploiement dans l’adresse de la source de données du manifeste Subgraph pour bénéficier des dernières modifications.
              • Tous les subgraphs sources doivent être déployés avant le déploiement du subgraph composé.

              Principales fonctions

              • Il fournit un modèle de données consolidé qui englobe toutes les mesures de bloc pertinentes.
              • It combines data from 3 source Subgraphs, and provides a comprehensive view of block statistics, enabling more complex queries and analyses.

              Principaux points à retenir

              • Cet outil puissant vous permettra de développer vos subgraphs et de combiner plusieurs subgraphs.
              • The setup includes the deployment of 3 source Subgraphs and one final deployment of the composed Subgraph.
              • Cette caractéristique permet de débloquer l’évolutivité, simplifiant ainsi l’efficacité du développement et de la maintenance.

              Ressources supplémentaires

              • Check out all the code for this example in this GitHub repo⁠.
              • Pour ajouter des fonctionnalités avancées à votre subgraph, consultez Fonctionnalités avancées du subgraph.
              • Pour en savoir plus sur les agrégations, consultez Séries chronologiques et agrégations.
              ⁠Edit on GitHub⁠

              FacturationDébogage rapide et facile des subgraph à l'aide de Forks
              On this page
              • Présentation
              • Avantages de la composition
              • Overview de l’architecture
              • Prérequis
              • Source Subgraphs
              • Composed Subgraphs
              • Commencer
              • Spécificités⁠
              • Étape 1. Déployer le subgraph source de temps de bloc
              • Étape 2. Déployer le subgraph de la source de coût du bloc
              • Étape 3. Définition de la taille des blocs dans le subgraph source
              • Étape 4. Combinaison en Subgraph Block Stats
              • Principaux points à retenir
              • Ressources supplémentaires
              The GraphStatusTestnetActifs de la MarqueForumSécuritéPolitique de confidentialitéConditions d'utilisation