Acerca de The Graph

En esta página se explica qué es The Graph y cómo puedes empezar a utilizarlo.

Que es The Graph?

Enlace a esta sección

The Graph es un protocolo descentralizado que permite indexar y consultar datos de la blockchain. The Graph permite consultar datos los cuales son difíciles de consultar directamente.

Los proyectos con contratos inteligentes complejos como Uniswap y las iniciativas de NFTs como Bored Ape Yacht Club almacenan los datos en la blockchain de Ethereum, lo que hace realmente difícil leer algo más que los datos básicos directamente desde la blockchain.

En el caso de Bored Ape Yacht Club, podemos realizar operaciones de lecturas básicas en su contrato, para obtener el propietario de un determinado Ape, obtener el URI de un Ape en base a su ID, o el supply total, ya que estas operaciones de lectura están programadas directamente en el contrato inteligente, pero no son posibles las consultas y operaciones más avanzadas del mundo real como la adición, consultas, las relaciones y el filtrado no trivial. Por ejemplo, si quisiéramos consultar los Apes que son propiedad de una dirección en concreto, y filtrar por una de sus características, no podríamos obtener esa información interactuando directamente con el contrato.

Para obtener estos datos, tendríamos que procesar cada uno de los eventos de transferencia que se hayan emitido, leer los metadatos de IPFS utilizando el ID del token y el hash del IPFS, con el fin de luego agregarlos. Incluso para este tipo de preguntas relativamente sencillas, una aplicación descentralizada (dapp) que se ejecutara en un navegador tardaría horas o incluso días en obtener una respuesta.

También podrías crear tu propio servidor, procesar las transacciones allí, guardarlas en una base de datos y construir un punto de conexión de API encima de todo eso para consultar los datos. Sin embargo, esta opción requiere muchos recursos, necesita mantenimiento, presenta un único punto de fallo y compromete las propiedades de seguridad importantes necesarias para la descentralización.

Indexar los datos de la blockchain es muy, muy difícil.

Las propiedades de la blockchain, su finalidad, la reorganización de la cadena o los bloques que están por cerrarse, complican aún más este proceso y hacen que no solo se consuma tiempo, sino que sea conceptualmente difícil recuperar los resultados correctos proporcionados por la blockchain.

The Graph resuelve esto con un protocolo descentralizado que indexa y permite una consulta eficiente y de alto rendimiento para recibir los datos de la blockchain. Estas APIs ("subgrafos" indexados) pueden consultarse después con una API de GraphQL estándar. Actualmente, existe un servicio alojado (hosted) y un protocolo descentralizado con las mismas capacidades. Ambos están respaldados por la implementación de código abierto de Graph Node.

¿Cómo funciona The Graph?

Enlace a esta sección

The Graph aprende, qué y cómo indexar los datos de Ethereum, basándose en las descripciones de los subgrafos, conocidas como el manifiesto de los subgrafos. La descripción del subgrafo define los contratos inteligentes de interés para este subgrafo, los eventos en esos contratos a los que prestar atención, y cómo mapear los datos de los eventos a los datos que The Graph almacenará en su base de datos.

Una vez que has escrito el subgraph manifest, utilizas el CLI de The Graph para almacenar la definición en IPFS y decirle al indexador que empiece a indexar los datos de ese subgrafo.

Este diagrama ofrece más detalles sobre el flujo de datos una vez que se ha deployado en el manifiesto para un subgrafo, que trata de las transacciones en Ethereum:

Un gráfico explicando como The Graph usa Graph Node para servir consultas a los consumidores de datos

El flujo sigue estos pasos:

  1. Una aplicación descentralizada (dapp) añade datos a Ethereum a través de una transacción en un contrato inteligente.
  2. El contrato inteligente emite uno o más eventos mientras procesa la transacción.
  3. Graph Node escanea continuamente la red de Ethereum en busca de nuevos bloques y los datos de tu subgrafo que puedan contener.
  4. Graph Node encuentra los eventos de la red Ethereum, a fin de proveerlos en tu subgrafo mediante estos bloques y ejecuta los mapping handlers que proporcionaste. El mapeo (mapping) es un módulo WASM que crea o actualiza las entidades de datos que Graph Node almacena en respuesta a los eventos de Ethereum.
  5. La dapp consulta a través de Graph Node los datos indexados de la blockchain, utilizando el GraphQL endpoint del nodo. El Nodo de The Graph, a su vez, traduce las consultas GraphQL en consultas para su almacenamiento de datos subyacentes con el fin de obtener estos datos, haciendo uso de las capacidades de indexación que ofrece el almacenamiento. La dapp muestra estos datos en una interfaz muy completa para el usuario, a fin de que los end users que usan este subgrafo puedan emitir nuevas transacciones en Ethereum. El ciclo se repite.

Próximos puntos

Enlace a esta sección

En las siguientes secciones entraremos en más detalles sobre cómo definir subgrafos, cómo deployarlos y cómo consultar los datos de los índices que construye el Graph Node.

Antes de que empieces a escribir tu propio subgrafo, es posible que debas echar un vistazo a The Graph Explorer para explorar algunos de los subgrafos que ya han sido deployados. La página de cada subgrafo contiene un playground que te permite consultar los datos de ese subgrafo usando GraphQL.

Editar página

Anterior
Comenzar
Siguiente
Descripción
Editar página