Sobre o The Graph

Reading time: 4 min

Esta página explicará o que é o The Graph e como pode começar.

O que é o The Graph?

Link para esta seção

O The Graph é um protocolo descentralizado para indexação e queries de dados de blockchains. O The Graph possibilita a consulta de dados que são difíceis de consultar diretamente.

Projetos com contratos inteligentes complexos, como o Uniswap e iniciativas de NFTs como o Bored Ape Yacht Club, armazenam dados na blockchain Ethereum, o que torna muito difícil ler qualquer coisa que não seja dados básicos diretamente da blockchain.

No caso do Bored Ape Yacht Club, podemos realizar operações básicas de leitura no contrato, como buscar o dono de um certo Ape, buscar a URI de conteúdo de um Ape com base na sua ID, ou na reserva total. Isto é possível porque estas operações de leitura são programadas diretamente no contrato inteligente, mas consultas e operações no mundo real mais avançadas, como agregação, busca, relacionamentos, e filtragem não-trivial não são possíveis. Por exemplo, se quiséssemos consultar por Apes que são de um certo endereço, e filtrar por uma das suas características, nós não poderíamos pegar essa informação ao interagir diretamente com o próprio contrato.

Para conseguir estes dados, seria necessário processar todo evento de transfer emitido na história, ler os metadados do IPFS usando a ID e o hash IPFS do token, e depois agregá-los. Levariam horas, ou até mesmo dias, para que um aplicativo descentralizado (dApp) executado em um navegador conseguisse uma resposta a estas questões simples.

Também valeria construir o seu próprio servidor, processar as transações lá, salvá-las em um banco de dados, e construir um endpoint de API sobre tudo isso tudo para poder fazer o query dos dados. Porém, esta opção consome muitos recursos, precisa de manutenção, apresenta um único ponto de falha, e quebra propriedades de segurança importantes obrigatórias para a descentralização.

Indexar dados de blockchain é muito, muito difícil.

Propriedades de blockchain, como finalidade, reorganizações de chain, ou blocos uncle, complicam ainda mais este processo, e não apenas o tornam longo e cansativo, mas conceitualmente dificultam a retirada de resultados corretos de queries dos dados da blockchain.

O The Graph fornece uma solução com um protocolo descentralizado que indexa e permite queries eficientes e de alto desempenho de dados de blockchain. Estas APIs ("subgraphs" indexados) podem então ser consultados num query com uma API GraphQL padrão. Hoje, há um serviço hospedado, e também um protocolo descentralizado com as mesmas capabilidades. Ambos são apoiados pela implementação de código aberto do Graph Node.

Como o The Graph Funciona

Link para esta seção

O The Graph aprende quais dados indexar, e como indexar os dados na Ethereum com base em descrições de subgraph — conhecidas como manifests de subgraph. A descrição do subgraph define os contratos inteligentes de interesse para o mesmo, os eventos nestes contratos para prestar atenção, e como mapear dados de evento para dados que o The Graph armazenará no seu banco de dados.

Quando tiver escrito um subgraph manifest, use o Graph CLI para armazenar a definição no IPFS e mandar o indexador começar a indexar dados para o subgraph.

Este diagrama dá mais detalhes sobre o fluxo de dados quando um manifest de subgraph for lançado, na questão de transações na Ethereum:

Um gráfico que explica como o The Graph utiliza Graph Nodes para servir queries para consumidores de dados

O fluxo segue estes passos:

  1. Um dApp adiciona dados à Ethereum através de uma transação em contrato inteligente.
  2. O contrato inteligente emite um ou mais eventos enquanto processa a transação.
  3. O Graph Node escaneia continuamente a Ethereum por novos blocos e os dados que podem conter para o seu subgraph.
  4. O Graph Node encontra eventos na Ethereum para o seu subgraph nestes blocos e executa os handlers de mapeamento que forneceu. O mapeamento é um módulo WASM que cria ou atualiza as entidades de dados que o Graph Node armazena em resposta a eventos na Ethereum.
  5. O dApp consulta o Graph Node para dados indexados da blockchain, através do endpoint GraphQL do node. O Graph Node, por sua vez, traduz os queries GraphQL em queries para o seu armazenamento subjacente de dados para poder retirar estes dados, com o uso das capacidades de indexação do armazenamento. O dApp exibe estes dados em uma interface rica para utilizadores finais, que eles usam para emitir novas transações na Ethereum. E o ciclo se repete.

Próximos Passos

Link para esta seção

As seguintes secções explicam em mais detalhes como definir subgraphs, como lançá-los, e como buscar dados dos indexes que o Graph Node constrói.

Antes de começar a escrever o seu próprio subgraph, confira o Graph Explorer e explore alguns dos subgraphs que já foram lançados. A página para cada subgraph contém um playground que permite-lhe consultar os dados desse subgraph com queries no GraphQL.

Editar página

Anterior
Como Começar
Próximo
Overview
Editar página