¿Qué es The Graph (GRT)?
El protocolo descentralizado The Graph, es un protocolo construido sobre tecnología blockchain que tiene la finalidad de servir de indexador de datos sobre otras cadenas de bloques. Esto con el objeto de construir una base de datos descentralizada que optimice el acceso a la información contenida en dichas blockchain. De esta manera, otros proyectos que necesiten de dicha información en un momento dado pueden acceder a la información requerida de una forma mucho más eficiente y rápida.
Para lograr esto, The Graph ha construido toda una infraestructura apoyada sobre dos destacables tecnologías: Ethereum (ETH) e IPFS. La primera permite crear una red de nodos interoperables a los que se asocian transacciones de información junto con un token nativo para la plataforma. Mientras que la segunda, posibilita la creación de una red de nodos para almacenar información de forma descentralizada, segura y a gran velocidad. De esta manera, The Graph abre a los desarrolladores de dApps el acceso a una plataforma que agiliza sus peticiones de información y les ayuda a desarrollar un sistema de interacción cross-chain de forma muy fácil.
Historia de The Graph
La historia de The Graph comenzó en 2017 cuando Yaniv Tal, cofundador y director general del proyecto, desarrolló un protocolo de indexación de datos orientado a facilitar el acceso a los datos de blockchain. Tras tres años de trabajo, The Graph se convirtió en una realidad con el lanzamiento de su mainnet en diciembre de 2020.
Desde entonces, The Graph se ha transformado en el pilar informativo de proyectos blockchain de la envergadura de AAVE, Uniswap, Synthetix, Aragon, Decentraland, Mintbase, Gnosis, PoolTogether, DODO, UMA, Audious, Enzyme, entre otros. Además de contar con más de 160 indexadores y casi 7.500 delegadores, The Graph es un proyecto con gran potencial, algo que se puede constatar con su volúmen de peticiones: más 1.500 millones de consultas al día durante 2021.
¿Cómo funciona The Graph?
The Graph está construido sobre una red de nodos propia vinculada estrechamente con la red Ethereum. La idea a grandes rasgos es simple: disponer de nodos que funcionan como recolectores de información de distintas blockchains. Esta información almacenada luego puede ser accedida por medio de una API que permite a los desarrolladores de dApps obtener los datos que requieren de una forma más eficiente.
Este tipo de redes no son raras en el mundo blockchain, de hecho, proyectos como ChainLink hacen algo muy parecido, sólo que en lugar de indexar información de otras blockchain, ChainLink lo hace a través de servicios que no están conectados al mundo blockchain, además de que dicha información no es tan detallada. En todo caso, el funcionamiento base de la red The Graph y ChainLink es similar: ambas son redes que acceden, procesan, almacenan y sirven información de servicios externos para terceros.
En este caso, The Graph cuenta con una red bastante amplia, con más de 160 nodos indexadores (diciembre de 2021), más de 7.400 delegadores y más de 2.200 curadores. Toda esta red permite a The Graph realizar su trabajo como se espera, y desplegar todos los servicios para los que ha sido creada. Ahora bien ¿Qué es lo que hacen cada uno de estos nodos? ¿Cuál es su papel y qué otras funciones existen dentro de The Graph?
Nodos dentro de The Graph
Como toda red blockchain descentralizada, The Graph cuenta con una serie de nodos públicos que se encargan de hacer distintos trabajos, a saber:
Indexadores
Los nodos indexadores forman parte esencial en el funcionamiento de The Graph. El trabajo de estos nodos es mantener un staking de Graph Tokens (GRT) y proporcionar el servicio más importante de la red: la indexación y el procesamiento de las consultas realizadas en la red.
Cada nodo indexador tiene la tarea de participar en uno o más subgrafos dentro de The Graph. Estos “subgrafos” en realidad son el espacio para indexar y organizar la información de una determinada blockchain. De esta manera, los indexadores prestan poder computacional para procesar toda esta información y mantener una base de datos de acceso rápido para ofrecer respuestas a los usuarios de la red. El hecho de realizar un staking permite a los tenedores de nodos indexadores ganar recompensas por su trabajo.
Sin embargo, hay un punto importante en esto, y es que las recompensas GRT son bloqueadas por un periodo de tiempo dentro de la red. La razón para ello es la de evitar que nodos indexadores se conecten y desconecten buscando obtener ventajas en el proceso de indexación.
Curadores
Los curadores son quienes clasifican qué subgrafos son de alta calidad y, a partir de allí, crean un árbol de prioridad, que los indexadores siguen para realizar su trabajo. Es decir, su principal función es la de señalar qué subgrafos merecen ser indexados dentro de la red por los indexadores. Esta clasificación se realiza tomando en cuenta una serie de criterios como la relevancia de la blockchain, tokens y peticiones de consultas dentro de la red para un subgrafo específico.
La puesta en marcha de un nodo curador requiere de un staking dentro de la red para poder realizar dicho trabajo.
Delegadores
Los delegadores en realidad no son nodos dentro de la red, sino más bien personas que han decidido delegar su participación en los indexadores para contribuir a la seguridad de la red sin tener que gestionar ellos mismos un nodo. Es decir, un delegador es un tenedor de tokens GRT que inyecta liquidez a un indexador para permitirle una mayor cuota de poder dentro de la red.
Funcionamiento de los Nodos en The Graph
Ya que conocemos a los participantes en la red, es hora de conocer cómo trabajan estos para lograr que The Graph cumpla su cometido. Para lograr esto, el proyecto ha usado tecnologías muy conocidas en el mundo del desarrollo, como lo son PostgreSQL (una base de datos), GraphQL (un lenguaje para querys y consulta de datos para API) e IPFS. Así nos queda la siguiente topología de la red:
- Indexadores: que son los nodos de la red y que usan Proof of Stake para mantener un funcionamiento seguro de la red.
- Curadores: que son nodos secundarios, que usan Proof of Stake para analizar los subgrafos y su calidad, para luego asignar su prioridad de indexación.
- Delegadores: personas que usan la red para inyectar liquidez y evitar que terceros puedan atacarla.
Inicio del trabajo
El trabajo comienza con los curadores que, aunque son secundarios, tienen la tarea de analizar qué subgrafos son realmente útiles para la red. Una vez que los curadores han decidido que un subgrafo es valioso, marcan el mismo para que sea indexado.
Allí es donde empieza el trabajo de los nodos indexadores. El software en estos nodos habilita una base de datos (centralizada en el indexador) mediante PostgreSQL. La idea de esta base de datos es acelerar (hacer de cache) para acceder a la información indexada de una manera mucho más eficiente y diversa que realizar una búsqueda on-chain. Esto no significa en ningún caso, que The Graph es centralizado, solo que usa un medio para lograr un cometido, y es algo que se usa mucho en blockchain. Por ejemplo, un explorador de bloques en realidad no realiza búsquedas on-chain, sino que lo hace en una base de datos cuyos datos han sido obtenidos de la blockchain. Esto permite que puedas buscar transacciones por número de bloque, hash, TXID, dirección e incluso, por contenido de la transacción.
Los indexadores clasifican esta información y la agregan a su base de datos. Y, en caso de que esa data sea excesiva, costosa de mantener por medios propios o simplemente se quiera un acceso más global y sin censura, se replica toda la base datos por medio de IPFS. En todo caso, los indexadores han analizado la información del subgrafo y están listos para recibir consultas y responderlas rápidamente. Como los indexadores dependen del staking para su trabajo, los delegadores pueden inyectar más liquidez a determinados indexadores buscando ganancias por el capital inyectado. En todo caso, la unión de indexadores y delegadores busca una cosa: fortalecer la seguridad de la Proof of Stake que hace funcionar The Graph.
Respuestas a las consultas de datos
Con la red en funcionamiento, un usuario o desarrollador puede utilizar la API de The Graph para realizar consultas para su aplicación. Por ejemplo, el desarrollador crea una dApp que almacena datos sobre Ethereum. Dicha dApp interactúa con la red y sus usuarios por medio de transacciones y eventos. Y todo ello se traduce en información que es almacenada en la blockchain de Ethereum.
Toda esa información almacenada en Ethereum luego es procesada por la red The Graph. Esto se debe a que existe un subgrafo en la red que requiere el almacenamiento de la información de la dApp de ese desarrollador. Al tomar la información requerida, los nodos The Graph la colocan en su base de datos, lista para una respuesta rápida. Así, cuando la dApp requiere de una información indexada, en lugar de hacer una petición (query) a la red Ethereum, la realizan a la red The Graph. Dicha query se realiza mediante el uso del lenguaje GraphQL. De esta forma, los nodos indexadores reciben la petición de información, realizan la búsqueda en su base de datos (PostgreSQL) y envían una respuesta a la dApp. Finalmente, la dApp despliega los datos solicitados al usuario y se termina el ciclo de funcionamiento.
Te preguntarás ¿Por qué no hacer la petición directamente a Ethereum? La respuesta es que resulta costoso, complejo de implementar y muy lento. Por ejemplo, realizar la búsqueda de información de una transacción en Ethereum (directamente on-chain) requiere que se haga bloque a bloque, transacción por transacción. Por esta razón, los exploradores de bloques (y The Graph) toman el atajo de utilizar una base de datos (como MySQL, MariaDB o PostgeSQL) ya que la velocidad de estas soluciones es superior.
Además, el coste de una operación sobre Ethereum (en términos de gas) es mucho mayor que sobre The Graph. De allí, que este proyecto se presente como una solución mucho más óptima para este tipo de soluciones.