Recetario > Actualizando un Subgrafo Existente a la Red de The Graph

Actualizando un Subgrafo Existente a la Red de The Graph

Introducción

Enlace a esta sección

Esta es una guía sobre cómo actualizar tu subgrafo desde el servicio alojado a la red descentralizada de The Graph. ¡Más de 1,000 subgráfos se han actualizado con éxito a la red de The Graph, incluyendo proyectos como Snapshot, Loopring, Audius, Premia, Livepeer, Uma, Curve, Lido, y muchos más!

El proceso de actualización es rápido y tus subgráfos se beneficiarán para siempre de la confiabilidad y rendimiento que solo puedes obtener en la red de The Graph.

Prerrequisitos

Enlace a esta sección
  • Ya has deployado un subgrafo en el Servicio Alojado.
  • El subgrafo está indexando una cadena disponible en la red de The Graph.
  • Tienes una billetera con ETH para publicar tu subgrafo en la cadena.
  • Tienes aproximadamente 10,000 GRT para curar tu subgrafo, de modo que los Indexadores puedan comenzar a indexarlo.

Actualizando un Subgrafo Existente a la Red de The Graph

Enlace a esta sección

Puedes encontrar comandos específicos para tu subgrafo en el Subgraph Studio.

  1. Obtén la última versión de graph-cli instalada:
npm install -g @graphprotocol/graph-cli
yarn global add @graphprotocol/graph-cli

Asegúrate de que tu apiVersion en subgraph.yaml sea 0.0.5 o superior.

  1. Dentro del repositorio del proyecto principal del subgrafo, autentifica el subgrafo para deployar y construir en el estudio:
graph auth --studio <DEPLOY_KEY>
  1. Genera archivos y construye el subgrafo:
graph codegen && graph build

Si tu subgrafo tiene errores de construcción, consulta la Guía de Migración de AssemblyScript.

  1. Inicia sesión en Subgraph Studio con tu billetera y despliega el subgrafo. Puedes encontrar tu <SUBGRAPH_SLUG> en la interfaz de usuario de Studio, el cual se basa en el nombre de tu subgrafo.
graph deploy --studio <SUBGRAPH_SLUG>
  1. Realiza pruebas de consultas en el área de pruebas (playground) de Studio. Aquí tienes algunos ejemplos para el Subgrafo de Intercambio en Mainnet de Sushi:
{
users(first: 5) {
id
liquidityPositions {
id
}
}
bundles(first: 5) {
id
ethPrice
}
}
  1. En este punto, tu subgrafo está ahora deployado en Subgraph Studio, pero aún no está publicado en la red descentralizada. Ahora puedes probar el subgrafo para asegurarte de que funciona como se espera utilizando la URL de consulta temporal que se ve en la parte superior de la columna derecha. Como este nombre ya sugiere, esta es una URL temporal y no debe ser usada en producción.
  • Actualizar es simplemente publicar otra versión de tu subgrafo existente en la cadena.
  • Debido a que esto conlleva un costo, se recomienda encarecidamente desplegar y probar tu subgrafo en el Subgraph Studio, utilizando la "URL de consulta de desarrollo" antes de publicarlo. Mira un ejemplo de transacción aquí. Los precios rondan aproximadamente los 0.0425 ETH a 100 gwei.
  • Cada vez que necesites actualizar tu subgrafo, se te cobrará una tarifa de actualización. Debido a que esto conlleva un costo, se recomienda encarecidamente desplegar y probar tu subgrafo en Goerli antes de implementarlo en la red principal. En algunos casos, también puede ser necesario disponer de cierta cantidad de GRT si no hay señal en ese subgrafo. En el caso de que haya señal/curación en esa versión del subgrafo (usando la migración automática), los costos se dividirán.
  1. Publica el subgrafo en la red descentralizada de The Graph pulsando el botón "Publicar".

Deberías curar tu subgrafo con GRT para asegurarte de que sea indexado por los Indexadores. Para ahorrar en costos de gas, puedes curar tu subgrafo en la misma transacción en la que lo publicas en la red. Se recomienda curar tu subgrafo con al menos 10,000 GRT para obtener un servicio de alta calidad.

¡Y eso es todo! Después de que hayas terminado de publicar, podrás ver tus subgráfos en vivo en la red descentralizada a través de The Graph Explorer.

Siéntete libre de utilizar el canal #Curators en Discord para informar a los Curadores que tu subgrafo está listo para ser señalizado. También sería útil si compartes con ellos tu volumen esperado de consultas. De esta manera, podrán estimar cuánto GRT deberían señalizar en tu subgrafo.

Crear una clave API

Enlace a esta sección

Puedes generar una clave API en Subgraph Studio aquí.

API key creation page

Al final de cada semana, se generará una factura en función de las tarifas de consulta que hayan incurrido durante ese período. Esta factura se pagará automáticamente utilizando el GRT disponible en tu saldo. Tu saldo se actualizará después de que se retire el costo de las tarifas de consulta. Las tarifas de consulta se pagan en GRT a través de la red de Arbitrum. Deberás agregar GRT al contrato de facturación de Arbitrum para habilitar tu clave API mediante los siguientes pasos:

  • Adquiere GRT en un exchange de tu elección.
  • Envía el GRT a tu wallet.
  • En la página de facturación en Studio, haz clic en añadir GRT.

Add GRT in billing

  • Sigue los siguientes pasos para agregar tu GRT a tu saldo de facturación.
  • Tu GRT se convertirá automáticamente en la red de Arbitrum y se agregará a tu saldo de facturación.

Billing pane

Nota: consulta la página oficial de facturación para obtener instrucciones completas sobre cómo agregar GRT a tu saldo de facturación.

Asegurando tu clave API

Enlace a esta sección

Se recomienda asegurar la API limitando su uso de dos maneras:

  1. Subgrafos autorizados
  2. Dominio autorizado

Puedes asegurar tu clave API aquí.

Subgraph lockdown page

Consulta de su subgrafo en la red descentralizada

Enlace a esta sección

Ahora puedes verificar el estado de indexación de los Indexadores en la red en Graph Explorer (ejemplo aquí). La línea verde en la parte superior indica que en el momento de la publicación, 8 Indexadores indexaron exitosamente ese subgrafo. También, en la pestaña de Indexadores, puedes ver qué Indexadores han seleccionado tu subgrafo.

Rocket Pool subgraph

Tan pronto como el primer Indexador haya indexado completamente tu subgrafo, podrás empezar a consultarlo en la red descentralizada. Para recuperar la URL de consulta de tu subgrafo, puedes copiar/pegar haciendo clic en el símbolo que aparece junto a la URL de consulta. Verás algo así:

https://gateway.thegraph.com/api/[api-key]/subgraphs/id/S9ihna8D733WTEShJ1KctSTCvY1VJ7gdVwhUujq4Ejo

Importante: Asegúrate de reemplazar [api-key] con una clave API real generada en la sección anterior.

Ahora puedes usar esa URL de consulta en tu dapp para enviar tus solicitudes de GraphQL.

¡Felicitaciones! ¡Ahora eres un pionero de la descentralización!

Nota: Debido a la naturaleza distribuida de la red, podría ser el caso que diferentes Indexadores hayan indexado hasta bloques diferentes. Para recibir solo datos actualizados, puedes especificar el bloque mínimo que un Indexador debe haber indexado para atender tu consulta con el argumento de campo: { number_gte: $minBlock }, como se muestra en el ejemplo a continuación:

{
stakers(block: { number_gte: 14486109 }) {
id
}
}

Más información sobre la naturaleza de la red y cómo manejar reorganizaciones se describe en el artículo de documentación Sistemas Distribuidos.

Actualizando un subgráfo en la red

Enlace a esta sección

Si deseas actualizar un subgrafo existente en la red, puedes hacerlo desplegando una nueva versión de tu subgrafo en el Subgraph Studio utilizando la interfaz de línea de comandos de Graph CLI.

  1. Haz cambios en tu subgrafo actual. Una buena idea es probar pequeñas correcciones en Subgraph Studio publicando en Goerli.
  2. Deploya lo siguiente y especifica la nueva versión en el comando (por ejemplo, v0.0.1, v0.0.2, etc.):
graph deploy --studio <SUBGRAPH_SLUG>
  1. Prueba la nueva versión en el Subgraph Studio consultando en el Playground
  2. Publica la nueva versión en The Graph Network. Recuerda que esto requiere gas (como se describe en la sección anterior).

Tarifa de Actualización del Propietario: Análisis Profundo

Enlace a esta sección

Nota: La curación en Arbitrum tiene una curva de vinculación plana. Obtén más información sobre Arbitrum aquí.

Una actualización requiere que GRT se migre de la antigua versión del subgrafo a la nueva versión. Esto significa que para cada actualización, se creará una nueva curva de vinculación (más información sobre las curvas de vinculación aquí).

La nueva curva de vinculación cobra el impuesto de curación del 1% sobre todo el GRT que se está migrando a la nueva versión. El propietario debe pagar el 50% de esto, es decir, el 1.25%. El otro 1.25% es absorbido por todos los curadores como una tarifa. Este diseño de incentivos está en su lugar para evitar que el propietario de un subgrafo pueda agotar todos los fondos de sus curadores con llamadas de actualización recursivas. Si no hay actividad de curación, tendrás que pagar un mínimo de 100 GRT para señalizar tu propio subgrafo.

Hagamos un ejemplo, esto es solo el caso si tu subgrafo está siendo curado activamente en:

  • Se señalizan 100.000 GRT mediante la auto-migración en v1 de un subgrafo
  • Actualizaciones del propietario a la versión 2. Se migra 100,000 GRT a una nueva curva de vinculación, donde 97,500 GRT se colocan en la nueva curva y 2,500 GRT se queman
  • Luego, al propietario se le queman 1250 GRT para pagar la mitad de la tarifa. El propietario debe tener esto en su billetera antes de la actualización; de lo contrario, la actualización no se llevará a cabo. Esto sucede en la misma transacción que la actualización.

Aunque este mecanismo está actualmente activo en la red, la comunidad está discutiendo formas de reducir el costo de las actualizaciones para los desarrolladores de subgrafos.

Mantener una Versión Estable de un Subgrafo

Enlace a esta sección

Si estás realizando muchos cambios en tu subgrafo, no es una buena idea actualizarlo continuamente y asumir los costos de la actualización. Mantener una versión estable y consistente de tu subgrafo es crucial, no solo desde la perspectiva de costos, sino también para que los Indexers puedan confiar en sus tiempos de sincronización. Deberías informar a los Indexers cuando planeas una actualización para que los tiempos de sincronización de los Indexers no se vean afectados. Siéntete libre de utilizar el canal #Indexers en Discord para notificar a los Indexers cuando estás versionando tus subgrafos.

Los subgrafos son API abiertas que los desarrolladores externos están aprovechando. Las API abiertas deben seguir estándares estrictos para que no rompan las aplicaciones de los desarrolladores externos. En la red de The Graph, un desarrollador de subgrafos debe tener en cuenta a los Indexadores y el tiempo que les lleva sincronizar un nuevo subgrafo, así como también a otros desarrolladores que están utilizando sus subgrafos.

Actualización de los Metadatos de un subgrafo

Enlace a esta sección

Puedes actualizar los metadatos de tu subgrafo sin tener que publicar una nueva versión. Los metadatos incluyen el nombre del subgrafo, la imagen, la descripción, la URL del sitio web, la URL del código fuente y las categorías. Los desarrolladores pueden hacer esto actualizando los detalles de sus subgrafos en el Subgraph Studio, donde se pueden editar todos los campos aplicables.

Asegúrate de que la opción Actualizar Detalles del Subgrafo en el Explorador esté marcada y haz clic en Guardar. Si esto está marcado, se generará una transacción en cadena que actualiza los detalles del subgrafo en el Explorador sin necesidad de publicar una nueva versión con una implementación diferente.

Mejores Prácticas para Deployar un Subgrafo en The Graph Network

Enlace a esta sección
  1. Aprovechar un nombre ENS para el Desarrollo de Subgrafos:
  • Configura tu ENS aqui
  • Añade tu nombre ENS a tu configuración aquí.
  1. Cuanto más completos estén tus perfiles, más posibilidades tendrás de que tus subgrafos sean indexados y curados.

Deprecar un Subgrafo en The Graph Network

Enlace a esta sección

Sigue los pasos aquí para retirar tu subgrafo y eliminarlo de la red de The Graph.

Consulta de un Subgrafo + Facturación en The Graph Network

Enlace a esta sección

El servicio alojado se estableció para permitir a los desarrolladores desplegar sus subgrafos sin restricciones.

Para que la red de The Graph sea verdaderamente descentralizada, las tarifas de consulta deben pagarse como parte central de los incentivos del protocolo. Para obtener más información sobre cómo suscribirse a APIs y pagar las tarifas de consulta, consulta la documentación de facturación aquí.

Estimación de las Tarifas de Consulta en la Red

Enlace a esta sección

Aunque esta función no está disponible en la UI del producto, puedes establecer tu presupuesto máximo por consulta tomando la cantidad que estás dispuesto a pagar al mes y dividiéndola por el volumen de consultas previsto.

Aunque puedes decidir sobre tu presupuesto de consulta, no hay garantía de que un Indexador esté dispuesto a atender consultas a ese precio. Si una Puerta puede emparejarte con un Indexador dispuesto a atender una consulta al precio que estás dispuesto a pagar o a un precio más bajo, pagarás la diferencia entre tu presupuesto y su precio. Como consecuencia, un precio de consulta más bajo reduce el grupo de Indexadores disponibles para ti, lo que puede afectar la calidad del servicio que recibes. Es beneficioso tener tarifas de consulta altas, ya que esto puede atraer la curación y a Indexadores reconocidos a tu subgrafo.

Recuerda que se trata de un mercado dinámico y en crecimiento, pero la forma de interactuar con él está bajo tu control. No hay un precio máximo o mínimo especificado en el protocolo o en los Gateways. Por ejemplo, puedes ver el precio que pagan algunas de las dApps de la red (por semana), a continuación. Véase la última columna, que muestra las tarifas de consulta en GRT.

QueryFee

Recursos Adicionales

Enlace a esta sección

¡Si aún estás confundido, no te preocupes! Consulta los siguientes recursos o mira nuestra guía en video sobre cómo actualizar subgrafos a la red descentralizada a continuación:

Editar página

Anterior
Construcción de subgrafos en Base
Siguiente
Debugging rápido y sencillo de subgrafos mediante Forks
Editar página