Tiempo estimado: 6 minutos de lectura

The Graph constituye un protocolo descentralizado que posibilita a las DApps ejecutar consultas complejas sobre datos de la blockchain sin dependencia de servidores centralizados. Su ecosistema agrupa indexadores, curadores, delegadores y consumidores, todos incentivados mediante el token GRT.

¿Qué es la red descentralizada de The Graph?

La red descentralizada de The Graph es el ecosistema en que se desarrolla la actividad de los distintos actores que intervienen en el protocolo. Esta red permite que las aplicaciones descentralizadas (DApps) realicen consultas complejas de manera rápida y eficiente, sin tener que depender de servidores centralizados. Para lograrlo, el protocolo se basa en un ecosistema de participantes con roles específicos, incentivados por el token nativo de la red, GRT.

Los principales participantes son:

  • Indexadores: son los operadores de nodos de la red. Ponen en staking sus tokens GRT para poder procesar los datos definidos en los subgrafos. Compiten por ofrecer los mejores servicios de indexación y reciben recompensas en GRT por procesar las consultas de los consumidores.
  • Curadores: son miembros de la comunidad que identifican y señalan qué subgrafos son de alta calidad y deberían ser indexados por la red. Ponen en staking GRT en los subgrafos que consideran valiosos y, a cambio, reciben una parte de las tarifas de consulta generadas por esos subgrafos. Su función es clave para garantizar la calidad de los datos en el mercado.
  • Delegadores: son participantes que delegan (ponen en staking) sus tokens GRT a los indexadores que consideran fiables y eficientes. No necesitan ejecutar un nodo ellos mismos, pero contribuyen a la seguridad y el funcionamiento de la red. A cambio, reciben una porción de las recompensas ganadas por el indexador al que apoyan.
  • Consumidores: son los usuarios finales de la red, generalmente DApps y desarrolladores, que pagan tarifas de consulta en GRT a los indexadores para obtener los datos que necesitan de los subgrafos.

La relación entre los participantes de The Graph se gobierna de forma descentralizada mediante un conjunto de smart contracts desplegados en Arbitrum One.

Paso a producción de subgrafo

Partiendo de un subgrafo previamente desplegado en Subgraph Studio, la publicación en la red descentralizada únicamente requiere disponer de ETH en la red Arbitrum One.

Se recomienda revisar antes la corrección y exactitud de los metadatos definidos en el subgrafo, para evitar incurrir posteriormente en nuevos costes de gas en caso de quererlos modificar.

Poco después de la publicación, el subgrafo debería comenzar a ser indexado al menos por el indexador por defecto, el upgrade indexer. Se trata de una infraestructura proporcionada por el proyecto que da cobertura inmediata en el corto plazo a cualquier nuevo subgrafo publicado como paso previo a una estrategia de indexación descentralizada a largo plazo. Los subgrafos indexados únicamente por el upgrade indexer presentan las siguientes limitaciones de uso responsable:

  • 10GB como máximo de almacenamiento.
  • Uso de ancho de banda dentro de unos límites razonables.
  • No estar inactivos durante más de 14 días (sin indexar nuevos eventos)
  • No soportan Time Travel Queries (el subgrafo es purgado de forma automática).

A continuación un ejemplo de subgrafo visualizado en el Graph Explorer indexado tan solo por el upgrade indexer:

Upgrade Indexer

Endpoint de producción

Una vez publicado el subgrafo, se debe comenzar a usar la URL de producción para el acceso a sus datos, para así evitar las limitaciones vistas para el endpoint de desarrollo en mi primer artículo sobre el indexado de datos de la blockchain.

Como novedad, esta URL requiere el uso de un API-KEY que autorice la consulta sobre el subgrafo y permita facturar adecuadamente para generar los rendimientos a los participantes en la red. Actualmente para cada consumidor de datos están incluidas 100K peticiones al mes de forma gratuita, siendo necesario un plan de pago para superar la restricción (query fees).

Con objeto de proteger el uso lícito de las API-KEYs desde las DApps, se permiten fijar varios límites: máximo gasto mensual, lista de subgrafos autorizados a consultar y lista de dominios origen válidos.

Señalización del subgrafo

Es el mecanismo esencial para que un subgrafo atraiga a otros indexadores y den soporte en el largo plazo más allá del upgrade indexer, el indexador por defecto.

El proceso se podría resumir de esa forma:

  • Los curadores señalizan mediante tokens GRT un subgrafo determinado porque esperan conseguir beneficios, entre ellos un 10% de las query fees en función del porcentaje de tokens GRT puestos en juego.
  • Los indexadores prestan atención a los subgrafos señalizados para tener una idea de cuáles podrían ser más rentables, ya que también obtendrán beneficios directos tanto por las query fees como por las indexing rewards.

Se recomiendan 3.000 tokens GRT como señal mínima a aportar en un subgrafo nuevo, para atraer al menos un indexador. Desde Subgraph Studio es posible convertirse en el primer curador del subgrafo señalizándolo durante el proceso de la publicación.

Buenas prácticas en el diseño de un subgrafo

Con objeto de facilitar la labor de indexado y optimizar el tiempo de las consultas, se detallan varias estrategias englobadas en un catálogo de buenas prácticas.

Las más destacadas y fáciles de implementar serían el uso de entidades inmutables y la definición del identificador del subgrafo como Bytes.

Las entidades se definen como inmutables en el fichero "schema.graphql":


type IpfsMetadata @entity(immutable: true) {
  id: Bytes!   
  metaData: String!
}

De esta forma la entidad no podrá ser ni actualizada ni borrada. Además su identificador deberá ser único, puesto que no se admiten versiones. El identificador único por defecto creado en los archivos de mapeos es la concatenación del hash de la transacción en que se emite el evento (transactionHash) con el índice del evento dentro de la sección de log de la misma (logIndex).

Por otra parte para definir el identificador de las entidades como Bytes, hay que considerar las conversiones de tipos permitidas en AssemblyScript.

Conclusión: fiabilizando el acceso a los datos indexados

El uso de indexadores es fundamental para poder acceder a datos estructurados on-chain desde las DApps. En este contexto, la red descentralizada del protocolo The Graph es una alternativa robusta y fiable.

Al poner en juego un ecosistema descentralizado en que los distintos participantes comparten intereses a través de incentivos centrados en el token GRT, se fomenta dar estabilidad a una red de nodos independientes encargados de indexar los datos de la blockchain y poner a disposición de los consumidores los distintos subgrafos publicados.

Por otra parte la red va un paso más allá y habilita el acceso a otros tipos de datos para acomodar otros casos de uso:

  • Substreams: fuentes de datos de alto rendimiento para procesado en tiempo real. Útil para aplicaciones que requieran reflejar sin latencias el estado de la blockchain, por ejemplo para trading.
  • Token API: acceso instantáneo a datos normalizados de los tokens de la blockchain sin configuraciones previas.

En resumen, con The Graph el ecosistema web3 tiene a su disposición un mecanismo fiable para en el largo plazo disponer de fuentes de datos estables procedentes de la blockchain.


¿Has tomado parte de la red descentralizada de The Graph más allá del consumo de datos? ¿Conoces alguna otra red que complemente o compita con la propuesta de The Graph para el indexado de datos on-chain? Me encantaría conocer tus experiencias.

Si necesitas publicar un subgrafo para tu DApp, contáctame. Puedo aconsejarte sobre las mejores estrategias para optimizar tus resultados.