Subgrafo Core usando GraphQL
Los desarrolladores pueden utilizar un subgrafo autohospedado para extraer datos de la cadena de bloques Core, procesarlos y almacenarlos para su consumo a través de GraphQL. Echemos un vistazo a cómo podemos crear e implementar esta poderosa herramienta.
URL importantes
Usaremos algunas URL estándar a lo largo de esta guía, que será útil revisar antes de comenzar.
Red principal
URL | Uso |
---|---|
URL de administración: https://thegraph.coredao.org/deploy/ | Se utiliza para crear/implementar subgrafos. |
IPFS URL: https://thegraph.coredao.org/ipfs/ | Se utiliza para implementar subgrafos. |
HTTP query URL: https://thegraph.coredao.org | Se utiliza para consultar datos de subgrafos. |
URL de control de estado >https://thegraph-is.coredao.org | Se utiliza para comprobar el estado del subgrafo. |
Red de prueba
URL | Uso |
---|---|
URL de administración: https://thegraph-node.test.btcs.network | Se utiliza para crear/implementar subgrafos (--node o -g). |
URL de IPFS: https://thegraph-ipfs.test.btcs.network | Se utiliza para implementar subgrafos. |
URL de consulta HTTP: https://thegraph.test.btcs.network | Se utiliza para consultar datos de subgrafos. |
URL de control de estado >https://thegraph-sub.test.btcs.network | Se utiliza para comprobar el estado del subgrafo. |
Pasos generales de configuración del subgrafo
Crear repositorio
Para crear su repositorio de subgrafos, siga la guía oficial de The Graph. Para implementar en la red Core Graph, asegúrese de configurar el nombre de su red en subgraph.yaml
como núcleo. Dependiendo de su subgrafo, es posible que haya algunos cambios más que realizar Encontrará detalles adicionales en la sección de ejemplos completa a continuación. Encontrará detalles adicionales en la sección de ejemplo completo a continuación.
Crear e implementar
Para crear e implementar su subgrafo, ejecute los siguientes comandos en el repositorio de su proyecto de subgrafo.
# Crear subgraph
graph create your-subgraph-name --node https://thegraph.coredao.org/deploy/
# Deployar subgraph
graph deploy your-subgraph-name --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/
El comando graph depoy
debería devolver la URL de consulta HTTP para su subgrafo, que puede integrar en su aplicación según corresponda.
Ejemplo: implementación de un subgrafo Uniswap V2
Ahora que entendemos el proceso, veamos un ejemplo completo configurando un subgrafo Uniswap V2 en Core.
Primero, clone el repositorio de subgrafos de Uniswap V2, navegue hasta la carpeta del proyecto y luego ejecute los siguientes comandos desde ese directorio:
# Instalar dependencias con npm (o hilo)
npm install
# Generar código de subgrafo
npm run codegen
Ahora haremos algunos cambios necesarios en el subgraph.yaml and helpers.ts files:
- subgraph.yaml:
- Cambie el nombre de la red a "core" en las líneas 9 y 37.
- Actualice la dirección de fábrica en la línea 11.
- Actualice
startBlock
en la línea 13 a una altura de bloque razonable (la altura del bloque actual está disponible aquí).
- src/mappings/helpers.ts:
- Actualice la dirección de fábrica en la línea 11.
Finalmente, ejecutaremos los comandos de creación e implementación. Para evitar problemas de compatibilidad, usemos el graph-cli instalado en el proyecto (en lugar de la versión global) anteponiendo el comando graph
con ./node_modules/.bin/
.
# Crea un nuevo subgrafo llamado uniswap-4-test
./node_modules/.bin/graph create uniswap-4-test --node https://thegraph.coredao.org/deploy/
# Implementar el subgrafo uniswap-4-test
./node_modules/.bin/graph deploy uniswap-4-test --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/
# El comando de implementación debería imprimir una URL de consulta HTTP similar a:
# https://thegraph.coredao.org/subgraphs/name/uniswap-4-test
¡Bien hecho, tu subgrafo está implementado! Ahora puede integrar la URL de consulta HTTP impresa por el comando de implementación en su sitio web y utilizarla para consultar datos.
Autorización
Para evitar que otros sobrescriban su subgrafo, contáctenos en discord para obtener una clave de autorización.
Si está realizando pruebas con TestNet Graph, aquí hay un token de acceso para fines de prueba generales: a9a79c2aea604bfaa861ff93d46d0d11.