Core Subgraph utilisant GraphQL
Les développeurs peuvent utiliser un sous-graphe auto-hébergé pour extraire des données de la blockchain Core, les traiter et les stocker pour une utilisation via GraphQL. Voici comment créer et déployer cet outil puissant.
URLs Importantes
Nous utiliserons plusieurs URLs standard dans ce guide, qui seront utile de revoir avant de commencer.
MainNet
URL | Utilisation |
---|---|
URL de gestion: https://thegraph.coredao.org/deploy/ | Utiliser pour créer/déployer des sous-graphes (--node or -g). |
URL IPFS: https://thegraph.coredao.org/ipfs/ | Utiliser pour déployer des sous-graphes. |
URL de requête HTTP: https://thegraph.coredao.org | Utiliser pour interroger des données depuis des sous-graphes. |
URL de vérification de santé https://thegraph-is.coredao.org | Utiliser pour vérifier la santé des sous-graphes. |
TestNet
URL | Utilisation |
---|---|
URL de gestion: https://thegraph-node.test.btcs.network | Utiliser pour créer/déployer des sous-graphes (--node or -g). |
URL IPFS: https://thegraph-ipfs.test.btcs.network | Utiliser pour déployer des sous-graphes. |
URL de requête HTTP: https://thegraph.test.btcs.network | Utiliser pour interroger des données depuis des sous-graphes. |
URL de vérification de santé https://thegraph-sub.test.btcs.network | Utiliser pour vérifier la santé des sous-graphes. |
Étapes Générales pour la Configuration du Sous-Graphe
Créer un Répertoire
Suivez le guide officiel de The Graph pour créer votre répertoire de sous-graphe. Dans le but de deployer sur le de sous-graphe Core, assurez-vous de définir le nom du réseau dans subgraph.yaml
sur core. Selon votre sous-graphe, il peut y avoir quelques modifications supplémentaires à effectuer. Vous trouverez des détails supplémentaires dans la section d'exemple complète ci-dessous.
Créer et Déployer
Pour créer et déployer votre sous-graphe, exécutez les commandes suivantes dans le répertoire de votre projet de sous-graphe.
# Créer le sous-graphe
graph create your-subgraph-name --node https://thegraph.coredao.org/deploy/
# Déployer le sous-graphe
graph deploy your-subgraph-name --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/
La commande de déploiement graph deploy
devrait retourner l'URL HTTP de requête pour votre sous-graphe, que vous pouvez intégrer dans votre application selon vos besoins.
Exemple : Déploiement d'un sous-graphe Uniswap V2
Maintenant que nous comprenons le processus, passons à un exemple complet en configurant un sous-graphe Uniswap V2 sur Core.
Premièrement, clonez le répertoire du sous-graphe Uniswap V2, accédez au dossier du projet, puis exécutez les commandes suivantes depuis ce répertoire :
# Installer les dépendances avec npm (ou yarn)
npm install
# Générer le code du sous-graphe
npm run codegen
Maintenant nous allons apporter quelques modifications nécessaires aux fichiers subgraph.yaml et helpers.ts :
- subgraph.yaml:
- Changez le nom du réseau en
core
aux lignes 9 et 37. - Mettez à jour l'adresse du factory à la ligne 11.
- Mettez à jour le
startBlock
à la ligne 13 avec une hauteur de bloc raisonnable (la hauteur actuelle du bloc est disponible ici).
- Changez le nom du réseau en
- src/mappings/helpers.ts:
- Mettez à jour l'adresse du factory à la ligne 11.
Finalement, nous allons exécuter les commandes de création et de déploiement. Pour éviter les problèmes de compatibilité, utilisez la version de graph-cli installée dans le projet (au lieu de la version globale) en préfixant la commande graph
avec ./node_modules/.bin/
.
# Créer un nouveau sous-graphe appelé uniswap-4-test
./node_modules/.bin/graph create uniswap-4-test --node https://thegraph.coredao.org/deploy/
# Déployer le sous-graphe uniswap-4-test
./node_modules/.bin/graph deploy uniswap-4-test --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/
# Le déploiement devrait imprimer une URL HTTP de requête similaire à :
# https://thegraph.coredao.org/subgraphs/name/uniswap-4-test
Félicitations, votre sous-graphe est déployé ! Vous pouvez maintenant intégrer l'URL de requête HTTP imprimée par la commande de déploiement dans votre site web et l'utiliser pour interroger les données.
Autorisation
Pour éviter que votre sous-graphe soit écrasé par d'autres, veuillez nous contacter sur Discord pour obtenir une clé d'autorisation.
Si vous testez contre le TestNet Graph, voici un jeton d'accès pour des fins de test général : a9a79c2aea604bfaa861ff93d46d0d11.