Docs
Buscar⌘ K
  • Início
  • Sobre o The Graph
  • Redes Apoiadas
  • Contratos de Protocolo
  • Subgraphs
    • Substreams
      • Token API
        • Indexação
          • Recursos

            4 minutos

            Sobre o The Graph

            O que é o The Graph?

            O The Graph é um protocolo descentralizado poderoso que permite a consulta e indexação rápida de dados em blockchain. Ele simplifica o processo complexo de queries de dados de blockchain, o que facilita e acelera a programação de dApps.

            Entenda o Básico

            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.

            Desafios sem o The Graph

            No caso do exemplo listado acima, o Bored Ape Yacht Club, é possível realizar operações básicas no contrato⁠. Pode-se ver o dono de um certo Ape, ler a URI de um Ape com base na sua ID, ou ler a reserva total.

            • Isto pode ser feito porque estas operações de leitura são programadas diretamente no próprio contrato inteligente. Porém, queries e operações mais avançadas e específicas do mundo real, como agregação, busca, relacionamentos e filtros não triviais, não são possíveis.

            • Por exemplo, se alguém quisesse ver Apes em posse de um endereço específico e refinar a sua busca com base numa característica particular, não seria possível obter aquela informação ao interagir diretamente com o próprio contrato.

            • Para conseguir mais 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.

            Por que isto é um problema?

            Levariam horas, ou até mesmo dias, para que um aplicativo descentralizado (dApp) executado em um navegador conseguisse uma resposta a estas questões simples.

            Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is resource intensive, needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization.

            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 dificultam conceitualmente a retirada de resultados precisos de queries dos dados da blockchain.

            The Graph Providencia uma Solução

            The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed “Subgraphs”) can then be queried with a standard GraphQL API.

            Hoje, há um protocolo descentralizado apoiado pela implementação de código aberto do Graph Node⁠ que facilita este processo.

            Como o The Graph Funciona

            Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL.

            Especificações

            • The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph.

            • The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database.

            • When creating a Subgraph, you need to write a Subgraph manifest.

            • After writing the subgraph manifest, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph.

            The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions.

            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. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain.
            4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events.
            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

            The following sections provide a more in-depth look at Subgraphs, their deployment and data querying.

            Before you write your own Subgraph, it’s recommended to explore Graph Explorer and review some of the already deployed Subgraphs. Each Subgraph’s page includes a GraphQL playground, allowing you to query its data.

            ⁠Editar no GitHub⁠

            InícioRedes Apoiadas
            Nesta página
            • O que é o The Graph?
            • Entenda o Básico
            • Desafios sem o The Graph
            • Por que isto é um problema?
            • The Graph Providencia uma Solução
            • Como o The Graph Funciona
            • Próximos Passos
            The GraphStatusRede de TestesAtivos de MarcaFórumSegurançaPolítica de PrivacidadeAcordo de Serviço