Construyendo APIs GraphQL en Ethereum

Rate this content
Bookmark

Las blockchains son bases de datos con un conjunto único de propiedades. A diferencia de la mayoría de las bases de datos que están optimizadas tanto para operaciones de lectura como de escritura, las blockchains están optimizadas para operaciones de escritura, generalmente enfocadas en optimizar y escalar el costo de transacción, el volumen de transacción y la velocidad de transacción.


En esta charla, profundizaré en el espacio web3 y mostraré cómo los desarrolladores pueden aprovechar el Protocolo de Graph para construir APIs y dapps GraphQL eficientes, escalables y descentralizadas en redes descentralizadas como Ethereum e IPS.

This talk has been presented at GraphQL Galaxy 2021, check out the latest edition of this Tech Conference.

FAQ

La máquina virtual de Ethereum (EVM) es similar al React en el mundo de las blockchains. Aprender a trabajar con EVM permite construir no solo en la blockchain de Ethereum, sino también en otras blockchains compatibles con EVM como Avalanche y Celo, abarcando diversas capas dos y cadenas laterales.

El Gráfico es un protocolo de indexación diseñado para resolver el problema de la falta de una capa de indexación eficiente en la pila de Web3, facilitando la consulta de datos desde blockchains como Ethereum e IPFS de manera descentralizada y sin depender de servidores de indexación propietarios.

Los desarrolladores pueden construir APIs mediante subgrafos en El Gráfico, que definen cómo indexar los datos de manera determinista para hacerlos accesibles para consultas desde aplicaciones frontend, actuando como una parte crucial de la infraestructura software de una capa de API flexible y eficiente.

Para comenzar a crear un subgrafo, debes visitar thegraph.com, definir el nombre y metadatos del subgrafo, y utilizar GraphCLI para configurar localmente el modelo de datos y las direcciones de contrato que desees indexar. Luego, puedes implementar tu subgrafo usando el comando 'graph deploy'.

Una vez implementado el subgrafo, puedes realizar consultas utilizando clientes de GraphQL como Apollo, o directamente desde el panel de control del gráfico, donde se proporciona el punto final de GraphQL. Esto permite interactuar con el subgrafo como con cualquier otra aplicación de GraphQL.

Puedes encontrar recursos adicionales en graph.com/docs y en el taller en github.com/dabit3/building-a-subgraph-workshop. Estos recursos ofrecen guías detalladas y ejemplos prácticos para aprender a construir y operar subgrafos.

El Gráfico está siendo utilizado por una variedad de aplicaciones en el mundo de Web3, incluyendo plataformas de DeFi, juegos, mercados de NFT, entre otros, manejando más de mil millones de consultas al día.

Nader Dabit
Nader Dabit
8 min
10 Dec, 2021

Comments

Sign in or register to post your comment.
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.
Available in English: Building GraphQL APIs on Ethereum

1. Introduction to Building GraphQL APIs on Ethereum

Short description:

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

Short description:

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.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.
Despídete de tus esquemas de API con tRPC
React Day Berlin 2022React Day Berlin 2022
29 min
Despídete de tus esquemas de API con tRPC
Today's Talk introduces TRPC, a library that eliminates the need for code generation and provides type safety and better collaboration between front-end and back-end. TRPC is demonstrated in a Next JS application integrated with Prisma, allowing for easy implementation and interaction with the database. The library allows for seamless usage in the client, with automatic procedure renaming and the ability to call methods without generating types. TRPC's client-server interaction is based on HTTP requests and allows for easy debugging and tracing. The library also provides runtime type check and validation using Zod.
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
GraphQL Galaxy 2021GraphQL Galaxy 2021
33 min
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
Envelope is a powerful GraphQL plugin system that simplifies server development and allows for powerful plugin integration. It provides conformity for large corporations with multiple GraphQL servers and can be used with various frameworks. Envelope acts as the Babel of GraphQL, allowing the use of non-spec features. The Guild offers GraphQL Hive, a service similar to Apollo Studio, and encourages collaboration with other frameworks and languages.
Aplicaciones sólidas de React y GraphQL para personas con prisa
GraphQL Galaxy 2022GraphQL Galaxy 2022
29 min
Aplicaciones sólidas de React y GraphQL para personas con prisa
The Talk discusses the challenges and advancements in using GraphQL and React together. It introduces RedwoodJS, a framework that simplifies frontend-backend integration and provides features like code generation, scaffolding, and authentication. The Talk demonstrates how to set up a Redwood project, generate layouts and models, and perform CRUD operations. Redwood automates many GraphQL parts and provides an easy way for developers to get started with GraphQL. It also highlights the benefits of Redwood and suggests checking out RedwoodJS.com for more information.
Juegos Web 3: Qué es y por qué es importante
JS GameDev Summit 2022JS GameDev Summit 2022
36 min
Juegos Web 3: Qué es y por qué es importante
Web3 gaming enables decentralized identity and finance, allowing game developers to bypass centralized platforms. It is driven by wallets, ERC20 tokens, and NFTs. Web3 games focus on collaborative world-building, ownership, and open-source collaboration. The challenge is achieving decentralization while addressing economic and technological limitations. Web3 aims to redefine the gaming industry by using economic tools and exploring new genres like RPG and RTS games.

Workshops on related topic

Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced 2021React Advanced 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Featured WorkshopFree
Scott Spence
Scott Spence
¿Alguna vez has pensado en construir algo que no requiera mucho código de plantilla con un tamaño de paquete pequeño? En esta masterclass, Scott Spence irá desde el hola mundo hasta cubrir el enrutamiento y el uso de endpoints en SvelteKit. Configurarás una API de GraphQL en el backend y luego usarás consultas de GraphQL con SvelteKit para mostrar los datos de la API de GraphQL. Construirás un proyecto rápido y seguro que utiliza las características de SvelteKit, y luego lo desplegarás como un sitio completamente estático. Este curso es para los curiosos de Svelte que no han tenido una experiencia extensa con SvelteKit y quieren una comprensión más profunda de cómo usarlo en aplicaciones prácticas.

Tabla de contenidos:
- Inicio e introducción a Svelte
- Inicializar el proyecto frontend
- Recorrido por el proyecto esqueleto de SvelteKit
- Configurar el proyecto backend
- Consultar datos con GraphQL
- Recuperación de datos en el frontend con GraphQL
- Estilización
- Directivas de Svelte
- Enrutamiento en SvelteKit
- Endpoints en SvelteKit
- Despliegue en Netlify
- Navegación
- Mutaciones en GraphCMS
- Envío de mutaciones GraphQL a través de SvelteKit
- Preguntas y respuestas
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
React Advanced 2022React Advanced 2022
95 min
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
Featured WorkshopFree
Sabin Adams
Sabin Adams
En este masterclass, obtendrás una visión de primera mano de lo que es la seguridad de tipo de extremo a extremo y por qué es importante. Para lograr esto, construirás una API de GraphQL utilizando herramientas modernas y relevantes que serán consumidas por un cliente de React.
Prerrequisitos: - Node.js instalado en tu máquina (12.2.X / 14.X)- Se recomienda (pero no es obligatorio) utilizar VS Code para las tareas prácticas- Un IDE instalado (se recomienda VSCode)- (Bueno tener) *Un conocimiento básico de Node.js, React y TypeScript
GraphQL para Desarrolladores de React
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL para Desarrolladores de React
Featured Workshop
Roy Derks
Roy Derks
Hay muchas ventajas en utilizar GraphQL como fuente de datos para el desarrollo frontend, en comparación con las API REST. Nosotros, los desarrolladores, por ejemplo, necesitamos escribir mucho código imperativo para recuperar datos y mostrarlos en nuestras aplicaciones y manejar el estado. Con GraphQL, no solo puedes reducir la cantidad de código necesario para la obtención de datos y la gestión del estado, sino que también obtendrás una mayor flexibilidad, mejor rendimiento y, sobre todo, una mejor experiencia de desarrollo. En este masterclass aprenderás cómo GraphQL puede mejorar tu trabajo como desarrollador frontend y cómo manejar GraphQL en tu aplicación frontend de React.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.