Video Summary and Transcription
Esta charla trata sobre la construcción de APIs GraphQL en la parte superior de Ethereum y la máquina virtual de Ethereum. El gráfico es un protocolo de indexación para consultar redes blockchain como Ethereum e IPFS. Los desarrolladores pueden construir APIs llamadas subgráficos para indexar eficientemente datos y ponerlos a disposición para consultar desde aplicaciones frontend. El gráfico atiende más de 1 mil millones de consultas al día y se utiliza en varias aplicaciones Web3, incluyendo DeFi, juegos y mercados de NFT. El proceso implica definir el modelo de datos utilizando el esquema GraphQL y las direcciones de contrato, implementar y probar el subgrafo, y utilizar un cliente GraphQL para consultar el subgrafo.
1. Introduction to Building GraphQL APIs on Ethereum
Hola, mi nombre es Nader Dabit. Hoy voy a hablar sobre cómo construir APIs de GraphQL en Ethereum y la máquina virtual de Ethereum. En la pila web tradicional, las bases de datos, los servidores y las APIs filtran, ordenan, paginan y unen datos antes de devolverlos a nuestras aplicaciones cliente. El gráfico es un protocolo de indexación para consultar redes blockchain como Ethereum e IPFS. Los desarrolladores pueden construir APIs llamadas subgrafos para indexar eficientemente datos y hacerlos disponibles para consultas desde aplicaciones frontend. El gráfico atiende más de mil millones de consultas al día y se utiliza en varias aplicaciones Web3, incluyendo DeFi, juegos y mercados de NFT.
Soy un ingeniero de relaciones con desarrolladores en Edge and Node. Y hoy voy a hablar sobre cómo construir APIs de GraphQL en Ethereum, pero también en la máquina virtual de Ethereum. Puedes pensar en la máquina virtual de Ethereum como el React del mundo de las blockchain. Aprendes esta habilidad y puedes construir no solo en la blockchain de Ethereum, sino en cualquier otra blockchain compatible con EVM, lo que significa una variedad de diferentes capas dos y cadenas laterales de Ethereum, así como otras blockchains completamente diferentes como Avalanche, Celo y muchas otras que existen. Dicho esto, vamos a empezar. La forma en que interactuamos y construimos sobre las blockchains es muy diferente a lo que estamos acostumbrados en la web tradicional. En una blockchain, los datos no se almacenan en un formato que pueda ser consumido de manera eficiente o fácil desde otras aplicaciones o interfaces. El problema es que necesitas tener los datos indexados y organizados para una recuperación eficiente. Tradicionalmente, ese trabajo se realiza en la pila tecnológica centralizada, pero esa capa de indexación faltaba en la pila de Web3. Así que en la pila web tradicional, las bases de datos, los servidores y las APIs filtran, ordenan, paginan, y unen datos antes de devolverlos a nuestras aplicaciones cliente, generalmente a través de algún tipo de solicitud HTTP. Y este tipo de transferencia de datos no es posible cuando se lee datos directamente desde Ethereum u otras blockchains. En el pasado, los desarrolladores y los equipos construían y operaban sus propios servidores de indexación propietarios. Pero esto requería recursos significativos de hardware e ingeniería, y también rompía los importantes principios de seguridad en torno a la descentralización. Así que alrededor del año 2018, se comenzó a construir el gráfico para resolver este problema. El gráfico es un protocolo de indexación para consultar redes blockchain como Ethereum e IPFS. Así que hablemos de cómo funciona el gráfico. Echemos un vistazo a un par de otros sistemas de indexación que podríamos estar usando en el mundo cotidiano al que ya estamos acostumbrados. Los motores de búsqueda como Google rastrean Internet, indexan datos relevantes y los ponen a disposición de los usuarios como nosotros para buscar a través de su interfaz web o sus APIs. Y sin esta capa de indexación, sería difícil saber dónde buscar y cómo encontrar información relevante en la web. Podríamos pensar en los motores de búsqueda que usamos a diario como una capa de indexación. Otra analogía similar es una biblioteca. Usando un sistema de indexación como el sistema decimal Dewey, sabemos exactamente dónde encontrar el libro que buscamos sin tener que buscar libro por libro en toda la biblioteca. Usando el gráfico, los desarrolladores pueden construir APIs llamadas subgrafos. Un subgrafo define cómo indexar eficientemente los datos de manera determinista y hacerlos disponibles para consultas desde aplicaciones frontend. Los subgrafos se encuentran entre la blockchain y la interfaz de usuario, proporcionando una parte importante de la infraestructura de software de una capa de API flexible, eficiente y descentralizada. Una vez que se implementa un subgrafo y se indexan los datos, las aplicaciones pueden comenzar a consultar los datos sin depender de ningún proveedor de servicios centralizado, y en su lugar pueden confiar en un mercado de consultas que está compuesto por una red descentralizada de indexadores, todos compitiendo por brindar el mejor servicio al mejor precio. En este momento, el gráfico atiende más de mil millones de consultas al día, y muchos tipos de aplicaciones en el mundo de Web3 lo están utilizando, incluyendo DeFi, juegos, mercados de NFT y algunos otros tipos de aplicaciones. Para comenzar, debes ir a thegraph.com y en la interfaz de usuario aquí, puedes definir el nombre del subgrafo, junto con cualquier otro metadato que desees que esté disponible para su búsqueda. Luego, usarías la herramienta de línea de comandos de código abierto de GraphCLI para crear un subgrafo localmente en el que luego puedes comenzar a construir.
2. Definición del modelo de datos y prueba de subgrafos
A continuación, define el modelo de datos utilizando el esquema de GraphQL y las direcciones de contrato. Implementa el subgrafo y pruébalo en el panel de control del gráfico. Utiliza un cliente de GraphQL para consultar el subgrafo como cualquier otra aplicación de GraphQL. Explora y prueba otras APIs en el Explorador de Gráficos. Prueba el subgrafo foundation que consulta el mercado de NFT foundation. Obtén metadatos utilizando la URI de contenido y la ruta de IPFS. Para obtener más información, visita graph.com/docs y github.com/dabit3/building-a-subgraph-workshop. Sigue a graph en Twitter en graph protocol y únete a Discord.
A continuación, definirías el modelo de datos, que es esencialmente el esquema de GraphQL, las direcciones de contrato que te gustaría tener indexadas y cualquier otra configuración que desees tener configurada localmente. El esquema de GraphQL se vería como cualquier otro esquema de GraphQL típico. La principal diferencia es que tenemos un par de directivas diferentes que te permiten interactuar con la red del gráfico, como entity y derived from, para crear relaciones entre diferentes tipos de datos.
Cuando estés listo para implementar tu subgrafo, puedes ejecutar graph deploy. Una vez que la implementación sea exitosa, deberías poder comenzar a probarlo directamente en el panel de control del gráfico. Aquí tenemos un editor gráfico y diferentes registros para cualquier error que pueda haber ocurrido al implementar tu subgrafo. Y cuando estés listo para hacer consultas, simplemente puedes hacer consultas como lo harías desde cualquier otra aplicación típica. Puedes utilizar un cliente de GraphQL como Apollo, o Oracle te proporcionará el punto final de GraphQL desde el panel de control del gráfico. Y luego puedes ejecutar cualquier tipo de consulta que desees. Todo debería funcionar como cualquier otra aplicación de GraphQL con la que probablemente hayas interactuado en el pasado.
Entonces, dicho esto, vamos a ir a graph.com y ver cómo se ve esto. Aquí estamos en el Explorador de Gráficos y puedes ver que podemos ver todas las diferentes APIs que otras personas han implementado. Estas son completamente abiertas y públicas. Si queremos ver una, podemos hacer clic en una. Y podemos ver que podemos probarla. Podemos ejecutar diferentes consultas aquí en el playground. Podemos ver la introspección gráfica del gráfico aquí. Por lo tanto, cualquier cosa que desees saber sobre un subgrafo debería estar disponible aquí. Pero vamos a probar uno. Voy a ir aquí a buscar y voy a encontrar el subgrafo foundation, que es algo que he creado un par de veces. Y aquí podemos probar esto. Este es un subgrafo que consulta el mercado de NFT foundation. Y vamos a ejecutar una consulta aquí. Podemos ver que tenemos todos estos datos que regresan. Tenemos esta URI de contenido. Esto será algo que podemos obtener y usar para encontrar todos los diferentes metadatos de un NFT. Aquí tenemos la ruta de IPFS. Podemos probar esto yendo a IPFS.io/ipfs. Y aquí vemos que los datos realmente están regresando. Si deseas obtener más información, si deseas construir un subgrafo tú mismo, te recomendaría que consultes graph.com/docs. También puedes consultar este taller que he creado en github.com/dabit3/building-a-subgraph-workshop. Y si deseas obtener más información sobre el gráfico, sigue a graph en Twitter en graph protocol, visita graph.com, los documentos del gráfico o únete a nuestro Discord. Eso es todo. Gracias por ver mi charla. Espero que disfrutes el resto de GraphQL Galaxy.
Comments