Lição 2

Tecnología detrás del gráfico

Profundizando en la arquitectura de The Graph, encontramos un sistema complejo pero elegantemente estructurado que sustenta el mecanismo de consulta descentralizado en el ecosistema blockchain. Este intrincado marco, centrado en el nodo Graph, orquesta una integración perfecta de varios componentes, cada uno de los cuales desempeña un papel fundamental en el funcionamiento eficiente de la red.

El nodo Graph: el centro neurálgico de la indexación

En el corazón de la arquitectura de The Graph se encuentra el Nodo Graph. Este componente clave es responsable de indexar subgrafos y hacer que los datos resultantes sean accesibles a través de una API de GraphQL. Es el núcleo de la pila del indexador y su funcionamiento eficaz es crucial para ejecutar un indexador correcto. Graph Node opera con versatilidad, capaz de ejecutarse tanto en entornos bare metal como en la nube, lo que refleja la adaptabilidad requerida en el panorama dinámico de la tecnología blockchain.

Almacenamiento de datos en bases de datos PostgreSQL

Una parte integral del funcionamiento del nodo Graph es la base de datos PostgreSQL, que actúa como almacén principal. Esta base de datos alberga no solo los datos de subgrafos, sino también metadatos sobre subgrafos y datos esenciales de la red, como cachés de bloques y eth_call. La organización y gestión de esta base de datos son vitales para el buen funcionamiento del Nodo Graph, garantizando la integridad y accesibilidad de los datos.

Clientes de red y mangueras contra incendios

Para indexar redes de cadena de bloques, Graph Node se conecta a los clientes de red a través de una API JSON-RPC compatible con EVM. Esta configuración puede variar desde la conexión a un solo cliente hasta una disposición más compleja que implica el equilibrio de carga entre varios clientes. Además, The Graph ha desarrollado Network Firehoses, un servicio gRPC que proporciona un flujo de bloques ordenado y compatible con bifurcaciones. Si bien actualmente no es un requisito para los indexadores, Firehose representa un avance significativo en la compatibilidad con la indexación de alto rendimiento a escala.

Metadatos sobre nodos IPFS y monitoreo con Prometheus

La interacción de Graph Node con la red IPFS es crucial para almacenar metadatos de implementación de subgrafos. Un nodo IPFS hospedado en el nivel de red simplifica este proceso para los indexadores. Además, la integración opcional con un servidor de métricas de Prometheus para la supervisión y la generación de informes agrega otra capa de sofisticación, lo que permite a los indexadores realizar un seguimiento y optimizar el rendimiento del nodo Graph.

Escalabilidad y configuraciones avanzadas

La configuración flexible de Graph Node, desde las opciones de instalación hasta las capacidades de escalado, destaca el compromiso de The Graph de adaptarse a diversas necesidades operativas. El sistema se puede escalar horizontalmente con múltiples nodos de gráficos y bases de datos, lo que satisface las crecientes demandas de la red. Los usuarios avanzados pueden aprovechar las opciones de configuración del nodo Graph, administradas a través de un archivo TOML o variables de entorno, para optimizar el procesamiento de datos y la distribución de la carga de trabajo.

Indexación y procesamiento de datos: redefinición de Firehose y substreams

Firehose: Reinventando la extracción de datos de blockchain

Firehose, conceptualizado y desarrollado por StreamingFast, marca una revolución en la extracción de datos de los nodos de blockchain. Esta innovadora herramienta desglosa cada transacción dentro de un bloque de blockchain en sus elementos más pequeños, guardándolos como archivos simples y planos. Estos archivos planos no son solo un formato de almacenamiento; Encarnan un cambio de paradigma en la indexación de datos. Facilitan el procesamiento paralelo, lo que acelera drásticamente las operaciones de indexación. Esta tecnología ofrece datos enriquecidos y compatibles con la bifurcación de los nodos de blockchain instrumentados directamente a los consumidores. En términos prácticos, Firehose ha demostrado su destreza al ofrecer velocidades de captura y procesamiento que antes se consideraban inalcanzables, estableciendo así nuevos estándares para la extracción de datos en el ecosistema de The Graph.

Subflujos: pioneros en el procesamiento eficiente de datos

Los substreams, una extensión de las capacidades proporcionadas por Firehose, están diseñados para el procesamiento de datos de alto rendimiento en paralelo, dando prioridad a la transmisión. Estos módulos escritos por Rust permiten a los desarrolladores componer, ordenar, almacenar y transformar datos de blockchain para diversos usos. El ingenio de los substreams radica en su capacidad para utilizar los archivos planos de Firehose para indexar datos a velocidades excepcionalmente rápidas. Este enfoque garantiza que los subflujos no solo sean altamente eficientes en el procesamiento de datos, sino también en su distribución tan pronto como estén disponibles, en lugar de depender de solicitudes continuas.

La combinación de manguera contra incendios y subcorrientes

La integración de Firehose y Substreams dentro del ecosistema de The Graph proporciona una poderosa combinación para el procesamiento de datos. Firehose garantiza la entrega rápida de datos de blockchain en un formato optimizado, mientras que Substreams refina y procesa aún más estos datos. Esta relación sinérgica da como resultado una eficiencia sin precedentes en el manejo de grandes volúmenes de datos de blockchain, elevando significativamente las capacidades de The Graph.

Subgrafos: El estándar de la industria en indexación de datos

Los subgrafos se han convertido en el estándar de la industria en la indexación de datos de blockchain desde su introducción por The Graph en 2018. Son esencialmente API abiertas que extraen, procesan y almacenan datos de blockchains, lo que los hace fácilmente consultables a través de una interfaz GraphQL. Con más de 85.000 subgrafos soportados en más de 40 cadenas, los subgrafos se han convertido en indispensables para los desarrolladores de web3. Permiten el despliegue rápido de una base de datos Postgres llena de datos indexados, listos para ser consultados mediante una capa de GraphQL. Los subgrafos permiten a los desarrolladores mostrar una amplia gama de datos de blockchain en sus DApps, desde transacciones DeFi hasta la procedencia de NFT, de manera organizada y eficiente.

En el panorama en constante evolución de la tecnología blockchain, los subgrafos han surgido como un concepto fundamental, transformando la forma en que interactuamos y utilizamos los datos de blockchain. Estas API abiertas actúan como intermediarios, cerrando sin problemas la brecha entre el mundo descentralizado de las cadenas de bloques y el ámbito familiar de los datos estructurados. Al extraer, procesar y organizar los datos de la cadena de bloques en un formato consultable, los subgrafos permiten a los desarrolladores crear aplicaciones innovadoras y basadas en datos.

Los subgrafos ofrecen una gran cantidad de beneficios, lo que los convierte en una opción atractiva tanto para los desarrolladores como para los usuarios. Su naturaleza descentralizada garantiza la resistencia a la censura y al tiempo de inactividad, fomentando un ecosistema de datos seguro y fiable. Además, los subgrafos son inherentemente escalables, capaces de manejar cantidades masivas de datos sin comprometer el rendimiento. La rentabilidad es otra ventaja clave, ya que los subgrafos suelen ser más asequibles que las API de datos tradicionales.

La arquitectura de subgrafos

Los subgrafos se componen de tres componentes esenciales que trabajan en armonía para ofrecer sus capacidades transformadoras:

  1. Manifiesto: el manifiesto sirve como modelo del subgrafo, describiendo sus orígenes de datos, esquema y código AssemblyScript. Define los límites de los datos que indexará el subgrafo, lo que garantiza que solo se capture la información relevante.

  2. Esquema: El esquema define la estructura de los datos, similar al plano de un edificio. Describe las entidades, los campos y las relaciones entre entidades, proporcionando una forma clara y organizada de representar los datos.

  3. Código AssemblyScript: Este código ejecutable actúa como el caballo de batalla del subgrafo, traduciendo los datos sin procesar de las cadenas de bloques a un formato que el motor GraphQL puede comprender. También se encarga de la indexación y el almacenamiento de datos, garantizando su accesibilidad y fiabilidad.

Proceso de desarrollo de subgrafos

La creación de un subgrafo implica una serie de pasos, cada uno cuidadosamente diseñado para garantizar la funcionalidad y eficacia del subgrafo:

  1. Conceptualización y diseño: El viaje comienza con una idea clara de los datos que se van a indexar y las aplicaciones que potenciarán. Esto implica definir las entidades, los campos y las relaciones entre ellos, asegurándose de que la estructura del subgrafo se alinee con su propósito previsto.

  2. Desarrollo de manifiestos y esquemas: El manifiesto y el esquema se elaboran meticulosamente, proporcionando la base para la arquitectura de datos del subgrafo. El manifiesto especifica las fuentes de datos, mientras que el esquema describe la estructura de datos, lo que garantiza la integridad y la coherencia de los datos.

  3. Implementación del código AssemblyScript: Se escribe el código AssemblyScript, traduciendo los datos brutos de la cadena de bloques a un formato que GraphQL pueda entender. Maneja la indexación, el almacenamiento y la recuperación de datos, lo que permite un acceso eficiente a los datos indexados.

Implementación y publicación de subgrafos

Una vez desarrollado el subgrafo, se somete a un proceso de despliegue que lo presenta al mundo:

  1. Integración de Subgraph Studio: Subgraph Studio sirve como una plataforma centralizada para administrar subgrafos. Facilita el proceso de implementación, permitiendo a los desarrolladores publicar sus subgrafos en la red descentralizada.

  2. Indexación y curación: Los indexadores, responsables de obtener y almacenar datos de blockchain, son esenciales para hacer que los subgrafos sean accesibles para los desarrolladores. La curaduría, que normalmente se realiza a través de tokens GRT, incentiva a los indexadores a priorizar los subgrafos con alta demanda.

  3. Consulta y utilización: los desarrolladores ahora pueden consultar el subgrafo implementado mediante consultas de GraphQL, recuperando datos específicos adaptados a las necesidades de su aplicación. Esta integración perfecta permite a los desarrolladores aprovechar los datos de blockchain para la innovación.

El futuro: la nueva era del grafo

A medida que The Graph se embarca en su Nueva Era (la exploraremos en la Lección 5), se espera con impaciencia la evolución continua de estas tecnologías centrales (subgrafos, Firehose y Substreams). Estos componentes están destinados a expandirse y evolucionar, desempeñando un papel vital en la introducción de nuevos servicios de datos y asegurando flujos de datos más rápidos y modulares. La manguera de incendios verificable, por ejemplo, está preparada para ser una solución innovadora para acceder a los datos históricos de Ethereum, abordando los desafíos de la evolución de los estándares de blockchain.

Diferenciar los subgrafos de los substreams

Es crucial distinguir entre subgrafos y subflujos, ya que sirven para diferentes propósitos. Los subgrafos son ideales para la recuperación y gestión de datos estándar, ya que ofrecen facilidad de configuración y uso con una capa de consulta de GraphQL. Por el contrario, los subflujos se adaptan a las necesidades de análisis y big data más complejas, ofreciendo un procesamiento de datos paralelizado y una mayor flexibilidad en el manejo y almacenamiento de datos. Los subflujos permiten a los desarrolladores transformar datos de formatos de archivo básicos en formas más utilizables, lo que satisface los sofisticados requisitos de procesamiento de datos.

Organización de datos fuera de la cadena: el enfoque y el impacto del gráfico en las canalizaciones de datos Web3

The Graph, tradicionalmente conocido por su destreza en la organización de datos on-chain, ahora está expandiendo sus horizontes aventurándose en el ámbito de los datos off-chain. Este enfoque se alinea con la misión a largo plazo de The Graph de proporcionar un fácil acceso al conocimiento y la información pública del mundo.

La Web3 y las ventajas y desventajas de la gestión de datos

En la arquitectura Web3, si bien los usuarios pueden interactuar directamente con la cadena de bloques a través de servicios de middleware, hay una compensación, especialmente cuando se trata de costos. Los costos de transacción en cadena, a menudo denominados tarifas de gas, pueden ser prohibitivamente altos para cálculos complejos o almacenamiento de datos extenso. Históricamente, esta limitación ha reducido la complejidad de las aplicaciones o ha llevado a los desarrolladores a crear API propietarias fuera de la cadena, alejándose de los modelos de código abierto.

La solución única de The Graph para datos fuera de la cadena

The Graph presenta una solución única a este desafío al permitir la organización y el servicio de datos fuera de la cadena a través de su red descentralizada. Este método implica un flujo de trabajo en el que los datos tradicionalmente fuera de la cadena se publican en IPFS (Sistema de archivos interplanetario) y los hashes IPFS se registran en la cadena. Posteriormente, estos datos pueden ser indexados por subgrafos y puestos a disposición para su consulta. Este enfoque ofrece una forma escalable y económica de publicar y servir datos complejos y dinámicos sin la sobrecarga de crear y mantener API propietarias.

El flujo de trabajo: un proceso de tres pasos

El flujo de trabajo consta de tres componentes clave:

  1. Trabajos cron para el cálculo y la publicación de datos: Un trabajo cron fuera de la cadena realiza cálculos complejos y publica los resultados en una fuente permaweb, como IPFS, indexable por The Graph. Este trabajo también genera una transacción en cadena para publicar el hash del archivo IPFS y los metadatos relevantes.

  2. Publicación de subgrafos para indexación: El siguiente paso consiste en publicar un subgrafo que indexe estos archivos IPFS en función de los hashes de archivo publicados en la cadena. Una vez que se publica el subgrafo, los indexadores de la red de The Graph pueden recogerlo y servirlo, lo que permite a los desarrolladores y usuarios de terceros consultar los datos.

  3. Acceso a datos robusto y confiable: Al aprovechar la red distribuida de indexadores de The Graph, el acceso a los datos sigue siendo sólido y confiable sin esfuerzo adicional por parte del editor de datos. Esta estructura descentralizada mejora significativamente la disponibilidad e integridad de los datos.

Implementación práctica y rentabilidad

Un ejemplo práctico en el ecosistema de The Graph es el oráculo desarrollado por Edge & Node para la publicación de métricas de coste de red y calidad de servicio. Este oráculo publica datos agregados en IPFS cada cinco minutos y registra el hash del archivo IPFS en la cadena Gnosis. A continuación, estos datos se indexan en un subgrafo, que puede ser consumido por las partes interesadas del protocolo. El costo asociado con este flujo de trabajo es sorprendentemente bajo, lo que lo convierte en una opción atractiva para los editores de datos.

Nuevas posibilidades con datos dinámicos

Este método de uso de The Graph para datos dinámicos abre nuevas y emocionantes posibilidades para los sitios permaweb, incluidos los back-ends lean para blogs, la curación algorítmica de contenido y los sistemas de monitoreo en tiempo real. Representa un cambio significativo en la forma en que se publican, indexan y acceden a los datos, promoviendo un ecosistema web3 más abierto y colaborativo.

Organización de datos fuera de la cadena: el enfoque innovador de The Graph

La expansión de The Graph hacia la gestión de datos fuera de la cadena abre nuevas vías en el ecosistema Web3, creando un puente entre los reinos de datos descentralizados y tradicionales. Esta iniciativa refleja la misión de The Graph de hacer accesible un espectro más amplio de información de manera descentralizada, abordando las limitaciones inherentes al almacenamiento y la computación de datos en cadena.

Equilibrio de las necesidades de datos dentro y fuera de la cadena

The Graph reconoce las compensaciones relacionadas con los costes del almacenamiento y la computación de datos en cadena en las arquitecturas Web3. Si bien la interacción directa con la cadena de bloques es sencilla, los cálculos complejos y el almacenamiento de datos a gran escala pueden resultar prohibitivamente costosos. Para eludir estas limitaciones, The Graph presenta un método que combina el almacenamiento de datos fuera de la cadena con la referencia de datos dentro de la cadena, conservando así el espíritu descentralizado y mejorando la funcionalidad.

La metodología del grafo para los datos fuera de la cadena

Este enfoque implica un flujo de trabajo de tres pasos:

  1. Computación fuera de la cadena y publicación de IPFS: Los cálculos complejos se realizan fuera de la cadena y los datos resultantes se publican en IPFS, una solución de almacenamiento descentralizada. Este paso garantiza que los datos, aunque estén fuera de la cadena, se almacenen de manera verificable y descentralizada.

  2. Vinculación en cadena a través de transacciones: Además de almacenar datos en IPFS, se realiza una transacción en cadena correspondiente para registrar el hash IPFS y otros metadatos relevantes. Este método ancla los datos fuera de la cadena a la cadena de bloques, proporcionando una capa de confianza y trazabilidad.

  3. Indexación de subgrafos para accesibilidad: El último paso consiste en indexar los datos almacenados en IPFS mediante subgrafos. Este proceso hace que los datos fuera de la cadena sean fácilmente consultables y accesibles a través de la red descentralizada de The Graph.
    Implementación práctica: Oracle de Edge y Node

Una aplicación práctica de esta metodología dentro del ecosistema de The Graph es el oráculo desarrollado por Edge & Node. Este oráculo publica métricas de costo de red y calidad de servicio cada cinco minutos de la siguiente manera:

  • Los datos agregados se publican en IPFS.

  • El hash del archivo IPFS correspondiente se registra en la cadena Gnosis a través de un contrato DataEdge.

  • Estos archivos IPFS se indexan en un subgrafo, lo que hace que los datos estén disponibles para las partes interesadas de manera descentralizada.
    Esta implementación demuestra el enfoque de bajo costo, escalable y eficiente para publicar y servir datos complejos sin la necesidad de API propietarias. Ejemplifica cómo se puede aprovechar el método de The Graph para crear fuentes de datos dinámicas para una variedad de aplicaciones.

Rentabilidad y escalabilidad

Los costos asociados con este flujo de trabajo son sorprendentemente bajos, lo que lo convierte en una solución atractiva para los editores de datos. Por ejemplo, la implementación de Oracle por parte de Edge & Node incurre en gastos mínimos para las transacciones en cadena y la fijación de nodos IPFS, y los costos de servicio corren a cargo del consumidor de datos. Este modelo reduce eficazmente la sobrecarga operativa para los publicadores de datos, al tiempo que garantiza un acceso a los datos sólido y fiable.

Habilitación de nuevos casos de uso de Web3

Este método abre nuevas posibilidades para las aplicaciones permaweb, como back-ends dinámicos para blogs, curación algorítmica de contenidos y sistemas de monitorización en tiempo real. Permite la partición de los publicadores de datos de los operadores de aplicaciones/front-end, lo que fomenta la especialización y la división del trabajo en una comunidad de código abierto. Este enfoque es prometedor para las aplicaciones y protocolos sociales descentralizados, ya que ofrece un nuevo camino a seguir para la publicación y el consumo de datos descentralizados.

Lenguaje de consulta y API en The Graph: Adopción de GraphQL

La integración de GraphQL como el lenguaje de consulta de elección. Esta decisión da forma significativamente a la forma en que se accede a los datos y se interactúa con ellos a través de las API de The Graph, proporcionando un método optimizado y eficiente para consultar los datos de la cadena de bloques.

Comprender el papel de GraphQL en The Graph

GraphQL se encuentra a la vanguardia del diseño moderno de API, ofreciendo un enfoque flexible y eficiente para la recuperación de datos. En el contexto de la cadena de bloques, donde las estructuras de datos son complejas y están en constante evolución, la capacidad de GraphQL para obtener exactamente lo que se necesita se vuelve invaluable.

  1. Consultas de datos personalizadas: En el centro del atractivo de GraphQL está su capacidad para permitir a los clientes definir con precisión la estructura de los datos que necesitan. Esta capacidad es una desviación significativa de las respuestas tradicionales de estructura fija, lo que permite una interacción de datos más enfocada y eficiente.

  2. Mejora de las interacciones en tiempo real: Más allá de las consultas, GraphQL en The Graph admite suscripciones de datos en tiempo real. Esta característica es vital para las aplicaciones de blockchain donde las actualizaciones oportunas y la capacidad de respuesta son clave para la experiencia del usuario.

  3. Acceso a datos descentralizado y sin confianza: El uso de GraphQL por parte de The Graph extiende su filosofía de descentralización al ámbito del acceso a los datos. Al interactuar con una red de nodos descentralizados, las consultas de GraphQL garantizan que los datos permanezcan abiertos, transparentes y resistentes a la censura.
    La convergencia de las APIs y GraphQL

En el ecosistema de The Graph, la fusión de las API con GraphQL crea un sistema armonioso y potente para la recuperación de datos:

  1. Definición de esquema y asignación de datos: los desarrolladores definen un esquema de GraphQL dentro de su subgrafo, describiendo la estructura de los datos consultables. Luego, el esquema se asigna intrincadamente a los eventos de la cadena de bloques, traduciendo las actividades en cadena en datos estructurados.

  2. Ejecución de consultas a través de indexadores: cuando una consulta de GraphQL se envía a una API de subgrafo, es procesada por la red descentralizada de indexadores de The Graph. Este proceso ejemplifica cómo se ejecutan las consultas de manera distribuida, defendiendo los principios de la tecnología blockchain.

  3. Manejo de relaciones de datos complejas: Dado que las relaciones de datos complejas son comunes en blockchain, la capacidad de GraphQL para manejar consultas intrincadas, incluidas varias formas de filtrado y clasificación de datos, es especialmente beneficiosa.

Los beneficios se despliegan para los desarrolladores y los usuarios finales

La integración de GraphQL en The Graph aporta numerosos beneficios:

  • Flexibilidad para desarrolladores: Los desarrolladores pueden aprovechar toda la potencia de GraphQL para crear consultas que se alineen con precisión con los requisitos de su aplicación.
  • Obtención eficiente de datos: La reducción de los tiempos de obtención de datos mejora el rendimiento de las aplicaciones, lo que se traduce directamente en una mejor experiencia para el usuario final.
  • Integración de datos sin fisuras: La naturaleza estandarizada de las consultas de GraphQL simplifica el proceso de integración de diversas fuentes de datos de blockchain en las aplicaciones.
Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 2

Tecnología detrás del gráfico

Profundizando en la arquitectura de The Graph, encontramos un sistema complejo pero elegantemente estructurado que sustenta el mecanismo de consulta descentralizado en el ecosistema blockchain. Este intrincado marco, centrado en el nodo Graph, orquesta una integración perfecta de varios componentes, cada uno de los cuales desempeña un papel fundamental en el funcionamiento eficiente de la red.

El nodo Graph: el centro neurálgico de la indexación

En el corazón de la arquitectura de The Graph se encuentra el Nodo Graph. Este componente clave es responsable de indexar subgrafos y hacer que los datos resultantes sean accesibles a través de una API de GraphQL. Es el núcleo de la pila del indexador y su funcionamiento eficaz es crucial para ejecutar un indexador correcto. Graph Node opera con versatilidad, capaz de ejecutarse tanto en entornos bare metal como en la nube, lo que refleja la adaptabilidad requerida en el panorama dinámico de la tecnología blockchain.

Almacenamiento de datos en bases de datos PostgreSQL

Una parte integral del funcionamiento del nodo Graph es la base de datos PostgreSQL, que actúa como almacén principal. Esta base de datos alberga no solo los datos de subgrafos, sino también metadatos sobre subgrafos y datos esenciales de la red, como cachés de bloques y eth_call. La organización y gestión de esta base de datos son vitales para el buen funcionamiento del Nodo Graph, garantizando la integridad y accesibilidad de los datos.

Clientes de red y mangueras contra incendios

Para indexar redes de cadena de bloques, Graph Node se conecta a los clientes de red a través de una API JSON-RPC compatible con EVM. Esta configuración puede variar desde la conexión a un solo cliente hasta una disposición más compleja que implica el equilibrio de carga entre varios clientes. Además, The Graph ha desarrollado Network Firehoses, un servicio gRPC que proporciona un flujo de bloques ordenado y compatible con bifurcaciones. Si bien actualmente no es un requisito para los indexadores, Firehose representa un avance significativo en la compatibilidad con la indexación de alto rendimiento a escala.

Metadatos sobre nodos IPFS y monitoreo con Prometheus

La interacción de Graph Node con la red IPFS es crucial para almacenar metadatos de implementación de subgrafos. Un nodo IPFS hospedado en el nivel de red simplifica este proceso para los indexadores. Además, la integración opcional con un servidor de métricas de Prometheus para la supervisión y la generación de informes agrega otra capa de sofisticación, lo que permite a los indexadores realizar un seguimiento y optimizar el rendimiento del nodo Graph.

Escalabilidad y configuraciones avanzadas

La configuración flexible de Graph Node, desde las opciones de instalación hasta las capacidades de escalado, destaca el compromiso de The Graph de adaptarse a diversas necesidades operativas. El sistema se puede escalar horizontalmente con múltiples nodos de gráficos y bases de datos, lo que satisface las crecientes demandas de la red. Los usuarios avanzados pueden aprovechar las opciones de configuración del nodo Graph, administradas a través de un archivo TOML o variables de entorno, para optimizar el procesamiento de datos y la distribución de la carga de trabajo.

Indexación y procesamiento de datos: redefinición de Firehose y substreams

Firehose: Reinventando la extracción de datos de blockchain

Firehose, conceptualizado y desarrollado por StreamingFast, marca una revolución en la extracción de datos de los nodos de blockchain. Esta innovadora herramienta desglosa cada transacción dentro de un bloque de blockchain en sus elementos más pequeños, guardándolos como archivos simples y planos. Estos archivos planos no son solo un formato de almacenamiento; Encarnan un cambio de paradigma en la indexación de datos. Facilitan el procesamiento paralelo, lo que acelera drásticamente las operaciones de indexación. Esta tecnología ofrece datos enriquecidos y compatibles con la bifurcación de los nodos de blockchain instrumentados directamente a los consumidores. En términos prácticos, Firehose ha demostrado su destreza al ofrecer velocidades de captura y procesamiento que antes se consideraban inalcanzables, estableciendo así nuevos estándares para la extracción de datos en el ecosistema de The Graph.

Subflujos: pioneros en el procesamiento eficiente de datos

Los substreams, una extensión de las capacidades proporcionadas por Firehose, están diseñados para el procesamiento de datos de alto rendimiento en paralelo, dando prioridad a la transmisión. Estos módulos escritos por Rust permiten a los desarrolladores componer, ordenar, almacenar y transformar datos de blockchain para diversos usos. El ingenio de los substreams radica en su capacidad para utilizar los archivos planos de Firehose para indexar datos a velocidades excepcionalmente rápidas. Este enfoque garantiza que los subflujos no solo sean altamente eficientes en el procesamiento de datos, sino también en su distribución tan pronto como estén disponibles, en lugar de depender de solicitudes continuas.

La combinación de manguera contra incendios y subcorrientes

La integración de Firehose y Substreams dentro del ecosistema de The Graph proporciona una poderosa combinación para el procesamiento de datos. Firehose garantiza la entrega rápida de datos de blockchain en un formato optimizado, mientras que Substreams refina y procesa aún más estos datos. Esta relación sinérgica da como resultado una eficiencia sin precedentes en el manejo de grandes volúmenes de datos de blockchain, elevando significativamente las capacidades de The Graph.

Subgrafos: El estándar de la industria en indexación de datos

Los subgrafos se han convertido en el estándar de la industria en la indexación de datos de blockchain desde su introducción por The Graph en 2018. Son esencialmente API abiertas que extraen, procesan y almacenan datos de blockchains, lo que los hace fácilmente consultables a través de una interfaz GraphQL. Con más de 85.000 subgrafos soportados en más de 40 cadenas, los subgrafos se han convertido en indispensables para los desarrolladores de web3. Permiten el despliegue rápido de una base de datos Postgres llena de datos indexados, listos para ser consultados mediante una capa de GraphQL. Los subgrafos permiten a los desarrolladores mostrar una amplia gama de datos de blockchain en sus DApps, desde transacciones DeFi hasta la procedencia de NFT, de manera organizada y eficiente.

En el panorama en constante evolución de la tecnología blockchain, los subgrafos han surgido como un concepto fundamental, transformando la forma en que interactuamos y utilizamos los datos de blockchain. Estas API abiertas actúan como intermediarios, cerrando sin problemas la brecha entre el mundo descentralizado de las cadenas de bloques y el ámbito familiar de los datos estructurados. Al extraer, procesar y organizar los datos de la cadena de bloques en un formato consultable, los subgrafos permiten a los desarrolladores crear aplicaciones innovadoras y basadas en datos.

Los subgrafos ofrecen una gran cantidad de beneficios, lo que los convierte en una opción atractiva tanto para los desarrolladores como para los usuarios. Su naturaleza descentralizada garantiza la resistencia a la censura y al tiempo de inactividad, fomentando un ecosistema de datos seguro y fiable. Además, los subgrafos son inherentemente escalables, capaces de manejar cantidades masivas de datos sin comprometer el rendimiento. La rentabilidad es otra ventaja clave, ya que los subgrafos suelen ser más asequibles que las API de datos tradicionales.

La arquitectura de subgrafos

Los subgrafos se componen de tres componentes esenciales que trabajan en armonía para ofrecer sus capacidades transformadoras:

  1. Manifiesto: el manifiesto sirve como modelo del subgrafo, describiendo sus orígenes de datos, esquema y código AssemblyScript. Define los límites de los datos que indexará el subgrafo, lo que garantiza que solo se capture la información relevante.

  2. Esquema: El esquema define la estructura de los datos, similar al plano de un edificio. Describe las entidades, los campos y las relaciones entre entidades, proporcionando una forma clara y organizada de representar los datos.

  3. Código AssemblyScript: Este código ejecutable actúa como el caballo de batalla del subgrafo, traduciendo los datos sin procesar de las cadenas de bloques a un formato que el motor GraphQL puede comprender. También se encarga de la indexación y el almacenamiento de datos, garantizando su accesibilidad y fiabilidad.

Proceso de desarrollo de subgrafos

La creación de un subgrafo implica una serie de pasos, cada uno cuidadosamente diseñado para garantizar la funcionalidad y eficacia del subgrafo:

  1. Conceptualización y diseño: El viaje comienza con una idea clara de los datos que se van a indexar y las aplicaciones que potenciarán. Esto implica definir las entidades, los campos y las relaciones entre ellos, asegurándose de que la estructura del subgrafo se alinee con su propósito previsto.

  2. Desarrollo de manifiestos y esquemas: El manifiesto y el esquema se elaboran meticulosamente, proporcionando la base para la arquitectura de datos del subgrafo. El manifiesto especifica las fuentes de datos, mientras que el esquema describe la estructura de datos, lo que garantiza la integridad y la coherencia de los datos.

  3. Implementación del código AssemblyScript: Se escribe el código AssemblyScript, traduciendo los datos brutos de la cadena de bloques a un formato que GraphQL pueda entender. Maneja la indexación, el almacenamiento y la recuperación de datos, lo que permite un acceso eficiente a los datos indexados.

Implementación y publicación de subgrafos

Una vez desarrollado el subgrafo, se somete a un proceso de despliegue que lo presenta al mundo:

  1. Integración de Subgraph Studio: Subgraph Studio sirve como una plataforma centralizada para administrar subgrafos. Facilita el proceso de implementación, permitiendo a los desarrolladores publicar sus subgrafos en la red descentralizada.

  2. Indexación y curación: Los indexadores, responsables de obtener y almacenar datos de blockchain, son esenciales para hacer que los subgrafos sean accesibles para los desarrolladores. La curaduría, que normalmente se realiza a través de tokens GRT, incentiva a los indexadores a priorizar los subgrafos con alta demanda.

  3. Consulta y utilización: los desarrolladores ahora pueden consultar el subgrafo implementado mediante consultas de GraphQL, recuperando datos específicos adaptados a las necesidades de su aplicación. Esta integración perfecta permite a los desarrolladores aprovechar los datos de blockchain para la innovación.

El futuro: la nueva era del grafo

A medida que The Graph se embarca en su Nueva Era (la exploraremos en la Lección 5), se espera con impaciencia la evolución continua de estas tecnologías centrales (subgrafos, Firehose y Substreams). Estos componentes están destinados a expandirse y evolucionar, desempeñando un papel vital en la introducción de nuevos servicios de datos y asegurando flujos de datos más rápidos y modulares. La manguera de incendios verificable, por ejemplo, está preparada para ser una solución innovadora para acceder a los datos históricos de Ethereum, abordando los desafíos de la evolución de los estándares de blockchain.

Diferenciar los subgrafos de los substreams

Es crucial distinguir entre subgrafos y subflujos, ya que sirven para diferentes propósitos. Los subgrafos son ideales para la recuperación y gestión de datos estándar, ya que ofrecen facilidad de configuración y uso con una capa de consulta de GraphQL. Por el contrario, los subflujos se adaptan a las necesidades de análisis y big data más complejas, ofreciendo un procesamiento de datos paralelizado y una mayor flexibilidad en el manejo y almacenamiento de datos. Los subflujos permiten a los desarrolladores transformar datos de formatos de archivo básicos en formas más utilizables, lo que satisface los sofisticados requisitos de procesamiento de datos.

Organización de datos fuera de la cadena: el enfoque y el impacto del gráfico en las canalizaciones de datos Web3

The Graph, tradicionalmente conocido por su destreza en la organización de datos on-chain, ahora está expandiendo sus horizontes aventurándose en el ámbito de los datos off-chain. Este enfoque se alinea con la misión a largo plazo de The Graph de proporcionar un fácil acceso al conocimiento y la información pública del mundo.

La Web3 y las ventajas y desventajas de la gestión de datos

En la arquitectura Web3, si bien los usuarios pueden interactuar directamente con la cadena de bloques a través de servicios de middleware, hay una compensación, especialmente cuando se trata de costos. Los costos de transacción en cadena, a menudo denominados tarifas de gas, pueden ser prohibitivamente altos para cálculos complejos o almacenamiento de datos extenso. Históricamente, esta limitación ha reducido la complejidad de las aplicaciones o ha llevado a los desarrolladores a crear API propietarias fuera de la cadena, alejándose de los modelos de código abierto.

La solución única de The Graph para datos fuera de la cadena

The Graph presenta una solución única a este desafío al permitir la organización y el servicio de datos fuera de la cadena a través de su red descentralizada. Este método implica un flujo de trabajo en el que los datos tradicionalmente fuera de la cadena se publican en IPFS (Sistema de archivos interplanetario) y los hashes IPFS se registran en la cadena. Posteriormente, estos datos pueden ser indexados por subgrafos y puestos a disposición para su consulta. Este enfoque ofrece una forma escalable y económica de publicar y servir datos complejos y dinámicos sin la sobrecarga de crear y mantener API propietarias.

El flujo de trabajo: un proceso de tres pasos

El flujo de trabajo consta de tres componentes clave:

  1. Trabajos cron para el cálculo y la publicación de datos: Un trabajo cron fuera de la cadena realiza cálculos complejos y publica los resultados en una fuente permaweb, como IPFS, indexable por The Graph. Este trabajo también genera una transacción en cadena para publicar el hash del archivo IPFS y los metadatos relevantes.

  2. Publicación de subgrafos para indexación: El siguiente paso consiste en publicar un subgrafo que indexe estos archivos IPFS en función de los hashes de archivo publicados en la cadena. Una vez que se publica el subgrafo, los indexadores de la red de The Graph pueden recogerlo y servirlo, lo que permite a los desarrolladores y usuarios de terceros consultar los datos.

  3. Acceso a datos robusto y confiable: Al aprovechar la red distribuida de indexadores de The Graph, el acceso a los datos sigue siendo sólido y confiable sin esfuerzo adicional por parte del editor de datos. Esta estructura descentralizada mejora significativamente la disponibilidad e integridad de los datos.

Implementación práctica y rentabilidad

Un ejemplo práctico en el ecosistema de The Graph es el oráculo desarrollado por Edge & Node para la publicación de métricas de coste de red y calidad de servicio. Este oráculo publica datos agregados en IPFS cada cinco minutos y registra el hash del archivo IPFS en la cadena Gnosis. A continuación, estos datos se indexan en un subgrafo, que puede ser consumido por las partes interesadas del protocolo. El costo asociado con este flujo de trabajo es sorprendentemente bajo, lo que lo convierte en una opción atractiva para los editores de datos.

Nuevas posibilidades con datos dinámicos

Este método de uso de The Graph para datos dinámicos abre nuevas y emocionantes posibilidades para los sitios permaweb, incluidos los back-ends lean para blogs, la curación algorítmica de contenido y los sistemas de monitoreo en tiempo real. Representa un cambio significativo en la forma en que se publican, indexan y acceden a los datos, promoviendo un ecosistema web3 más abierto y colaborativo.

Organización de datos fuera de la cadena: el enfoque innovador de The Graph

La expansión de The Graph hacia la gestión de datos fuera de la cadena abre nuevas vías en el ecosistema Web3, creando un puente entre los reinos de datos descentralizados y tradicionales. Esta iniciativa refleja la misión de The Graph de hacer accesible un espectro más amplio de información de manera descentralizada, abordando las limitaciones inherentes al almacenamiento y la computación de datos en cadena.

Equilibrio de las necesidades de datos dentro y fuera de la cadena

The Graph reconoce las compensaciones relacionadas con los costes del almacenamiento y la computación de datos en cadena en las arquitecturas Web3. Si bien la interacción directa con la cadena de bloques es sencilla, los cálculos complejos y el almacenamiento de datos a gran escala pueden resultar prohibitivamente costosos. Para eludir estas limitaciones, The Graph presenta un método que combina el almacenamiento de datos fuera de la cadena con la referencia de datos dentro de la cadena, conservando así el espíritu descentralizado y mejorando la funcionalidad.

La metodología del grafo para los datos fuera de la cadena

Este enfoque implica un flujo de trabajo de tres pasos:

  1. Computación fuera de la cadena y publicación de IPFS: Los cálculos complejos se realizan fuera de la cadena y los datos resultantes se publican en IPFS, una solución de almacenamiento descentralizada. Este paso garantiza que los datos, aunque estén fuera de la cadena, se almacenen de manera verificable y descentralizada.

  2. Vinculación en cadena a través de transacciones: Además de almacenar datos en IPFS, se realiza una transacción en cadena correspondiente para registrar el hash IPFS y otros metadatos relevantes. Este método ancla los datos fuera de la cadena a la cadena de bloques, proporcionando una capa de confianza y trazabilidad.

  3. Indexación de subgrafos para accesibilidad: El último paso consiste en indexar los datos almacenados en IPFS mediante subgrafos. Este proceso hace que los datos fuera de la cadena sean fácilmente consultables y accesibles a través de la red descentralizada de The Graph.
    Implementación práctica: Oracle de Edge y Node

Una aplicación práctica de esta metodología dentro del ecosistema de The Graph es el oráculo desarrollado por Edge & Node. Este oráculo publica métricas de costo de red y calidad de servicio cada cinco minutos de la siguiente manera:

  • Los datos agregados se publican en IPFS.

  • El hash del archivo IPFS correspondiente se registra en la cadena Gnosis a través de un contrato DataEdge.

  • Estos archivos IPFS se indexan en un subgrafo, lo que hace que los datos estén disponibles para las partes interesadas de manera descentralizada.
    Esta implementación demuestra el enfoque de bajo costo, escalable y eficiente para publicar y servir datos complejos sin la necesidad de API propietarias. Ejemplifica cómo se puede aprovechar el método de The Graph para crear fuentes de datos dinámicas para una variedad de aplicaciones.

Rentabilidad y escalabilidad

Los costos asociados con este flujo de trabajo son sorprendentemente bajos, lo que lo convierte en una solución atractiva para los editores de datos. Por ejemplo, la implementación de Oracle por parte de Edge & Node incurre en gastos mínimos para las transacciones en cadena y la fijación de nodos IPFS, y los costos de servicio corren a cargo del consumidor de datos. Este modelo reduce eficazmente la sobrecarga operativa para los publicadores de datos, al tiempo que garantiza un acceso a los datos sólido y fiable.

Habilitación de nuevos casos de uso de Web3

Este método abre nuevas posibilidades para las aplicaciones permaweb, como back-ends dinámicos para blogs, curación algorítmica de contenidos y sistemas de monitorización en tiempo real. Permite la partición de los publicadores de datos de los operadores de aplicaciones/front-end, lo que fomenta la especialización y la división del trabajo en una comunidad de código abierto. Este enfoque es prometedor para las aplicaciones y protocolos sociales descentralizados, ya que ofrece un nuevo camino a seguir para la publicación y el consumo de datos descentralizados.

Lenguaje de consulta y API en The Graph: Adopción de GraphQL

La integración de GraphQL como el lenguaje de consulta de elección. Esta decisión da forma significativamente a la forma en que se accede a los datos y se interactúa con ellos a través de las API de The Graph, proporcionando un método optimizado y eficiente para consultar los datos de la cadena de bloques.

Comprender el papel de GraphQL en The Graph

GraphQL se encuentra a la vanguardia del diseño moderno de API, ofreciendo un enfoque flexible y eficiente para la recuperación de datos. En el contexto de la cadena de bloques, donde las estructuras de datos son complejas y están en constante evolución, la capacidad de GraphQL para obtener exactamente lo que se necesita se vuelve invaluable.

  1. Consultas de datos personalizadas: En el centro del atractivo de GraphQL está su capacidad para permitir a los clientes definir con precisión la estructura de los datos que necesitan. Esta capacidad es una desviación significativa de las respuestas tradicionales de estructura fija, lo que permite una interacción de datos más enfocada y eficiente.

  2. Mejora de las interacciones en tiempo real: Más allá de las consultas, GraphQL en The Graph admite suscripciones de datos en tiempo real. Esta característica es vital para las aplicaciones de blockchain donde las actualizaciones oportunas y la capacidad de respuesta son clave para la experiencia del usuario.

  3. Acceso a datos descentralizado y sin confianza: El uso de GraphQL por parte de The Graph extiende su filosofía de descentralización al ámbito del acceso a los datos. Al interactuar con una red de nodos descentralizados, las consultas de GraphQL garantizan que los datos permanezcan abiertos, transparentes y resistentes a la censura.
    La convergencia de las APIs y GraphQL

En el ecosistema de The Graph, la fusión de las API con GraphQL crea un sistema armonioso y potente para la recuperación de datos:

  1. Definición de esquema y asignación de datos: los desarrolladores definen un esquema de GraphQL dentro de su subgrafo, describiendo la estructura de los datos consultables. Luego, el esquema se asigna intrincadamente a los eventos de la cadena de bloques, traduciendo las actividades en cadena en datos estructurados.

  2. Ejecución de consultas a través de indexadores: cuando una consulta de GraphQL se envía a una API de subgrafo, es procesada por la red descentralizada de indexadores de The Graph. Este proceso ejemplifica cómo se ejecutan las consultas de manera distribuida, defendiendo los principios de la tecnología blockchain.

  3. Manejo de relaciones de datos complejas: Dado que las relaciones de datos complejas son comunes en blockchain, la capacidad de GraphQL para manejar consultas intrincadas, incluidas varias formas de filtrado y clasificación de datos, es especialmente beneficiosa.

Los beneficios se despliegan para los desarrolladores y los usuarios finales

La integración de GraphQL en The Graph aporta numerosos beneficios:

  • Flexibilidad para desarrolladores: Los desarrolladores pueden aprovechar toda la potencia de GraphQL para crear consultas que se alineen con precisión con los requisitos de su aplicación.
  • Obtención eficiente de datos: La reducción de los tiempos de obtención de datos mejora el rendimiento de las aplicaciones, lo que se traduce directamente en una mejor experiencia para el usuario final.
  • Integración de datos sin fisuras: La naturaleza estandarizada de las consultas de GraphQL simplifica el proceso de integración de diversas fuentes de datos de blockchain en las aplicaciones.
Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.