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.

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
Todos amamos GraphQL, pero puede ser desalentador poner en marcha un servidor y mantener tu código organizado, mantenible y testeable a largo plazo. ¡No más! Ven a ver cómo paso de un directorio vacío a una API GraphQL completamente desarrollada en cuestión de minutos. Además, verás lo fácil que es usar y crear directivas para limpiar aún más tu código. ¡Vas a amar aún más GraphQL una vez que hagas las cosas Redwood Easy!
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
¿Cuántas veces has implementado el mismo flujo en tu aplicación: verificar si los datos ya se han obtenido del servidor, si es así - renderizar los datos, si no - obtener estos datos y luego renderizarlos? Creo que lo he hecho más de diez veces yo mismo y he visto la pregunta sobre este flujo más de cincuenta veces. Desafortunadamente, nuestra biblioteca de gestión de estado predeterminada, Vuex, no proporciona ninguna solución para esto.Para la aplicación basada en GraphQL, había una alternativa para usar el cliente Apollo que proporcionaba herramientas para trabajar con la caché. Pero, ¿qué pasa si usas REST? Afortunadamente, ahora tenemos una alternativa de Vue a una biblioteca de react-query que proporciona una buena solución para trabajar con la caché del servidor. En esta charla, explicaré la distinción entre el estado de la aplicación local y la caché del servidor local y haré algo de codificación en vivo para mostrar cómo trabajar con este último.
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
¿Sabías que podemos reemplazar los esquemas de API con una biblioteca liviana y segura? Con tRPC, puedes reemplazar fácilmente GraphQL o REST con formas inferidas sin esquemas ni generación de código. En esta charla, entenderemos los beneficios de tRPC y cómo aplicarlo en una aplicación de NextJs. Si quieres reducir la complejidad de tu proyecto, no te puedes perder esta charla.
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
El Guild ha lanzado recientemente Envelop - un nuevo y moderno Framework de Servidor GraphQL y sistema de plugins. En esta charla compartiré una breve descripción de Envelop y por qué probablemente deberías actualizar tu servidor GraphQL existente a él.
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
En esta charla, veremos algunas de las opciones modernas para construir una aplicación full-stack de React y GraphQL con convenciones sólidas y cómo esto puede ser de enorme beneficio para ti y tu equipo. Nos enfocaremos específicamente en RedwoodJS, un framework full stack de React que a menudo se llama 'Ruby on Rails para React'.

Workshops on related topic

Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 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
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
React Advanced Conference 2022React Advanced Conference 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.
Modelado de Bases de Datos Relacionales para GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Modelado de Bases de Datos Relacionales para GraphQL
Top Content
WorkshopFree
Adron Hall
Adron Hall
En esta masterclass profundizaremos en el modelado de datos. Comenzaremos con una discusión sobre varios tipos de bases de datos y cómo se mapean a GraphQL. Una vez que se haya establecido esa base, el enfoque se desplazará a tipos específicos de bases de datos y cómo construir modelos de datos que funcionen mejor para GraphQL en varios escenarios.
Índice de contenidosParte 1 - Hora 1      a. Modelado de Datos de Bases de Datos Relacionales      b. Comparando Bases de Datos Relacionales y NoSQL      c. GraphQL con la Base de Datos en menteParte 2 - Hora 2      a. Diseño de Modelos de Datos Relacionales      b. Relación, Construcción de Tablas Multijoin      c. Complejidades de Consulta de Modelado de Datos Relacionales y GraphQL
Prerrequisitos      a. Herramienta de modelado de datos. El formador utilizará dbdiagram      b. Postgres, aunque no es necesario instalar esto localmente, ya que estaré utilizando una imagen de Dicker de Postgres, de Docker Hub para todos los ejemplos      c. Hasura