Consulta de datos de blockchain con GraphQL

Rate this content
Bookmark

¿Curioso acerca de cómo funcionan los datos en el mundo de la blockchain? Únete a Simon en una sesión interesante sobre The Graph, el protocolo de indexación descentralizado que facilita a los desarrolladores de blockchain buscar y consultar datos de blockchain.


Tabla de contenidos:

- Comprendiendo los datos de blockchain

- Anatomía de un contrato inteligente

- Indexando datos de blockchain con The Graph

- Accediendo a datos en The Graph

- Subgrafos recomendados

- Resumen de la escritura de subgrafos

64 min
29 May, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Simon introduce los conceptos básicos de la blockchain y los contratos inteligentes, incluyendo la descentralización y la inmutabilidad. The Graph es un protocolo de indexación que sirve como capa de datos de la web tres, proporcionando una solución a los desafíos con los datos de blockchain. El ejemplo de CryptoPunk demuestra el uso de subgrafos como una base de datos para protocolos específicos. Se destaca la importancia de la precisión de los datos y la confianza en la blockchain. El modelo de negocio de The Graph se basa en tarifas de consulta y permite una fácil consulta y recuperación de NFTs.

Available in English

1. Introducción a Blockchain y Smart Contracts

Short description:

Simon se presenta como ingeniero de relaciones con desarrolladores en ActionNode y habla sobre los conceptos básicos de blockchain, incluyendo la descentralización y el concepto de blockchain como una lista ordenada de transacciones. Explica la inmutabilidad de los bloques y el papel de los smart contracts en Ethereum. Simon también menciona la idea de utilizar blockchain para el almacenamiento de datos y la importancia de las reglas para mantener la seguridad y propiedad de activos como los NFTs.

Muchas gracias. Estoy muy emocionado de darle la bienvenida a Simon para hablar sobre React. Bienvenidos al Masterclass. Comenzaremos.

Sí, hola. Mi nombre es Simon. Soy ingeniero de relaciones con desarrolladores en ActionNode. Esta es una de las compañías, las llamamos desarrolladores principales, que están trabajando en el gráfico. Como discutimos juntos, cómo blockchain, o cómo se almacenan los datos en el blockchain, y cómo podemos crear, comenzamos a un nivel muy alto y profundizamos en las cosas reales. Quiero decir, como todo el datos en el blockchain es un gran dominio que probablemente podría ser un día de taller. Comencemos aquí, y luego podemos seguir con preguntas dependiendo de a dónde quieran ir. Y como dije, siéntanse libres de interrumpirme en cualquier momento para profundizar en un tema.

Entonces, ¿qué es un blockchain? Hay toda esta palabra de moda en el espacio de blockchain. Lo llamamos el espacio Web 3 que habla sobre la descentralización. Y un blockchain, cuando lo vemos desde ese ángulo, es como un sistema descentralizado geográficamente. Entonces, como el blockchain se copia como miles de veces, dependiendo de cuál. Estamos un poco enfocados en Ethereum. Entonces hay muchos, creo, varios miles de validadores de Ethereum en este momento. Y copian todo el blockchain. Entonces está distribuido geográficamente. Además, estos validadores son independientes. Entonces también es descentralizado jurídicamente. Pero lógicamente, el blockchain se siente como una sola cosa. Como que hay un blockchain con el que interactuamos y el detalle de que el blockchain se copia alrededor del mundo, generalmente como usuario, realmente no sentimos esto, ¿verdad? Para llegar a eso. Y el blockchain es en última instancia, solo una lista ordenada de transacciones. Entonces, cada participante puede enviar una transacción al blockchain y los validadores la incluirán en una lista ordenada. Y luego, un bloque consiste en múltiples transacciones. Y el bloque, decimos que está finalizado y agregado a la cadena por los validadores y así sucesivamente. E indefinidamente crea estos bloques y también una característica muy importante del blockchain es que los bloques también son inmutables. Una vez que un bloque se incluye en el blockchain, se queda allí para siempre. Eso es genial porque lo hace un sistema a prueba de manipulaciones. Entonces, un bloque antiguo nunca se puede cambiar como que es criptográficamente casi imposible. Y por eso también funciona bien como una base de datos para transacciones financieras o cuando trabajamos con valor, entonces se preserva. Entonces, por eso la gente confía en él. Sí, eso es el blockchain. Eso es cierto tanto para Bitcoin como para Ethereum. Lo que es diferente con Ethereum y Bitcoin es que también tienes smart contracts. Y el smart contract es básicamente en un nivel bajo, también es solo una transacción. Entonces, cuando despliego un smart contract en Ethereum, también es solo una transacción que se envía al blockchain y se almacena allí en el bloque. Pero en un smart contract, lo que puede hacer un smart contract, es que puede almacenar datos y puede... Y puedo codificar o podemos codificar X como reglas sobre cómo cambiar esos datos. Y estos dos elementos básicos conducen a muchas cosas geniales. Y ahora, cuando alguien más quiere interactuar con ese contrato, entonces digamos que mi ejemplo principal siempre son los NFTs, son fáciles de entender. Entonces, cuando alguien quiere enviar un NFT, nuevamente, como una transacción que se envía al blockchain, que básicamente es como llamar a una función en ese smart contract, autenticado como el usuario. Así es como funciona. Tenemos bloques de blockchain, transacciones, todo es una transacción, el despliegue de un contrato es una transacción, interactuar con el contrato de la manera correcta es una transacción, y estos son los fundamentos. Como dije, un contrato en el blockchain, generalmente podemos pensar en él como un simple almacenamiento de datos. En realidad, son solo variables. Pero una característica del blockchain es que, cuando tenemos un nodo de blockchain y preguntamos por el estado del smart contract, el nodo de blockchain siempre conoce el estado actual, por ejemplo, cuando miramos los CryptoPunks, por ejemplo, estos NFTs elegantes, punks pixelados que son súper caros, entonces vemos algo como, sí, qué ID es propiedad de qué propietario y dónde se almacenan los metadatos. Pero un problema con esos datos también es, y luego obviamente tenemos reglas, por lo que solo el propietario puede enviar el NFT, lo que lo hace realmente seguro o propiedad, por así decirlo, si cualquiera puede simplemente cambiarlo, eso sería un poco estúpido.

2. Desafíos con los Datos de Blockchain

Short description:

Los datos de blockchain presentan desafíos en términos de accesibilidad del estado histórico, procedencia e incentivación. Acceder a datos históricos es difícil debido a la gran capacidad de almacenamiento y la necesidad de descomprimir los datos. La falta de incentivación para leer desde el blockchain y la dependencia de proveedores de nodos de terceros complican aún más el acceso a los datos. Además, el ordenamiento de los datos y la naturaleza de bajo nivel de la interfaz JSON-RPC plantean desafíos para la extracción de datos. Estos problemas resultan en tiempos de carga lentos y la necesidad de protocolos mejorados. The Graph ofrece una solución a estos desafíos.

Pero lo que no vemos es quién lo poseía antes, por lo que el estado histórico no está bien, quiero decir, está ahí, pero no es fácilmente accesible. Pero sabemos que hay algunas transacciones en el blockchain que cambiaron el estado, pero para calcular el estado anterior, ¿cómo era? Sé, hace tres meses, básicamente tendríamos que volver a hacer todas esas transacciones de manera opuesta. Entonces, el blockchain es un sistema de eventos similar a Redux, si probablemente conoces Redux. Ahora ya no es tan genial, pero sí.

Genial, sí, y ya toqué un poco el problema de la llamada procedencia, especialmente para los NFT, la procedencia en realidad es un término que proviene del arte y en el arte, la procedencia significa cuando compro, no sé, una imagen muy cara o una pintura que quiero colgar en mi villa que no tengo. Luego quiero saber quién la poseía antes y también si es auténtica, si es la correcta. Entonces, cuando veo que era propiedad de esta galería o de ese famoso coleccionista, sí, las posibilidades de que no sea falsa son altas. Y en el blockchain, sí, la procedencia se registra, pero es difícil obtenerla. Entonces, lo que realmente no tenemos es esta máquina del tiempo. Entonces, quiero decir, teóricamente los data están ahí, pero necesitas entender que el blockchain de Ethereum, por ejemplo, cuando ejecutamos un nodo de archivo completo que tiene todos los bloques almacenados desde que Ethereum comenzó, terminamos con una capacidad de almacenamiento de aproximadamente tres terabytes actualmente. Pero eso incluso está muy comprimido. Entonces, para acceder a esos data, necesitamos descomprimir y demás, lo que lo hace lento. Además, sí, puedes pensar, siempre se producen nuevos bloques, por lo que eso probablemente no desaparece, ¿verdad? Siempre tenemos que pensar dónde almacenar esos data y cómo acceder a esos data. Y luego, para obtener realmente la vista histórica, se vuelve un poco difícil. Entonces, ese es uno de los problemas que vemos con los data del blockchain.

El otro problema es en realidad el problema de la incentivación. Entonces, lo cual está relacionado con el otro, tenemos esta idea, o especialmente en los primeros días de estas aplicaciones completamente descentralizadas. Eso significa que tenemos un front-end que podemos distribuir el código. Quiero decir, básicamente es HTML, JavaScript y CSS, podemos distribuirlo como queramos. Profess es una de estas tecnologías que funciona de manera muy similar a BitTorrent. Y luego, la idea era que todos ejecuten un nodo de blockchain en su computadora, y luego el front-end interactúa directamente con el nodo del blockchain. Este es el mal sueño de los investigadores del blockchain es esta cosa completamente descentralizada. Lo bueno es que nunca hay problemas de escalabilidad con esta configuración, independientemente de si hay 10 o 10 mil millones de usuarios, aunque 10 mil millones sería un poco demasiado. Escala porque no hay servidor, todo funciona en sus computadoras, por lo que solo los nodos del blockchain interactúan entre sí. Esa era la idea inicial, pero también hay un problema con la architecture. Y también porque se fue un poco por el camino, hoy en día casi nadie ejecuta un nodo en su propia computadora. Las personas generalmente dependen de proveedores de nodos de terceros. Cuando usamos Metamask, por ejemplo, en segundo plano, generalmente usamos Infura, que es una de las compañías que trabaja con Metamask para eso. Y luego, cuando escribimos data en el blockchain, también pagamos tarifas de transacción en gas. Y eso incentiva todo el sistema a funcionar. Entonces, los validadores reciben las transacciones, luego pueden quedarse con parte de estas tarifas de gas y sí, por eso aportan su blockchain a la cadena. Pero leer desde el blockchain es un problema poco utilizado o no está incentivado a nivel de protocolo, por lo que dicen. Entonces, ahí es donde muchas compañías se crearon, como dije, en torno a todas esas redes con Metamask para proporcionar acceso a los data, pero también necesitan encontrar un modelo de negocio en torno a eso. Y así está todo este asunto. Y no es fácil acceder a esos data. Además, como dije antes, en el blockchain, almacenamos el mismo espacio que está ordenado por, sí, como la marca de tiempo, con todos los demás contratos inteligentes y todo lo demás que sucede en el blockchain. Entonces, para ver, por ejemplo, Maker, digamos que Uniswap es probablemente el nombre más común aquí. Entonces, para ver qué sucedió en Uniswap, necesitamos mirar todas estas transacciones y filtrar solo las de Uniswap porque todos los demás protocolos comparten el mismo espacio de bloque. Sí, y eso termina con obtener, y también el protocolo o la interfaz para obtener esos data se llama JSON-RPC. Es algo muy básico para interactuar con un nodo de blockchain. Es realmente como un RPC. Puedo llamar a funciones simples, pero no realmente una extracción agradable de data. Es muy básico. Entonces, en realidad, es código que vi en la práctica, por lo que cuando queremos obtener un ID de token, que tiene todos los tokens de un propietario, vemos todas estas declaraciones de espera aquí, y muchas de ellas son en realidad una llamada de vuelta al punto final JSON-RPC, y tal vez tarde de 100 a 200 milisegundos en resolverse. Y luego llegamos a cosas como esta, como, está bien, llego a este primero y obtengo esto, y luego espero. Y si alguien tiene 20 tokens, y para cada token, lleva 200 milisegundos, terminamos con una página que tarda varios segundos en cargarse. Y sabemos que los usuarios, tan pronto como superamos los 100, 200, 300 milisegundos, generalmente se impacientan, aunque las personas que usan Web3 o aplicaciones de blockchain están un poco más acostumbradas a tiempos de espera lentos, pero no creo que eso sea una buena excusa. Entonces, estos son los problemas. La extracción de data no está realmente incentivada. El protocolo subyacente es muy básico, por lo que es una tarea bastante difícil. Y ahí es exactamente donde entra en juego The Graph.

3. El Protocolo de Indexación de The Graph y los Subgrafos

Short description:

The Graph es un protocolo de indexación que sirve como capa de datos de la web tres. Se encuentra entre el front-end y el blockchain, reenviando llamadas de escritura e incentivando la lectura a través de tarifas de consulta. La arquitectura de The Graph consta del front-end, el subgrafo para indexar datos, los contratos construidos sobre el blockchain y el propio blockchain. Admite múltiples redes y proporciona una capa de abstracción para el almacenamiento de datos, lo que facilita el trabajo de los desarrolladores con diferentes blockchains. El subgrafo es un esquema de base de datos que instruye a los indexadores sobre qué datos indexar y cómo almacenarlos, funcionando como una forma de curación.

Entonces, The Graph es la idea de tener estas APIs para un futuro descentralizado vibrante. Es un protocolo de indexación que ayuda con todas estas necesidades, como indexar los datos en el blockchain y luego servirlos de manera agradable a nuestros front-ends o también a otras aplicaciones de ciencia de datos. Este número es en realidad entre mil y dos mil millones de consultas por día.

Actualmente, hay un servicio de alojamiento para The Graph que se duplicará a lo largo del año, pero actualmente atiende entre mil y dos mil millones de consultas por día para aplicaciones grandes como Uniswap o también Enzyme Audios, Live Peer inestable, y así sucesivamente. Es uno de esos protocolos de infraestructura que se utiliza mucho. Dos mil millones de consultas por día es realmente bastante.

Desde el punto de vista tecnológico, pensamos en The Graph como la capa de datos de la web tres. Se encuentra en el medio, hay un mejor gráfico. Más adelante, profundizaré en eso y también es un protocolo de extremos descentralizados en la red, por lo que hay, nuevamente, la idea es avanzar hacia esta descentralización para que el usuario final, no necesitemos, o especialmente como desarrolladores, no necesitemos preocuparnos tanto por la escalabilidad porque, como dije, la infraestructura descentralizada inicial escala indefinidamente, es muy escalable y ahora, con el protocolo de indexación descentralizado, nuevamente, tenemos una capacidad de escalabilidad muy alta. En el momento en que copié esa diapositiva, creo que esos números han aumentado un poco, pero teníamos 465 indexadores. Estos son los que son realmente interesantes para nosotros como desarrolladores. Estos son los que indexarán los datos para nosotros y los servirán. Están distribuidos por todo el mundo. Donde sea que estén los usuarios, recibirán un indexador. Tenemos 700 en este momento. Creo que ese número ya ha llegado a mil. Los delegados y curadores son solo algunos otros roles y no quiero profundizar en eso porque como desarrollador no es tan importante. Hasta el día de hoy, la red generó aproximadamente 2.25 millones de tarifas de consulta a un precio de caridad de aproximadamente 12 centavos. Así que eso, sí, ahora ves, sé que soy malo en matemáticas. Pero es algo bastante importante. Y esta es en realidad la arquitectura con la que terminamos en comparación con la anterior, donde dijimos que estaba en el front-end y en el blockchain directamente. Tienes el front-end y luego el gráfico que se encuentra en el medio, que reenvía solo las llamadas de escritura. Gracias. Reenvía solo las llamadas de escritura al gráfico, al blockchain, pero lo que obtiene los datos en ambos casos está incentivado. Ya teníamos incentivos para escribir, pero ahora también hay incentivos para leer. Al leer desde el gráfico, pagamos una pequeña cantidad de tarifas de consulta a los indexadores que han indexado el subgrafo y están sirviendo esa consulta. También tienen el incentivo correcto para trabajar en el sistema. Esa es la solución. También un poco más agradable, estas diapositivas las hice yo y luego el diseño dijo que debería usar esa diapositiva, que es sin duda más agradable. Así que tenemos el front-end y luego el subgrafo para el gráfico, la indexación de datos en el medio. Luego tenemos los contratos, como dije, que se construyen sobre el fundamento del blockchain. Y luego tenemos el blockchain en la parte inferior. Sí, eso es muy genial. Así que terminamos con estas aplicaciones verdaderamente descentralizadas que también tienen la capa de datos descentralizada. También puede ser importante mencionar aquí que The Graph es compatible, no solo en Ethereum, sino en muchas otras redes, como una capa de herramientas o roll-ups como Polygon, Avalanche, Selo, Arweave, Cosmos, sé, qué es interesante, mucha gente también habla de Solana. Con Solana, es un poco más complicado, pero la capa fundamental está construida, por lo que el soporte para The Graph en Solana pronto estará en camino. Entonces, básicamente, sea cual sea el blockchain que queramos usar, o eventualmente The Graph tendrá algún soporte para él. Eso realmente lo hace muy interesante como desarrollador porque también la lectura de datos, los datos se almacenan en cada uno, y especialmente los blockchains tienen una implementación diferente en Ethereum de una manera diferente. Pero con The Graph, hay una especie de capa de abstracción. Eso es lo que me encantó de GraphQL inicialmente de todos modos, es una capa de abstracción diferente de datos donde no necesito saber exactamente en detalle qué sucede detrás de escena. Pero sí, puedo simplemente crear un dato, genial. Eso realmente lo hace verdaderamente simple. Lo tuvimos. Ahora la siguiente contraseña de la que siempre se habla es qué es un subgrafo. El subgrafo es el conjunto de instrucciones fundamentales para los indexadores, qué datos indexar y cómo almacenar esos datos. Es básicamente un esquema de base de datos y luego algunas reglas para observar en el blockchain y cómo almacenar eso en el esquema. Eso es un subgrafo. Y luego terminamos con, por lo que un subgrafo también se puede ver como una forma de curación. Alguien dice, hey, en realidad estos datos juntos tienen sentido.

4. Contratos y Configuración de la Base de Datos de CryptoPunk

Short description:

El ejemplo de CryptoPunk involucra dos contratos, el contrato CryptoPunk y el contrato RappdPunks. El enfoque está en las transferencias y ventas, mientras que otros eventos pueden ser omitidos. Se configura una base de datos para almacenar los punks, propietarios y transferencias. El subgrafo actúa como una base de datos o contenedor para un protocolo o caso de uso específico, compartiendo la base de datos con otros subgrafos. Los modelos simplifican el proceso.

Entonces, digamos que para el ejemplo de CryptoPunk, eso es uno. Luego el desarrollador investigará CryptoPunk pronto. Entonces el desarrollador dijo, bueno, está bien, CryptoPunk dice básicamente que hay en realidad dos contratos interesantes. El contrato CryptoPunk real y luego el contrato RappdPunks porque hubo algunos problemas de compatibilidad. Entonces alguien escribió este envoltorio, así que queremos ver ambos y solo eso. Y luego queremos enfocarnos principalmente en las transferencias y las ventas. Y hay algunos otros eventos que no son tan interesantes y podemos omitir. Y luego queremos configurar una database. La database es como, está bien, tenemos todos los punks en algún lugar, tenemos todos los propietarios en algún lugar, tenemos todas las transferencias en algún lugar, podemos decir que una transferencia también es una venta. Así es básicamente cómo abordar un problema. Pero de una manera más visual para explicarlo, como dije, tuvimos que tener todas estas transacciones frente al blockchain, ordenadas por marca de tiempo. Y al final, un subgrafo se puede ver como, una database o contenedor por, digamos protocolo o caso de uso, lo que tenga sentido aquí. Un tipo una vez me señaló, como el subgrafo en sí mismo para la database, comparten la database con otros subgrafos en el sistema de indexación. Solo para mencionar este detalle técnico, pero diría que los modelos deberían simplificar lo que está sucediendo aquí. Eso es lo que es.

5. GraphQL y Protocolo de Indexación

Short description:

GraphQL permite la fácil recuperación de NFTs propiedad de un solo propietario con una resolución de consulta rápida. La interfaz de usuario escribe directamente en el blockchain y lee a través del protocolo de indexación.

Genial. Entonces, al final, volviendo a esto, es como un código feo, feo de Telspray que teníamos antes. Ahora tenemos un hermoso, ¿cómo lo llamamos, GraphQL. Y podemos obtener fácilmente, con una solicitud al gráfico, todos los NFTs que un propietario posee. Y esas consultas, sí, se resuelven generalmente en 100 a 200 milisegundos. Sí, eso es muy genial. Ahora podemos tener estas interfaces rápidas. Sí. Sí, eso es nuevamente como dije antes. La interfaz de usuario escribe directamente en el blockchain. Está adecuadamente incentivado. Y luego lee desde el blockchain a través del gráfico, el protocolo de indexación.

6. Explorando Subgrafos y CryptoPunks

Short description:

En esta configuración, un usuario envía una transacción que pasa por contratos inteligentes, emitiendo eventos. El nodo del gráfico observa estos eventos y ejecuta mapeos codificados en WebAssembly. Los datos se almacenan en una base de datos Postgres. Por otro lado, los desarrolladores envían consultas a una API de GraphQL, que se resuelve para el usuario. Creamos una red descentralizada y exploramos subgrafos publicados en la red del gráfico. Messari y otras empresas escriben subgrafos de alta calidad, incluyendo CryptoPunks. Podemos examinar el código fuente y ver cómo se organiza la información y cómo funciona el subgrafo.

Genial. Muy bien, y así es más o menos cómo se ve esa configuración. Entonces en la parte superior, tenemos el deudor, un usuario envía una transacción. Digamos que alguien compra un CryptoPunk. Pasa por contratos inteligentes, los contratos inteligentes emiten eventos. Entonces el blockchain es un sistema basado en eventos o como contratos inteligentes y un buen contrato inteligente emite eventos. Y luego podemos observar estos eventos con el nodo del gráfico, que es la tecnología subyacente que ejecuta los índices.

Luego, cuando ven los eventos, ejecutan lo que se llama mapeo. El mapeo está codificado en WebAssembly. Está escrito en AssemblyScript. Se puede compilar a WebAssembly. Así que AssemblyScript es muy similar a TypeScript. Como JavaScript, TypeScript, probablemente te resultará familiar, aunque hay pequeñas diferencias y puedes investigar esto. Y se almacena en una tienda. Es básicamente una database así. Es literalmente una base de datos Postgres que cada indexador ejecuta.

Por otro lado, vemos al desarrollador que envía consultas, que van a una API de GraphQL. Es muy similar a cómo funciona el desarrollo web, ¿verdad? Es solo la API que también es Graph Node y luego se resuelve para el usuario. O como en un GIF agradable, vemos, sí, tenemos todas estas transacciones diferentes y de alguna manera terminan ordenadas de manera agradable. Genial, sí, si quieres tuitear al respecto, puedes decir que has aprendido sobre Subgrafos pero tal vez podamos hacerlo más tarde. Hay otro código QR. El código QR básicamente va a este. Este. Sí, así que sí, son como mis diapositivas de nuevo. Entonces, lo que hacemos en el taller, sí, creamos una red descentralizada. Diría que lo mejor es hacerlo, lo hacemos ahora juntos aquí. ¿Hay preguntas hasta ahora? Algunos temas por los que pasé demasiado rápido, vale. Muy bien, entonces vamos. Podemos ir a graph.com. ¿De verdad? Vaya, vale, tenemos un error interno del servidor aquí. Oh, vale, solo la página de inicio está caída. Pero de todos modos, cuando vayas a la página de inicio, verás en la parte superior izquierda, puedes verificar el explorador de gráficos. Y aquí en el explorador de gráficos, vemos estos son los subgrafos que se publican en la red descentralizada del gráfico o la red del gráfico. Hay bastantes. Una cosa a tener en cuenta aquí son los de Messari. Messari es otra empresa que trabaja en el gráfico. También hay una empresa de data que es muy, como, son conocidos en la escena. Y sí, y ellos escriben estos subgrafos de alta calidad de los grandes protocolos. Pero el subgrafo que realmente me gusta es el de CryptoPunks. Porque es muy fácil de entender. Así que este es. Es fácil de entender y cómo funcionan. Así que podemos ver un poco cómo está organizada la data en el blockchain. Cómo funciona el subgrafo. Así que aquí vemos el código fuente. Por lo general, el código fuente está vinculado. Está en GitHub. Este es el desarrollador Jerry que creó ese subgrafo. Y también lo mantiene. Creo que un poco.

7. Subgraph Manifest and Contracts

Short description:

El manifiesto del subgrafo define los contratos, redes, bloques y eventos que se indexarán. Incluye los eventos de asignación y transferencia, así como la compra de artículos. También se menciona un mercado de cadena y otros contratos.

Entonces, ya sabes, este tipo de imágenes de píxeles tontas por las que la gente está pagando tanto dinero. Y me gusta mucho el subgrafo que podemos ver, es un subgrafo dot YOML. Este es básicamente el manifiesto del subgrafo que define qué contratos estamos indexando en qué red y en qué bloque comenzamos a indexar. Y también qué eventos emite ese contrato en los que queremos actuar. Así que tenemos la asignación, que fue la original. Y los cryptocons originalmente, pero es interesante que se asignaron de forma gratuita. Como los airdrops. Luego vemos las transferencias. También tenemos cuando algo es comprado, así que es interesante. Aquí tenemos nuestro propio mercado de cadena. Sí, y luego tenemos algunos otros contratos. Pero eso es básicamente todo.

8. Checking the Cryptopunk Contract

Short description:

Para verificar el contrato de Cryptopunk, simplemente puedo copiar y pegar la dirección en Etherscan. Las transacciones y bloques están indexados en Etherscan, pero no hay acceso directo a la API para los datos. El contrato inteligente, escrito en Solidity, es de código abierto y fácil de leer. Hay funciones de lectura como punk-index-to-address que nos permiten recuperar información específica, como el propietario de un punk.

Y luego también puedo verificar ese contrato por mí mismo. Y sí, simplemente copié y pegué esta dirección aquí y puedo ir a Etherscan. Y luego veo, okay, este es el contrato de Cryptopunk. Y veo todas estas transacciones en qué bloques ocurrieron. Ya está un poco indexado para nosotros en Etherscan, aunque está en un servidor centralizado. Y creo que no hay una API para acceder directamente a esos data. Podemos ver el contrato inteligente, en realidad, el Solidity. Quiero decir, es bastante genial. Como la mayoría de las cosas son de código abierto en Ethereum. Muy fácil de leer y aprender. Y hay estas funciones de lectura. Básicamente, traducen hacia atrás. Entonces, cuando digo, por ejemplo, punk-index-to-address, va a... Sí, aquí, en realidad este. Solo un punk-index-to-address. Y puedo hacer esto. Puedo obtener el punk uno. Es propiedad de esta persona. Entonces, creo que es lo mismo. Okay, genial. Entonces, así es más o menos cómo se vería si quieres hacerlo por nosotros mismos en Etherscan.

9. Explorando las Ventas de CryptoPunk y la Precisión de los Datos

Short description:

El CryptoPunk más caro vendido fue el punk con ID 9998, que se compró por aproximadamente 124,000 ETH, equivalente a $211 millones. Este precio es significativamente más alto que la venta más grande registrada en el sitio web de Larval Labs, que fue de 8,000 ETH. La diferencia en los precios resalta la importancia de considerar la precisión de los datos y el papel del gráfico en la indexación de los datos brutos de la cadena de bloques.

Pero ahora, una de las preguntas más interesantes siempre es sobre CryptoPunks. Es como, okay, entonces, ¿cuál fue en realidad el punk más caro que se haya vendido? ¿Cuánto pagó realmente alguien? Así que, déjame ver estas funciones de lectura que tenemos aquí. No hay ninguna, ¿verdad? No hay ninguna, nada de eso. El contrato básicamente lleva un registro, como dije, del estado actual. Pero si realmente quieres tener este estado histórico, necesitamos tener otra función. Quiero decir, la otra posibilidad es que simplemente pasemos por todos estos métodos, transacciones que podemos filtrar tal vez. Comprar Punk. Luego tal vez, no sé si incluso podemos ordenar por valor. No, es posible que podamos buscar a través de estas miles de transacciones. Pero sí, eso no es una buena user experience. Y tampoco algo en lo que podamos construir encima. ¿Pero podemos construir una interfaz de usuario encima?

Entonces, con los CryptoPunks, lo que podemos hacer es simplemente ir al playground de GraphQL. Y como dije, realmente me encanta GraphQL porque es estructurado, o como que tiene un fuerte tipado. Así que puedo abrir el Explorador aquí y veo todas las consultas de nivel superior que puedo hacer. Y solo leyendo a través de ellas empieza a tener sentido. Así que tenemos cuenta y cuentas. Este es este patrón de que puedes obtener uno por ID o obtener varios por un filtro. Entonces tenemos que preguntar por algunos bits, sí, en los mercados es como un ask cuando yo, cuando tengo algo y quiero, digamos, 10 ETH por ello. Entonces el ask es la cosa, y la oferta es cuando alguien más tiene algo que quiero y puedo enviárselo, darte 10 ETH por ello. Tenemos contratos almacenados, algunas cosas de notificación. Tenemos eventos almacenados, ofertas de NFT, punks. Y ahora vamos a las ventas en realidad, eso es lo que quería ver, ¿verdad? Así que simplemente podemos hacer clic en ventas, abrirlo, y luego tenemos un monto que está bien. Y también podemos ver el NFT, y luego el ID tal vez. Y obtenemos los primeros cinco ordenados por monto y dirección de orden descendente. Esto me dará las cinco ventas más caras de CryptoPunks en la historia. Y eso fue muy rápido, ¿verdad? Como si estuviera mirando el esquema, abriendo estas cosas y enviando la consulta. Así que enviemos esto. Genial. Parece que el punk más caro es este. Es el punk con ID 9998. Y el monto es este, que se traduce. Así que necesitamos Ethereum, solo esto, así que Ethereum tiene 18 decimales. Entonces, como el dólar estadounidense o el euro o lo que sea, generalmente las monedas tienen dos decimales. Ethereum tiene 18 decimales, pero se almacena en el número más pequeño, que lo llamaré peso. Entonces, cuando queremos ver el precio en ETH, como el precio que vemos, como alguien pagó 124,000 ETH, que creo que es aproximadamente. Hoy, ETH estaba alrededor de 1,700, creo. Sí. $211 millones por un NFT. Es bastante. Quiero decir, es sorprendentemente alto. Pero ahora aquí, hay algo muy interesante sobre esto. Cuando vamos al sitio web de Larval Labs, Larval Labs, bien, Crypto Funks. Aquí. Y aquí también vemos las ventas, las grandes ventas. Luego, curiosamente, la venta más grande que está aquí fue de 8,000 ETH. Pero aquí terminamos con 124,000 ETH. Así que hay bastante diferencia. Entonces, ¿por qué hay una diferencia aquí? Y en realidad, es bastante interesante. También un poco sobre cómo pensamos en los data. Entonces, el gráfico indexa los data de la cadena sin importar qué tipo de data sea, es la verdad cruda. Y también vemos que está este ID 9998.

10. Explorando una Transacción de Punk y Consultando Datos

Short description:

Podemos explorar un Punk específico en el sitio web de CryptoPunks y descubrir una transacción que fue censurada. Esta transacción involucró un Flash Loan, donde alguien tomó prestada una gran cantidad de dinero, compró un Punk de sí mismo y lo revendió. CryptoPunks considera esto como manipulación, pero la cadena de bloques proporciona la verdad cruda. La confianza en los datos y la propiedad de los datos son consideraciones importantes. Con el gráfico y la cadena de bloques, la confianza es inherente ya que la mayoría de los subgrafos son de código abierto. Aunque algunos datos pueden ser censurados en el front-end, aún tenemos acceso a la verdad. Para consultar los datos desde el front-end, necesitamos usar el estudio del gráfico y obtener una clave de API.

Así que podemos ir aquí y comenzar a explorar ese PUNK. Así que necesitamos investigar un poco aquí. Podemos investigar ese PUNK. Es este, ni siquiera es uno muy raro, pero aquí vemos que la transacción realmente se registró aquí también. Pero no... Sí, ellos, ¿qué es? Censuraron en el sitio web una transacción que no era válida. Y hay esta estrella de la que podemos aprender más. Y, sí. Entonces, alguien con esta tecnología llamada Flash Loan. Entonces, en pocas palabras, es posible en Ethereum pedir prestada una cantidad casi ilimitada de dinero siempre y cuando lo devuelvas en la misma transacción. Entonces, lo que alguien hizo fue pedir prestado mucho dinero, comprar el punk de sí mismos, revenderlo a sí mismos y devolver todo el dinero. Esa maniobra tal vez costó algunos cientos de dólares, pero al menos ahora es historia que... Sí. Ese llamado Flash Loan, si quieres investigarlo. Pero, sí. Entonces, CryptoPunks piensa que, esto es manipulación. Y pueden tener razón o no, pero sabemos que los data en la blockchain son resistentes a la censura, así que podemos tener la verdad cruda aquí.

Sí, eso es sobre... Sí. Sobre los diferentes data, como, ¿podemos confiar en los data, y quién tiene la propiedad de los data, lo cual es bastante interesante. Y con el gráfico y la blockchain, esa confianza siempre está presente porque la mayoría de los subgrafos son de código abierto. Podemos ver cómo funcionan, y los data son muy sólidos y se trata de qué data es verdadero. Y luego tenemos acceso a los data en bruto. Si las personas quieren censurar cosas como esta en su front-end, quiero decir, no está completamente censurado, pero simplemente no está en la página principal, ¿verdad? Quiero decir, es su elección, es una elección justa, está bien. Pero aún tenemos acceso a la verdad si queremos.

Sí, así que vimos esto. Sí, está bien. El siguiente paso sería si quieres consultar esos data directamente desde, mira, tal vez ahora esté arreglado, sí. Si quieres obtener esos data directamente desde nuestro front-end, entonces necesitamos ir al estudio del gráfico. Así que primero, nuevamente, obtengo ese Crypto Punk, puedo obtener ese. Luego abro una nueva pestaña, voy al estudio del gráfico. Y para consultar desde el front-end, aquí tenemos una URL de consulta. Pero necesitamos tener una clave de API para consultar esa URL. Te mostraré rápidamente cómo funcionaría eso. Así que puedo conectarme aquí, conectarme con Metamask. Para aquellos que no lo sepan, Metamask es una billetera de navegador. Billetera también es un término un poco extraño. Básicamente almacena mi clave privada. Y así puedo interactuar directamente con la blockchain. Puedo cambiar de red aquí. Pero también creemos una nueva cuenta con fines de demostración. Puedo desconectarme nuevamente. Así que conectemos la billetera. Creo que tengo Metamask. Es un poco engorroso. Pero si lo haces por primera vez, básicamente funcionará. Solo me está costando. Blah, blah. Pero cuando hago esto, puedo dar mi correo electrónico. Eso me enviará un correo electrónico cuando el saldo de facturación esté bajo.

11. Conectando a GraphQL y Explorando Subgrafos

Short description:

Muestro cómo crear una clave API para consultas gratuitas y conectarse al punto final de GraphQL. El cliente de gráficos de The Guild proporciona características útiles como consultas en vivo y la capacidad de crear múltiples subgrafos. Puede ser utilizado como una capa de datos para interactuar con la cadena de bloques a través de mutaciones. El GraphQL mesh combina datos del gráfico con otras fuentes, creando una interfaz unificada de GraphQL. Subgraphs.messari.io es un recurso para explorar subgrafos. Si los subgrafos existentes no son suficientes, podemos buscar alternativas. El miedo a la nueva tecnología puede superarse al verla en acción. Los enlaces a los sitios web mostrados están disponibles en la presentación.

Pero no lo hago por ahora. Lo que puedo hacer es ir a las claves API y crear una clave API con el nombre demo. Y luego puedo obtener 1,000 consultas gratuitas simplemente proporcionando mi correo aquí. Así que mi nombre es demo, y no.com. Genial, y ahora tengo una clave API que está aquí con 1,000 consultas gratuitas. Y ahora podemos ir a GraphQL en línea, tal vez, y seguir adelante. Así que tenemos la URL de consulta aquí, así que puedo usarla, ir allí, pegar. Y luego aquí al principio, hay un marcador de posición para la clave API. Así que obtengo la clave API aquí y la pego allí. Y luego puedo conectarme al punto final. Sí, eso debería tomar normalmente tal vez un segundo o dos. Sí, aquí vamos. Y nuevamente, exploré un poco aquí. Y con el mismo punto final que vemos aquí, puedo usarlo en mi front-end como un punto final de GraphQL normal para enviar mis consultas. Sí, así que me detengo aquí por un segundo. ¿Hay alguna pregunta hasta ahora?

No, no tengo ninguna pregunta por ahora. Realmente impresionante. De acuerdo, genial. Sí, tal vez, así que lo recorrí rápidamente. Entonces, si quieres una consulta desde el gráfico, también está The Guild. No sé si conoces The Guild, ellos están creando herramientas muy geniales como creo que el gráfico llamado Yogo Server, pero son muy activos en la comunidad de código abierto de GraphQL, también trabajan en el gráfico y crean esta herramienta genial llamada el Cliente de Gráficos que quiero mostrar aquí, así que, y tal vez también pueda volver a la diapositiva adecuada mostrar The Guild. Básicamente se encuentra entre el gráfico y el front-end, nos ayuda a acceder mejor al gráfico, aunque es solo GraphQL, hay características nuevas geniales como las consultas en vivo que abstraen cuando los datos cambian y el Cliente de Gráficos lo sabe y puede enviarlo al front-end. También es genial, como tenemos, a menudo en el front-end, queremos crear múltiples subgrafos, también en diferentes cadenas. Es algo en lo que el Cliente de Gráficos puede ayudar, como tienen herramientas sencillas para combinar múltiples subgrafos en un esquema unificado de GraphQL, eso es muy genial. Sí, también se puede utilizar directamente como una capa de datos incluso sin el gráfico para interactuar con la cadena de bloques a través de mutaciones, así que realmente podemos aprovechar al máximo las herramientas de GraphQL, o como si estuviéramos realmente en el medio, también para tener estas mutaciones, enviar transacciones a la cadena de bloques con mutaciones de GraphQL, hacer el seguimiento de bloques adecuado para saber si algo se ha actualizado, y así sucesivamente. Es una herramienta muy genial para jugar, especialmente para casos de uso avanzados sobre el gráfico. Sí. Porque en realidad se basa en el gráfico, se llama el GraphQL mesh. Sí, GraphQL mesh. Incluso es capaz de combinar, ya sabes, datos del gráfico con otras fuentes, incluso como XML o gRPC actualizados o lo que sea, en una interfaz unificada de GraphQL que incluso se puede implementar en trabajadores de Cloudflare y otras computadoras en el borde. Muy interesante. Pero nuevamente, esto podría tener una presentación completa por sí mismo. Pero los chicos estarán en Ámsterdam la próxima semana conmigo. Así que si estás interesado en esto, tenemos un stand. Así que ven, saluda. Y haz algunas preguntas. Pero al principio tuvimos la pregunta sobre cómo escribir subgrafos por sí mismos. Y porque ahora mismo solo vimos cómo consultarlos. También está este que tal vez es bueno saber. Es subgraphs.messari.io. Creo que es subgraphs. Es un buen recurso si se necesitan más subgrafos o como dije, el explorador. Pero a veces los subgrafos existentes no son suficientes, por así decirlo. Queremos buscar algo más. Así que tal vez lo elimine rápidamente... Y sé por mí mismo y cuando hay una nueva tecnología generalmente tengo miedo de esa tecnología porque no entiendo cómo funciona. Y lo mejor para eliminar ese miedo para mí siempre ha sido ver cómo funciona en acción y lo simple que es. Una pregunta rápida mientras escribes. ¿Esos enlaces de los sitios web que acabas de mostrar antes, también están en la presentación o?

Sí, deberían estar aquí pero también puedo verificar porque desapareció rápidamente pero no quiero perderlo.

12. Creando un Subgrafo para CryptoPunks en Ethereum

Short description:

El ponente discute el uso de Discord y la herramienta en línea GraphiQL. Explican el proceso de creación de un subgrafo para CryptoPunks en Ethereum utilizando la CLI de Graph. El ponente demuestra cómo inicializar el subgrafo y establecer parámetros como la red, la dirección del contrato y el bloque de inicio. Mencionan la importancia de indexar los eventos del contrato como entidades y brindan una descripción general del protocolo.

Sí, ¿también estás en ese Discord? Sí, sí, sí, acabo de unirme a ese. Todavía no estaba allí. Definitivamente pasaré por tu stand, por cierto. Sí, seguro. Ese es el Explorador para encontrar los subgrafos. Quiero decir, sí, lo que hice fue seguir los enlaces aquí hasta CryptoPunks, tal vez el otro que es interesante es este. Sí. Sí, ¿sabes qué más hiciste con la consulta en línea? Ah, el GraphiQL en línea. Sí, GraphiQL en línea, creo que sí. Estaba aquí, no, no, este. Sí. Sí, sí. Sí. Quiero decir, en realidad no necesitas eso porque el punto final, esto es lo que usas en el código cuando quieres hacer una consulta. Sí, estaba tratando de hacer un poco de una billetera y jugar con ella, así que. Sí, porque el playground, lo que tenemos aquí, este, el playground también lo tenemos aquí. Esto fue solo para mostrarte cómo construir juntos una URL con la clave API que realmente funciona. Es solo una prueba de que esta URL funciona. Pero todo lo que puedes hacer aquí también lo puedes hacer aquí. ¿Tiene sentido? Sí, sí, tiene mucho sentido. Solo intenté entender por qué no puedo, oh, no hay bloqueo en ello. Tal vez necesite validar algo. Sí, bueno, muy rápido. Tenemos, ¿qué es eso? Si quieres, no sé, si quieres hacer esto de la subclase CryptoPunk por ti mismo de nuevo, quiero decir que no tiene mucho sentido porque el que ya está bien. Pero lo que podríamos hacer es comenzar con esa dirección. Entonces hay un gráfico CLI, en realidad puedo ir a mi estudio de subgrafos, nuevamente el estudio de subgrafos. Va a crear el subgrafo, dale un nombre. CryptoPunks, toma la blockchain, digamos que está en Ethereum, hay más, ¿verdad? Solo crea el subgrafo. Y luego puedo seguir estos pasos aquí como, YARN Global, ups. YARN Global Add Graph Protocol. Así que podemos instalar el gráfico CLI y luego seguir esta instrucción aquí, simplemente decir, Graph Init CryptoPunks. Básicamente es copiar y pegar a través de eso aquí. Y luego aquí, tenemos un inicio de envío. Entonces lo que hizo fue pasar por estos pasos aquí. Entonces, YARN Global instaló ese trabajo, ¿verdad? Y luego copio y pego el segundo comando, Graph Init STUDIO. Y sí, luego tenemos el protocolo, la forma en que funciona. Hay como un diálogo. Por lo general, los standards son buenos, como qué red, tu mainnet. Y luego tengo que poner la dirección del contrato, ¿verdad? Lo tenemos aquí. Así que puedo copiar esa dirección aquí, pegarla. Y luego obtiene el ABI de Etherscan. Entonces el ABI es el esquema, se puede decir el esquema del contrato inteligente, qué eventos hay, qué funciones llamar. Luego, por lo general, queremos comenzar con un bloque de inicio. Entonces el bloque de inicio es el bloque, como dije antes, donde se creó una transacción, donde se creó un contrato. Y podemos indexar, sí, antes de un bloque de inicio, antes de que se implemente el contrato. Como que no tiene sentido tratar de obtener algunos data del contrato mientras no exista. Podemos darle un nombre y aquí es como coincidir, podemos indexar los eventos del contrato como entidades. Sí, puedo pasar por esto mientras se instala.

13. Subgraph YAML, Schema y Handler

Short description:

El subgrafo consiste en un manifiesto YAML que lo mantiene todo unido. El esquema define las tablas de la base de datos, incluyendo la entidad para los eventos de PunkBot. El handler, escrito en assembly script, crea una nueva entidad y la llena con datos del evento, bloque y transacción antes de guardarla. Podemos seguir el ejemplo y desplegar el subgrafo, que comienza a indexar la blockchain. El proceso lleva tiempo, pero pronto podremos ver datos. También exploramos brevemente el desarrollo de contratos inteligentes.

No sé cómo lo nombré. Cryptopunk. De acuerdo, mientras se instalan las dependencias, también podemos ver el código. Y como dije antes, el subgrafo realmente consiste en un subgrafo YAML, que se ve muy similar al que vimos en GitHub porque es el mismo inicio. Así que tenemos una dirección de origen, el bloque de inicio, la red que se indexa, el esquema que se referencia aquí, y también el manejador de eventos. Por lo tanto, el manifiesto, o subgrafo, el YAML es el manifiesto. Mantiene todo unido.

Comencemos con el esquema primero. Así que vamos al esquema y luego ese esquema, que a pesar de ser compatible con GraphQL, no es el esquema que consultaremos. Es un esquema de base de datos. Está inspirado en Prisma 1. Así que tenemos, y estos son en realidad solo tablas. Así que tenemos una tabla, digamos para PunkBot aquí. Tenemos una tabla, PunkBot. Hay un Id que se almacena como bytes. También es inmutable. Por lo tanto, es una entidad que podemos cambiar más adelante lo que hace que sea un poco más rápido indexar y consultar. Permíteme ver qué índice, como cada vez que se emite un evento de PunkBot, tenemos tablas generadas automáticamente para todos los eventos. Nos ayuda aquí, si el valor va de una dirección a otra, el número de aspecto, sucede el timestamp y el hash de la transacción. Y así es como se ve el esquema de datos subyacente. También podemos extenderlo, obviamente, agregar relaciones, y así sucesivamente, pero también podemos ir a la fuente.

La segunda cosa que se mantiene unida aquí es el manejador de eventos. Veamos, es solo, déjame ir de nuevo a este manejador de PunkBot. Lo que hace es simplemente crear una nueva entidad y ver este assembly script, así que se lee muy similar a TypeScript. Incluso tiene las mismas características que... Como no es TypeScript, VS Code piensa que es TypeScript, y hay muy pocas, muy pocas diferencias. Entonces, en el ejemplo estándar, como el compilador de TypeScript ni siquiera se queja, pero podemos ver qué hay en ese evento. Oh, está bien, es una clase que hace esto. ¿Y qué hay aquí? Oh, tenemos esto. Y blah, blah, así que podemos explorar. Tenemos el autocompletado, como nos encanta, y aquí lo que sucede es que creamos una nueva entidad. Llenamos esa entidad con cosas de los padres del evento. Luego llenamos algunas cosas del bloque y la transacción, y luego la guardamos. Así de simple. Lo genial de esto es que, sí, nos pregunta si queremos agregar otro contrato. Pero no necesitamos otro contrato. Entonces no escribimos ningún código hasta ahora, y podemos seguir el ejemplo. Los ejemplos, podemos configurar la clave de implementación. Este probablemente ya esté hecho, y podemos hacer Graph Deploys a los Cryptopunks. Sí, dale el nombre, seguimos lo mismo allí, dale la versión. Boom. Y está implementado. Y ahora comienza a indexar, ¿ves? Sí. Espero que no haya problemas con eso. Lleva un tiempo hasta que comienza, se necesitan cinco minutos hasta que veamos el primero. Sí, genial, ahora continúa. Comenzando. Y lee a través de la blockchain, procesando desencadenantes, blah, blah, blah. Veamos si ya tenemos algunos datos ahora. Hmm, creo que tenemos una nueva función llamada escrituras por lotes que aumenta la velocidad de indexación, pero también espera cinco minutos primero antes de escribir realmente, así que no lo vemos ahora, pero pronto aparecerá. Sí, también miramos rápidamente cómo podemos desarrollar contratos inteligentes por nosotros mismos.

QnA

Interactuando con otras blockchains

Short description:

El gráfico es un componente fundamental para interactuar con otras blockchains, proporcionando una interfaz unificada independientemente de las implementaciones subyacentes. Admite tanto cadenas compatibles con EVM como cadenas no compatibles con EVM, con el objetivo de lograr un futuro multichain descentralizado.

Creo que todo está documentado en línea. Creo que eso es bastante bueno, creo que debería mover esto, así que graph.com/docs. Aquí tenemos estas subpartes. Por lo tanto, el desarrollo es simplemente crear un subgrafo es el recurso definitivo, compuesto por este acorde, pero también consultando, cosas que acabo de describir aquí, que vemos como una clave de API mágica, mejores prácticas, y más. ¿Qué más? Creo que hay un inicio rápido. Básicamente eso es lo que hice. Pero, sí. Gracias. Muchas gracias.

Creo que tenemos tiempo para algunas preguntas. En primer lugar, muchas gracias por esta presentación, fue realmente impresionante. Aprendí muchas cosas nuevas. Una pregunta que tengo es, ¿es el gráfico básicamente el componente fundamental para interactuar con otras blockchains básicamente para leerlas? Entonces, básicamente, los componentes principales. ¿Y eso significa que es compatible con EVM? ¿Significa que puedes simplemente pasar por todas las cadenas o realmente hacen que esas cadenas sean diferentes entre sí o algo así? Cómo necesitas interactuar con ellas.

Sí, esa es una buena pregunta. En realidad, hay otra, tal vez esto suene bien. Entonces, cuando miras esta diapositiva arquitectónica aquí, puedes pensar en el gráfico como esta tubería ETLQ, como extraer, transformar, cargar, consultar. Y es cierto, como la capa de consulta, la capa de consulta se mantiene igual independientemente de las implementaciones subyacentes que el gráfico admite correctamente, como correcto, como la mayoría de las cadenas compatibles con EVM que tienen cierta tracción, diría yo, pero también cadenas no compatibles con EVM como Near, RV, Cosmo, algunas de las cadenas de Cosmos tienen soporte, el soporte de Solana está en proceso. Entonces sí, y eso es solo para decir, realmente la idea es tener esta interfaz unificada con lo que sea que esté debajo. La misma idea que GraphQL tenía para las aplicaciones web tradicionales, el gráfico quiere serlo para este futuro descentralizado. Multichain.

Introducción a GraphQL y NFTs

Short description:

Comenzar con GraphQL y NFTs es una buena manera para que los desarrolladores comprendan la blockchain sin sumergirse en todos los detalles. Es un proceso gradual de aprendizaje de Solidity y exploración de temas más complejos como los protocolos de préstamo e intercambio. The Graph facilita el trabajo de los desarrolladores con GraphQL y la navegación en el mundo de Web3.

Eso tiene mucho sentido. Es un buen punto de partida, al menos para serlo. Sí, y es algo así, diría que así es como he estructurado esta presentación con la que podemos comenzar, no es necesario comprender blockchain en detalle, cómo funciona, hay muchos detalles pequeños que pueden resultar intimidantes al principio, pero ya conocemos GraphQL, ¿verdad? Entonces podemos tener una idea aproximada de cómo funciona un NFT porque es solo una cosa que se mueve, que se vende y se vende y cosas así. Entonces, en mi opinión, es una buena manera de comenzar a mirar los NFT a través de GraphQL para descubrir un poco, jugar un poco, experimentar con la tecnología, y luego poco a poco podemos comenzar a hablar de, esa fue mi experiencia, como comencé como ingeniero frontend en Web3, y luego en algún momento comencé a aprender a leer Solidity, y Solidity tampoco es tan difícil de leer porque está inspirado en JavaScript, y luego comencé a leer los contratos y a comprender más sobre estos contratos y luego tal vez aprender sobre temas más complejos como los protocolos de préstamo como Aave o MakerDAO o los protocolos de intercambio como Uniswap, cómo funcionan, cómo puedes participar, estos son temas un poco más complejos. Pero sí, creo que con The Graph, ayuda mucho a facilitar a los desarrolladores el uso de GraphQL, sí.

Explorando Activos y Verificando Tokens

Short description:

Además de los NFT, también puedes ver cualquier activo que poseas en una dirección de billetera. El problema es que necesitamos proporcionar la versión en minúsculas de la dirección. En el subgrafo de NFT, puedo verificar fácilmente los tokens que poseo, incluyendo su ID, contrato, símbolo y nombre. Esto es útil para rastrear tokens en diferentes billeteras.

Además de los NFT, también puedes ver básicamente cualquier activo que poseas en, por ejemplo, una dirección de billetera, ¿verdad?

Sí, sí y no. Oh. Entonces el problema con, así que hay esto, sí, detengamos los gráficos, ¿hola? De acuerdo. Entonces. De acuerdo. Sí, podríamos ir básicamente a scan y luego encontrarme. Vamos. Solo porque estoy usando una VPN aquí. No. Oh, estás en China. No. Oh. En una habitación de hotel. Oh, okay. No es... De acuerdo. Esta es mi dirección pública. Sabes, tengo mi... schmitty.eet. Y ahora podemos ir... De acuerdo. De acuerdo. Por cualquier motivo. Oh, aquí vamos. De acuerdo. Ahí está el subgrafo de NFT. Este. Y aquí puedo ir a... Creo. Cuentas y luego donde... Espera un segundo. Creo que el problema es, veamos, cuentas, creo que así. Veamos si ya me encuentra. No, de acuerdo. Entonces el problema es que siempre necesitamos proporcionar la versión en minúsculas. Pero quiero decir, eso se convierte rápidamente en minúsculas. De acuerdo. De acuerdo, esa es mi dirección. Veamos ahora, debería encontrarla. Sí, de acuerdo, genial. Bien, esa es mi dirección. Y en ese subgrafo, puedo verificar fácilmente mis tokens que poseo. ID, hagamos esto. Sí. O tal vez la palabra está mal, vamos con contrato. Tal vez también identifica, eso sería bueno. Símbolo, nombre, sí, hagamos esto. Eso sería bueno. Oh, tengo una tarea de charla, ¿qué es esto? Ahí está exactamente el caso de uso. He estado intercambiando y tengo como en todas partes, todo tipo de tokens en las billeteras que tengo.

El Modelo de Negocio de The Graph y Consultando NFTs

Short description:

El modelo de negocio de The Graph se basa en las tarifas de consulta pagadas por los usuarios. El protocolo descentralizado distribuye las tarifas a los indexadores. Consultar NFTs con The Graph permite a los usuarios ver los tokens que poseen. The Graph proporciona una URI para acceder a la imagen de un token, lo que permite su uso en el frontend.

Así que estaba pensando, realmente estaba esperando encontrar una forma de ver fácilmente eso en lugar de. Pero honestamente, eso me parece incorrecto. De acuerdo, necesito investigar esto. Pero básicamente así es como se hace. Puedo enviarlo a Discord. Sí, eso funciona con NFTs. Pero con otros tokens, hay demasiados para ser honesto. ES20s, es solo que tenemos problemas de escalabilidad con los índices que no pueden mantenerse al día porque es demasiado. Como hay nuevas tecnologías emergiendo, como mangueras de incendios en subflujos. Para dar una pista sobre esto, eso debería ser un problema de escalabilidad. Pero eso es todo ahora. Sí, los saldos de ESC721 funcionan más o menos, pero los de ESC20 no. Y el modelo de negocio para The Graph es básicamente las consultas que pagas. Entonces, estás consultando con The Graph y la tarifa es básicamente su modelo de negocio, ¿no? ¿O hay diferentes modelos de negocio aplicables para ellos, para The Graph? Lo siento, ¿puedes repetir? Acabo de descubrir lo que estoy haciendo mal aquí. Sí, realmente no lo sé. Entonces, el modelo de negocio para The Graph es básicamente que les pagan con tarifas cuando haces una consulta. Así que cuando te registraste, creo que obtuviste mil gratis. Cuando fuiste a agregarlos, ahí es básicamente donde, eso es su modelo de negocio, ¿no? Sí, quiero decir, The Graph es un protocolo descentralizado como Ethereum, así que no hay nadie. O como ese dinero se distribuye. Así que cuando va a los indexadores en realidad, y sabes, tengo que saber que aquí, también solo ejecutamos un índice. Pero sí, el modelo de negocio está ahí. Pero sí, quiero decir, sí, simplemente dicho, sí, el modelo de negocio es pagar las tarifas de consulta y el modelo de negocio es en realidad para los indexadores obtener estas tarifas de consulta. Excelente. Sí, y ahora en realidad tenemos, lo hice como, debería haber consultado al niño. Así que ahora lo tengo. Entonces, cuando envié esta consulta, en realidad también puedo obtener la consulta. Así, de esta manera, veo todos estos NFTs que tengo. Tengo algunos Pantheons, tokens de Livesar, NFV, Bern, Chubby's, ¿qué más? Oh, tengo Sound y algunos de prueba de asistencia. El desarrollador ahora, Spiro NFT, un token de Rari. Sí. Sí, sigue adelante. Sí. Juega un poco, pero sí. Así es como, sí. Así es como puedes obtenerlo. Y si quieres usarlo en el frontend, en realidad también puedes obtener la URI allí y luego debes seguir la URI así. Y tienes la imagen y luego puedes cargar la imagen. Y ese es uno de los que tengo, sí. Muchas gracias por tu tiempo, y sí, nos vemos en Ámsterdam.

Watch more workshops on topic

React Advanced Conference 2021React Advanced Conference 2021
145 min
Web3 Workshop - Building Your First Dapp
Top Content
Featured WorkshopFree
In this workshop, you'll learn how to build your first full stack dapp on the Ethereum blockchain, reading and writing data to the network, and connecting a front end application to the contract you've deployed. By the end of the workshop, you'll understand how to set up a full stack development environment, run a local node, and interact with any smart contract using React, HardHat, and Ethers.js.
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Build with SvelteKit and GraphQL
Top Content
Featured WorkshopFree
Have you ever thought about building something that doesn't require a lot of boilerplate with a tiny bundle size? In this workshop, Scott Spence will go from hello world to covering routing and using endpoints in SvelteKit. You'll set up a backend GraphQL API then use GraphQL queries with SvelteKit to display the GraphQL API data. You'll build a fast secure project that uses SvelteKit's features, then deploy it as a fully static site. This course is for the Svelte curious who haven't had extensive experience with SvelteKit and want a deeper understanding of how to use it in practical applications.

Table of contents:
- Kick-off and Svelte introduction
- Initialise frontend project
- Tour of the SvelteKit skeleton project
- Configure backend project
- Query Data with GraphQL
- Fetching data to the frontend with GraphQL
- Styling
- Svelte directives
- Routing in SvelteKit
- Endpoints in SvelteKit
- Deploying to Netlify
- Navigation
- Mutations in GraphCMS
- Sending GraphQL Mutations via SvelteKit
- Q&A
React Advanced Conference 2022React Advanced Conference 2022
95 min
End-To-End Type Safety with React, GraphQL & Prisma
Featured WorkshopFree
In this workshop, you will get a first-hand look at what end-to-end type safety is and why it is important. To accomplish this, you’ll be building a GraphQL API using modern, relevant tools which will be consumed by a React client.
Prerequisites: - Node.js installed on your machine (12.2.X / 14.X)- It is recommended (but not required) to use VS Code for the practical tasks- An IDE installed (VSCode recommended)- (Good to have)*A basic understanding of Node.js, React, and TypeScript
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL for React Developers
Featured Workshop
There are many advantages to using GraphQL as a datasource for frontend development, compared to REST APIs. We developers in example need to write a lot of imperative code to retrieve data to display in our applications and handle state. With GraphQL you cannot only decrease the amount of code needed around data fetching and state-management you'll also get increased flexibility, better performance and most of all an improved developer experience. In this workshop you'll learn how GraphQL can improve your work as a frontend developer and how to handle GraphQL in your frontend React application.
React Summit 2022React Summit 2022
173 min
Build a Headless WordPress App with Next.js and WPGraphQL
Top Content
WorkshopFree
In this workshop, you’ll learn how to build a Next.js app that uses Apollo Client to fetch data from a headless WordPress backend and use it to render the pages of your app. You’ll learn when you should consider a headless WordPress architecture, how to turn a WordPress backend into a GraphQL server, how to compose queries using the GraphiQL IDE, how to colocate GraphQL fragments with your components, and more.
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Relational Database Modeling for GraphQL
Top Content
WorkshopFree
In this workshop we'll dig deeper into data modeling. We'll start with a discussion about various database types and how they map to GraphQL. Once that groundwork is laid out, the focus will shift to specific types of databases and how to build data models that work best for GraphQL within various scenarios.
Table of contentsPart 1 - Hour 1      a. Relational Database Data Modeling      b. Comparing Relational and NoSQL Databases      c. GraphQL with the Database in mindPart 2 - Hour 2      a. Designing Relational Data Models      b. Relationship, Building MultijoinsTables      c. GraphQL & Relational Data Modeling Query Complexities
Prerequisites      a. Data modeling tool. The trainer will be using dbdiagram      b. Postgres, albeit no need to install this locally, as I'll be using a Postgres Dicker image, from Docker Hub for all examples      c. Hasura

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

GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
From GraphQL Zero to GraphQL Hero with RedwoodJS
Top Content
We all love GraphQL, but it can be daunting to get a server up and running and keep your code organized, maintainable, and testable over the long term. No more! Come watch as I go from an empty directory to a fully fledged GraphQL API in minutes flat. Plus, see how easy it is to use and create directives to clean up your code even more. You're gonna love GraphQL even more once you make things Redwood Easy!
Vue.js London Live 2021Vue.js London Live 2021
24 min
Local State and Server Cache: Finding a Balance
Top Content
How many times did you implement the same flow in your application: check, if data is already fetched from the server, if yes - render the data, if not - fetch this data and then render it? I think I've done it more than ten times myself and I've seen the question about this flow more than fifty times. Unfortunately, our go-to state management library, Vuex, doesn't provide any solution for this.For GraphQL-based application, there was an alternative to use Apollo client that provided tools for working with the cache. But what if you use REST? Luckily, now we have a Vue alternative to a react-query library that provides a nice solution for working with server cache. In this talk, I will explain the distinction between local application state and local server cache and do some live coding to show how to work with the latter.