Cómo Migrar Tu Subgrafo de Ethereum a la Red Descentralizada: Una Guía Paso a Paso
The Graph Foundation, 21 de abril de 2022. Traducción de Lorena Fabris
Los subgrafos de Ethereum siguen migrando a la red descentralizada de The Graph. A medida que crece la adopción de web3, también lo hace la demanda de escala y rendimiento. Los desarrolladores se enfrentan a una decisión importante: seguir confiando en la tecnología centralizada o cambiar a la infraestructura descentralizada.
En cuanto a longevidad y fiabilidad, nada supera a la descentralización. Al evitar los puntos de fallo centralizados, ofreces a sus usuarios una aplicación web3 a la que pueden acceder de forma constante. Muchos proyectos ya han validado la red en producción y ahora es el momento perfecto para que tu proyecto migre. Para ayudarte a migrar, aquí tienes una guía paso a paso.
Supuestos
- Ya has desplegado un subgrafo en el servicio alojado
- El subgrafo está indexando Ethereum mainnet
- El subgrafo no tiene dependencias de IPFS o de búsqueda de texto completo (actualmente no se soportan en la red descentralizada)
Recursos
También es recomendable familiarizarse con The Graph Network y sus recursos:
1. Revisa el papel de cada participante en la red.
- Indexadores — Son operadores de nodos en The Graph Network que ponen en juego Tokens Graph (GRT) para indexar subgrafos y servir consultas a los consumidores
- Curadores — Los Curadores utilizan su conocimiento del ecosistema web3 para evaluar y señalar los subgrafos que deben ser indexados por los Indexadores en The Graph Network
- Delegadores — Los participantes de la red que delegan (es decir, “hacen staking”) de GRT a uno o más Indexadores, aumentando así la cantidad de consultas que pueden servir
Nota — Los Indexadores seleccionan los subgrafos para indexarlos en función de la señal de curación del subgrafo, ya que es lo mejor para sus incentivos. Lee más sobre esto aquí. Por lo tanto, se recomienda autocurar al menos 10k GRT para tener un número suficiente de Indexadores para indexar el subgrafo. Como desarrollador de dapp curando en su subgrafo, se recomienda dejar esta cantidad señalada durante al menos 1–2+ años para la longevidad del subgrafo en la red. También puedes considerar la curación en el momento en que el subgrafo se despliega para evitar el riesgo de front-run.
2. Subgraph Studio — Es una plataforma de lanzamiento que te permite crear subgrafos, añadir metadatos, desplegarlos y probarlos antes de publicarlos en la Red Descentralizada. Aprende más sobre Subgraph Studio aquí.
3. Graph Explorer — Es una vista organizada del mundo de los subgrafos de la red descentralizada y de los datos de los participantes de la red. También te permite interactuar con el protocolo. Con the Graph Explorer puedes explorar la red, sus subgrafos, señalar en los subgrafos, ver los Curadores de un subgrafo, ver los Indexadores de cada subgrafo, delegar en los Indexadores y mucho más. Aprende más sobre Graph Explorer aquí.
Cómo Migrar tu subgrafo del Servicio Alojado a la Red Descentralizada
Abre un terminal (CLI) y navega a la carpeta donde se encuentra el código fuente del subgrafo que estás tratando de desplegar, y sigue estos pasos:
- Ejecuta
yarn install
para instalar todas las dependencias del subgrafo - Asegúrate de que tienes las últimas versiones de of graph-cli y graph-ts instaladas. En el momento de escribir esto es @graphprotocol/graph-ts@0.26.0 y @graphprotocol/graph-cli@0.28.1
- Asegúrate de que tu r
apiVersion
en subgraph.yaml es mayor o igual a 0.0.5. La última versión es la 0.0.6. - Ejecuta
graph codegen
con los cambios que tengas que hacer con la nueva versión - Ejecuta
graph build
para comprobar si tu subgrafo se sigue construyendo. Si hay errores de compilación, consulta la Guía de Migración de AssemblyScript - A continuación, inicia sesión en Subgraph Studio con tu Wallet (por ejemplo, MetaMask) o Gnosis Safe Multisig seguido de una de las EOA (dirección de propiedad externa) de la multisig
- Crea un subgrafo. Selecciona “Ethereum Mainnet” como red indexada y dale un nombre significativo. Un ejemplo de nombre es “Yearn Vaults” — es mejor usar palabras simples y descriptivas.
- Una vez creado el subgrafo, rellena los detalles, incluyendo la descripción del subgrafo, el nombre para mostrar y la imagen del proyecto. Una descripción informativa dará a los Curators más contexto y atraerá potencialmente más señales sobre tu subgrafo.
- En la columna derecha del estudio de subgrafos, como se ve en la imagen de arriba, hay instrucciones sobre cómo crear un nuevo subgrafo. Como estamos migrando un subgrafo existente, sólo nos interesan dos comandos: Auth y deploy. Puedes copiar/pegar esos comandos haciendo clic en el símbolo
- Vuelve a tu terminal y pega estos comandos:
graph auth --studio <deploy-key> graph deploy --studio <subgraph-slug>
- Introduce la etiqueta de la versión inicial del subgrafo. Por ejemplo:
v0.0.1
En este punto, tu subgrafo está desplegado en Subgraph Studio, pero aún no está publicado en la red descentralizada. Ahora puedes probar el subgrafo para asegurarte de que funciona como es debido utilizando la URL de consulta temporal que se ve en la parte superior de la columna de la derecha. Como este nombre ya sugiere, esta es una URL temporal y no debe ser utilizada en producción.
Una vez que estés listo para que tu subgrafo sea descubrible en Graph Explorer por los Curadores e Indexadores, puedes hacerlo usando el botón Publicar.
También tendrás la opción de combinar la señalización y la publicación de tu subgrafo en la red — lo que se recomienda para atraer a los Indexadores y ser el primer Curador en tu Subgrafo.
Para los desarrolladores que necesiten ayuda para migrar sus subgrafos, se están aceptando solicitudes de becas de migración aquí por un tiempo limitado. Nota: se incurre en una tasa de curación del 1% en la señal de curación inicial de un subgrafo. Ejemplo: Si señalizas 10.000 GRT en tu subgrafo, éste tendrá 9.900 GRT de señal. Se queman 100 GRT.
Una vez que un subgrafo es publicado en la red descentralizada y tiene suficiente señal de curación, los Indexadores comenzarán a indexar tu subgrafo. Dependiendo de la complejidad y eficiencia de tu subgrafo, esto puede llevar un tiempo. Mientras tanto, puedes crear tu clave API.
Crear una clave API
Puedes generar una clave API en Subgraph Studio aquí.
Al final de cada semana, se generará una factura basada en las tarifas de consulta en las que se ha incurrido durante este periodo. Esta factura se pagará automáticamente utilizando los GRT disponibles en tu saldo. Tu saldo se actualizará una vez que se haya retirado el costo de las tarifas de consulta. Las tarifas de consulta se pagan en GRT a través de la red Polygon. Se recomienda tener GRT en Polygon para depositar en el saldo de facturación, o hacer un puente con GRT desde una wallet de Ethereum mediante los siguientes pasos:
- Compra GRT en un exchange de tu elección
- Envía GRT a tu wallet
- Envía GRT a Polygon mediante un puente usando Subgraph Studio
- También recibirás una pequeña cantidad de MATIC en este proceso
- Añade GRT a tu saldo de facturación
Nota: Este proceso es ligeramente diferente si estás usando una multisig, ya que no puedes puentear GRT a Polygon con una multisig. Tendrás que enviar GRT a una EOA (dirección de propiedad externa) y puentearla desde allí a Polygon. Una vez en Polygon, puedes cargar la dirección multisig. Hemos creado una herramienta especial para ayudarte en estos pasos: https://multisig-billing.thegraph.com/
Recomendamos bloquear la API limitando su uso de dos maneras:
1. Subgrafos autorizados
2. Dominio autorizado
Consulta tu subgrafo en la red descentralizada
Ahora puedes comprobar el estado de indexación de los indexadores en la red en Graph Explorer (ejemplo aquí). La línea verde de la parte superior indica que en el momento de la publicación 8 indexadores han indexado con éxito ese subgrafo. También en la pestaña de Indexadores puedes ver qué indexadores recogieron tu subgrafo.
Tan pronto como el primer indexador haya indexado completamente tu subgrafo puedes empezar a consultar el subgrafo en la red descentralizada. Para recuperar la URL de consulta de tu subgrafo, puedes copiar/pegar haciendo clic en el símbolo junto a la URL de consulta. Verás algo así
https://gateway.thegraph.com/api/[api-key]/subgraphs/id/S9ihna8D733WTEShJ1KctSTCvY1VJ7gdVwhUujq4Ejo
Importante: Asegúrate de sustituir [api-key] por una clave de API real generada en la sección anterior.
Ahora puedes usar esa URL de consulta en tu dapp para enviar tus peticiones GraphQL.
¡Felicitaciones! ¡Ahora eres un pionero de la descentralización!
Nota: Debido a la naturaleza distribuida de la red puede darse el caso de que diferentes Indexadores hayan indexado hasta diferentes bloques. Para recibir sólo datos frescos puede especificar el bloque mínimo que un indexador tiene que tener indexado para poder servir tu consulta con el bloque: { number_gte: $minBlock }
argumenta el campo como se muestra en el siguiente ejemplo:
{ stakers(block: { number_gte: 14486109 }) { id } }
Más información sobre la naturaleza de la red y cómo manejar los re-orgs se describen en el artículo de documentación Sistemas Distribuidos.
Actualizar tu subgrafo en la red descentralizada
Realiza las actualizaciones del código como siempre y luego despliega el nuevo subgrafo en el estudio con el mismo comando comentado anteriormente:
graph deploy --studio <subgraph-slug>
Te pedirá una etiqueta de versión para esta nueva versión. Debe ser secuencial a la versión anterior. Por ejemplo: v0.0.2
Una vez que el subgrafo actualizado se despliega en el estudio, puedes probarlo utilizando la URL de consulta temporal comentado anteriormente.
Es posible que quieras desplegar una nueva versión en el estudio sin publicarla en la red mientras desarrollas tu subgrafo y utilizar la URL de consulta temporal para probarlo. Una vez que tu nueva versión esté lista para producción puedes publicar sólo esa versión en la red.
Tenga en cuenta que se cobra un 0,5% del importe de la curación como impuesto de actualización cuando se publica una nueva versión. Este impuesto se divide a partes iguales entre los desarrolladores de subgrafos y los Curadores. Por lo tanto, aportas el 0,25% del total de la curación al publicar una nueva versión.
Ejemplo de cálculo:
Un subgrafo tiene 10.000 GRT de señal y se publica una nueva versión.
- Necesitas tener 25 GRT en tu wallet que serán quemados durante esa transacción como cuota de curación
- Los otros 25 GRT se descontarán de la señal: El subgrafo sólo tendrá 9,975 GRT de señal de curación después de la actualización.
La mayoría de los indexadores indexarán la última versión de un subgrafo y la versión anterior para proporcionar estabilidad. La mayoría de los Curadores han configurado su señal para auto-migrar a la última versión.
¡Gracias por migrar tu subgrafo a la red descentralizada! Te estás uniendo a una comunidad de pioneros con ideas afines que trabajan para distribuir el poder de las autoridades centralizadas. Esperamos que disfrutes de la mayor fiabilidad y el mayor rendimiento de la red. No dudes en ponerte en contacto con nosotros si necesitas ayuda: envía un correo electrónico a migration@thegraph.foundation para que te ayuden a migrar, tanto si te encuentras con un problema técnico como si estás interesado en las subvenciones para cubrir los costos de la migración (disponibles por tiempo limitado) o cualquier otra cosa relacionada con la migración de subgrafos.
Acerca de The Graph
The Graph es la capa de indexación y consulta de web3. Los desarrolladores construyen y publican APIs abiertas, llamadas subgrafos, que las aplicaciones pueden consultar utilizando GraphQL. Actualmente, The Graph soporta la indexación de datos de 32 redes diferentes, incluyendo Ethereum, NEAR, Arbitrum, Optimism, Polygon, Avalanche, Celo, Fantom, Moonbeam, IPFS y PoA, y pronto habrá más redes. Hasta la fecha, se han desplegado más de 38.000 subgrafos en el servicio alojado y ahora se pueden desplegar subgrafos directamente en la red. Más de 28.000 desarrolladores han creado subgrafos para aplicaciones como Uniswap, Synthetix, KnownOrigin, Art Blocks, Gnosis, Balancer, Livepeer, DAOstack, Audius, Decentraland, y muchas otras.
La experiencia de autoservicio de The Graph Network para desarrolladores se lanzó en julio de 2021; desde entonces, más de 232 subgrafos han migrado a la Red, con más de 161 Indexadores que sirven consultas de subgrafos, más de 8.600 delegadores y más de 2.300 curadores hasta la fecha. Hasta la fecha se han señalado más de 3 millones de GRT con una media de 15K GRT por subgrafo.
Si eres un desarrollador que construye una aplicación o una aplicación web3, puede utilizar los subgrafos para indexar y consultar los datos de las blockchains. The Graph permite que las aplicaciones presenten los datos de manera eficiente y con un buen rendimiento en una interfaz de usuario y permite que otros desarrolladores también utilicen tu subgrafo. Puedes desplegar un subgrafo en la red utilizando el recién lanzado Subgraph Studio o consultar los subgrafos existentes que están en the Graph Explorer. A The Graph le encantaría darles la bienvenida para que sean Indexadores, Curadores y/o Delegadores en la red principal de The Graph. Únete a la comunidad de The Graph presentándote en The Graph Discord para discusiones técnicas, únete al chat de Telegram de The Graph y sigue a The Graph en Twitter, LinkedIn, Instagram, Facebook, Reddit, y Medium!. Los desarrolladores de The Graph y los miembros de la comunidad están siempre dispuestos a charlar contigo, y el ecosistema de The Graph cuenta con una creciente comunidad de desarrolladores que se apoyan mutuamente.
La Fundación The Graph supervisa The Graph Network. The Graph Foundation está supervisada por el Consejo Técnico. Edge & Node, StreamingFast, Figment, Semiotic y The Guild son cinco de las muchas organizaciones del ecosistema The Graph.