WEB3DEV

Cover image for Como Migrar seu Ethereum Subgrafh para a Rede Descentralizada: Um Guia Passo a Passo
Panegali
Panegali

Posted on

Como Migrar seu Ethereum Subgrafh para a Rede Descentralizada: Um Guia Passo a Passo

Nota: Este tutorial está desatualizado. Consulte a documentação para obter as instruções mais recentes.


Os Ethereum Subgraphs continuam a migrar para a rede descentralizada da The Graph. À medida que a adoção da Web3 cresce, também aumenta a demanda por escala e desempenho. Os desenvolvedores se deparam com uma decisão importante: continuar contando com a tecnologia centralizada ou mudar para a infraestrutura descentralizada.

Para longevidade e confiabilidade, nada supera a descentralização. Ao evitar pontos de falha centralizados, você oferece aos seus usuários um aplicativo Web3 que eles podem acessar de forma consistente. Muitos projetos já validaram a rede em produção e agora é o momento perfeito para o seu projeto migrar. Para ajudá-lo a migrar, aqui está um guia passo a passo.

Premissas

  • Você já implantou um Subgraph no serviço hospedado;
  • O Subgraph está indexando a rede principal Ethereum;
  • O Subgraph não possui IPFS (InterPlanetary File System / Sistema de Arquivos Interplanetário) ou dependências de pesquisa de texto completo (atualmente não são suportadas na rede descentralizada).

Recursos

Também é recomendável se familiarizar com a rede The Graph e seus recursos:

1 . Revise o papel de cada participante na rede.

  • Indexadores (Indexers) - Operadores de nós na rede The Graph que fazem stake do token Graph (GRT) para indexar Subgraphs e atender consultas aos consumidores.
  • Curadores (Curators) - Os curadores usam seu conhecimento do ecossistema Web3 para avaliar e sinalizar os Subgraphs que devem ser indexados pelos indexadores na rede The Graph.
  • Delegados (Delegators) - Participantes da rede que delegam (ou seja, “stake”) GRT a um ou mais Indexadores, aumentando assim a quantidade de consultas que eles podem atender.

Nota - Os indexadores selecionam Subgraphs para indexar com base no sinal de curadoria do Subgraph, pois é o melhor para seus incentivos. Leia mais sobre isso aqui. Portanto, é recomendável selecionar pelo menos 10.000 GRT para ter um número suficiente de indexadores para indexar o Subgraph. Como um desenvolvedor dapp fazendo a curadoria do seu Subgraph, é recomendável deixar esse valor sinalizado por pelo menos 1 a 2 anos ou mais para a longevidade do Subgraph na rede. Você também pode considerar a curadoria no momento em que o Subgraph é implantado para evitar o risco de ser executado antecipadamente.

2 . Subgraph Studio - Esta é uma barra de ativação que permite criar Subgraphs, adicionar metadados, implantá-los e testá-los antes de publicá-los na Rede Descentralizada. Saiba mais sobre o Subgraph Studio aqui.

3 . Graph Explorer - Esta é uma visão organizada do mundo dos Subgraphs de rede descentralizados e dados de participantes da rede. Ele também permite que você interaja com o protocolo. Com o Graph Explorer você pode explorar a rede, seus Subgraphs, sinalizar em Subgraphs, ver os curadores de um Subgraph, ver os indexadores de cada Subgraph, delegar a indexadores e muito mais. Saiba mais sobre o Graph Explorer aqui.

Como migrar seu Subgraph do serviço hospedado para a rede descentralizada

Abra um terminal (CLI) e navegue até a pasta onde está o código-fonte do Subgraph que você está tentando implantar e siga estas etapas:

  • Execute yarn install para instalar todas as dependências do Subgraph;
  • Certifique-se de ter as versões mais recentes do graph-cli e graph-ts instaladas. No momento da escrita, é @graphprotocol/[email protected] e @graphprotocol/[email protected];
  • Certifique-se de que seu apiVersionem subgraph.yaml seja maior ou igual a 0.0.5. A versão mais recente é 0.0.6.;
  • Execute graph codegen com as mudanças que você pode ter que fazer com a nova versão;
  • Execute graph build para verificar se o seu Subgraph ainda esta construído. Se houver erros de compilação, consulte o Guia de Migração do AssemblyScript;
  • Em seguida, entre no Subgraph Studio com sua carteira (por exemplo, MetaMask) ou Gnosis Safe Multisig seguido por um dos EOAs (endereço de propriedade externa) da multisig);
  • Crie um Subgraph. Selecione “Ethereum Mainnet” como a rede indexada e dê a ela um nome significativo. Um exemplo de nome é “Yearn Vaults” — é melhor usar palavras simples e descritivas.

Image description

  • Preencha os detalhes assim que o Subgraph for criado, incluindo a descrição do Subgraph, nome de exibição e a imagem do projeto. Uma descrição informativa dará aos curadores mais contexto e potencialmente atrairá mais sinais para o seu Subgraph.

Image description

  • Na coluna da direita no estúdio do Subgraph, conforme a imagem acima, estão as instruções de como criar um novo Subgraph. Como estamos migrando um Subgraph existente, estamos interessados ​​apenas em dois comandos: Auth e deploy. Você pode copiar/colar clicando no símbolo Image description

  • Volte para o seu terminal e cole estes comandos:

graph auth --studio <deploy-key>
graph deploy --studio <subgraph-slug>

Enter fullscreen mode Exit fullscreen mode
  • Digite a versão inicial da etiqueta do Subgraph. Por exemplo: v0.0.1.

Neste ponto, seu Subgraph agora está implantado no Subgraph Studio, mas ainda não foi publicado na rede descentralizada.

Agora você pode testar o Subgraph para certificar-se de que está funcionando conforme o esperado, usando o URL de consulta temporária, conforme visto na parte superior da coluna da direita acima. Como esse nome já sugere, esse é um URL temporário e não deve ser usado em produção.

Image description

Assim que estiver pronto para que seu Subgraph seja descoberto no Graph Explorer por curadores e indexadores, você pode fazer isso usando o botão Publish (Publicar).

Você também terá a opção de combinar sinalização e publicação do seu Subgraph na rede — o que é recomendado para atrair Indexadores e ser o primeiro Curador do seu Subgraph.

Para desenvolvedores que precisam de assistência para migrar seus Subgraphs, as solicitações de bolsas de migração estão sendo aceitas aqui por tempo limitado.

Nota: uma taxa de curadoria de 1% incide sobre o sinal inicial de curadoria de um Subgraph. Exemplo: Se você sinalizar 10.000 GRT em seu Subgraph, seu Subgraph terá sinal de 9.900 GRT. 100 GRT são queimados.

Assim que um Subgraph for publicado na rede descentralizada e tiver sinal de curadoria suficiente, os indexadores começarão a indexar seu Subgraph. Dependendo da complexidade e eficiência do seu Subgraph, isso pode demorar um pouco. Enquanto isso, você pode criar sua chave de API.

Criar uma chave de API

Você pode gerar uma chave de API no Subgraph Studio aqui.

Image description

Ao final de cada semana, será gerada uma fatura com base nas taxas de consulta incorridas durante esse período. Esta fatura será paga automaticamente com o GRT disponível em seu saldo. Seu saldo será atualizado depois que o custo de suas taxas de consulta for retirado. As taxas de consulta são pagas em GRT por meio da rede Polygon. Você precisará adicionar GRT ao contrato de cobrança da Polygon para habilitar sua chave de API por meio das seguintes etapas:

  • Compre GRT em uma corretora de sua escolha;
  • Envie o GRT para a sua carteira;
  • Na página, Billing, no Studio, clique em Add GRT.

Image description

  • Siga as etapas para conectar o GRT à Polygon. Depois de fazer a ponte, adicione o GRT ao seu saldo de faturamento.

Image description

Nota: esse processo é um pouco diferente se você estiver usando uma multisig, pois não é possível conectar o GRT à Polygon com uma multisig. Você precisaria enviar o GRT para um EOA (endereço de propriedade externa) e conectá-lo de lá para a Polygon. Uma vez na Polygon, você pode carregar o endereço multisig. Criamos uma ferramenta especial para ajudá-lo nessas etapas: https://multisig-billing.thegraph.com/

Nós recomendamos bloquear a API, limitando seu uso de duas maneiras:

  • Subgraphs autorizados;
  • Domínio Autorizado.

Image description

Consultando seu Subgraph na rede descentralizada

Agora você pode verificar o status de indexação dos indexadores na rede no Graph Explorer (exemplo aqui). A linha verde na parte superior indica que, no momento da postagem, 8 indexadores indexaram com êxito esse Subgraph. Também na guia Indexers, você pode ver quais indexadores selecionaram seu Subgraph.

Image description

Assim que o primeiro indexador tiver indexado totalmente seu Subgraph, você poderá começar a consultar o Subgraph na rede descentralizada. Para recuperar o URL de consulta do seu Subgraph, você pode copiá-lo/colá-lo clicando no símbolo
Image description ao lado do URL de consulta. Você verá algo assim:

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

Importante: certifique-se de substituir [api-key] por uma chave de API real gerada na seção acima.

Agora você pode usar esse URL de consulta em seu dapp para enviar suas solicitações GraphQL.

Parabéns! Agora você é um pioneiro da descentralização!

Nota: devido à natureza distribuída da rede, pode ser que diferentes indexadores tenham indexado até blocos diferentes. Para receber apenas dados novos, você pode especificar o bloco mínimo que um indexador deve ter indexado para atender sua consulta com o argumento de campo block: { number_gte: $minBlock }, conforme mostrado no exemplo abaixo:

{ stakers(block: { number_gte: 14486109 }) { id } }
Enter fullscreen mode Exit fullscreen mode

Mais informações sobre a natureza da rede e como lidar com reorganizações são descritas no artigo de documentação Sistemas Distribuídos.

Atualizando seu Subgraph na rede descentralizada

Faça as atualizações no código como de costume e, em seguida, implante o novo Subgraph no studio com o mesmo comando discutido acima:

graph deploy --studio <subgraph-slug>
Enter fullscreen mode Exit fullscreen mode

Ele solicitará um rótulo de versão para esta nova versão. Deve ser sequencial à versão anterior. Por exemplo:v0.0.2.

Depois que o Subgraph atualizado for implantado no studio, você poderá testá-lo usando o URL de consulta temporário conforme discutido acima.

Image description

Você pode querer implantar uma nova versão no studio sem publicar na rede enquanto desenvolve seu Subgraph e usar o URL de consulta temporário para testá-lo. Depois que sua nova versão estiver pronta para produção, você poderá publicar apenas essa versão na rede.

Observe que um total de 0,5% do valor da curadoria é cobrado como taxa de atualização quando uma nova versão é publicada. Este imposto é dividido igualmente entre desenvolvedores de Subgraphs e curadores. Assim, você fornece 0,25% da curadoria total ao publicar uma nova versão.

Exemplo de cálculo:

Um Subgraph tem sinal de 10.000 GRT e uma nova versão é publicada.

  • Você precisa ter 25 GRT em sua carteira, que serão queimados durante essa transação como taxa de curadoria.
  • Os outros 25 GRT serão deduzidos do sinal: O Subgraph só terá 9.975 GRT de sinal de curadoria após a atualização.

A maioria dos indexadores indexará a versão mais recente de um Subgraph e a versão anterior para fornecer estabilidade. A maioria dos curadores definiu seu sinal para migrar automaticamente para a versão mais recente.

Obrigado por migrar seu Subgraph para a rede descentralizada! Você está se juntando a uma comunidade de pioneiros que trabalham para distribuir o poder de autoridades centralizadas. Esperamos que você aproveite a melhor confiabilidade e desempenho mais rápido da rede. Não hesite em entrar em contato se precisar de suporte - envie um e-mail para [email protected] para obter assistência na migração, se você estiver enfrentando um problema técnico ou estiver interessado em subsídios para cobrir os custos de migração (disponível por tempo limitado) ou qualquer outra coisa relacionada à migração de Subgraphs.

Sobre a The Graph

A The Graph é a camada de indexação e consulta da Web3. Os desenvolvedores criam e publicam APIs abertas, chamadas de Subgraphs, que os aplicativos podem consultar usando o GraphQL. Atualmente, a The Graph oferece suporte à indexação de dados de 32 redes diferentes, incluindo Ethereum, NEAR, Arbitrum, Optimism, Polygon, Avalanche, Celo, Fantom, Moonbeam, IPFS e PoA, com mais redes em breve. Até o momento, mais de 38.000 Subgraphs foram implantados no serviço hospedado e agora os Subgraphs podem ser implantados diretamente na rede. Mais de 28.000 desenvolvedores criaram Subgraphs para aplicativos como Uniswap, Synthetix, KnownOrigin, Art Blocks, Gnosis, Balancer, Livepeer, DAOstack, Audius, Decentraland e muitos outros.

A experiência de autoatendimento da rede The Graph para desenvolvedores foi lançada em julho de 2021; desde então, mais de 232 Subgraphs migraram para a rede, com mais de 161 indexadores atendendo a consultas de Subgraphs, mais de 8.600 delegadores e mais de 2.300 curadores até o momento. Já foram sinalizados mais de 3 milhões de GRT com uma média de 15.000 GRT por Subgraph.

Se você é um desenvolvedor criando um aplicativo ou aplicativo Web3, pode usar Subgraphs para indexar e consultar dados de blockchains. A The Graph permite que os aplicativos apresentem dados de maneira eficiente e performante, em uma interface do usuário e permite que outros desenvolvedores também usem seu Subgraph! Você pode implantar um Subgraph na rede usando o recém lançado Subgraph Studio ou consultar os Subgraphs existentes que estão no Graph Explorer. A The Graph amaria recebê-lo para ser Indexador, Curador e/ou Delegator na rede principal da The Graph. Junte-se à comunidade The Graph apresentando-se no Discord da The Graph para discussões técnicas, no chat do Telegram da The Graph e siga a The Graph no Twitter, LinkedIn, Instagram, Facebook, Reddit e Medium! Os desenvolvedores e membros da comunidade da The Graph estão sempre ansiosos para conversar com você, e o ecossistema da The Graph tem uma comunidade crescente de desenvolvedores que se apoiam.

A Graph Foundation supervisiona a rede The Graph. A Graph Foundation é supervisionada pelo Conselho Técnico. Edge & Node, StreamingFast, Figment, Semiotic e The Guild são cinco das muitas organizações dentro do ecossistema The Graph.


Artigo produzido pela The Graph Foundation. Traduzido por Marcelo Panegali.

Top comments (0)