Introdução à avaliação de subgrafos no ecossistema TheGraph Blockchain

Alexandra Yanina
6 min readNov 19, 2020

--

(German Version available at anyblockanalytics.com , Turkish Version on medium, translation of the blogpost from

to portuguese)

Este artigo é dirigido a os curadores do Protocolo TheGraph. TheGraph é um Protocolo de indexação para consultar dados na rede Ethereum. Todo desenvolvedor é capaz de criar e publicar APIs abertas e assim tornar os dados disponíveis aos usuários de forma fácil e econômica. Estas APIs abertas são chamadas de “subgrafos”. No entanto, isto levanta a questão apropriada:

Quais são os subgrafos que merecem ser indexados e utilizados pelos usuários? E quem pode ajudar a tornar os subgrafos especiais acessíveis?

A resposta a esta pergunta é o trabalho dos curadores. Os curadores usam GRT Token para indicar quais subgrafos são adequados para indexação.

Uma descrição detalhada dos diferentes papéis e funções na rede TheGraph pode ser encontrada neste post inglês do blog. Os curadores podem ganhar dinheiro sinalizando em subgrafos que se tornam valiosos para a rede (para mais informações sobre TheGraph Economy esta entrada no blog é útil).

A seguir são apresentadas as etapas necessárias para avaliar um subgráfico quanto à sua qualidade. Primeiramente, são explicados os critérios de qualidade relevantes.

Critérios de qualidade para a avaliação dos subgrafos

Os critérios de avaliação mais importantes para um subgráfico na rede TheGraph são completude, complexidade e isenção de erros.

Completar significa verificar se todos os dados relevantes para o propósito de uso estão cobertos. Faltam dados importantes ou eles não estão disponíveis para todos os pontos relevantes no tempo ou objetos? Todos os dados brutos estão listados no subgráfico? A completude também pode significar que informações adicionais estão disponíveis no subgrafo. Os dados são extraídos através da rede Ethereum para os respectivos Contratos Inteligentes com base em um manifesto definido. Estes dados são memorizados no modelo de dados usando um esquema e o respectivo mapeamento para as entidades desejadas.

No entanto, além dos dados que são diretamente explorados através do Blockchain e meramente “copiados” e convertidos em uma forma legível, os dados também podem ser agregados, por exemplo. Essas agregações no subgráfico poderiam trazer métricas e informações interessantes.

A complexidade de um subgráfico depende em grande parte dos Smart Contracts nos quais os subgráficos se baseiam. Algun, os Smart Contracts têm algumas linhas de Solidity-Code outros Smart Contracts e estendem por milhares de linhas de código e vários Smart Contracts. Para criar um subgráfico significativo é, portanto, essencial compreender o Solidity-Code. A complexidade também pode surgir no mapeamento e no esquema fornecendo informações adicionais, por exemplo, através de agregações ou do compartilhamento de vários contratos inteligentes em um subgrafo.

A precisão (“Accuracy”) também é essencial para um subgráfico valioso. Se um subgráfico fornece dados, mas estes não são válidos ou livres de erros, então este subgráfico não serve a nenhum propósito, mas no pior dos casos causa danos através de desinformação ou pelo menos confusão.Podem ocorrer erros se valores incorretos forem atribuídos no mapeamento, ou se cálculos ou agrupamentos incorretos forem realizados durante as agregações.

Procedimento como curador de subgrafos no TheGraph

Como curador, é essencial fazer perguntas a si mesmo: “Quais são os dados que poderiam interessar os usuários deste subgrafo?”, e “O que você quer que os dados digam”?. A função dos curadores é trazer o máximo de dados valiosos possível para a rede TheGraph e organizá-los. Eles podem atingir este objetivo valorizando os subgrafos através da sinalização e, assim, tornando-os mais visíveis. Outros critérios para a avaliação são:

  • Faltam dados importantes/relevantes?
  • Os dados são exatos?
  • Que mudanças devem ser feitas no subgráfico para que ele melhore?
  • O subgráfico é fácil de entender?
  • Pode ser gerado valor por subgráficos adicionais? Assim, o subgráfico Uniswap cumpre o propósito de visualizar os dados históricos e permitir a análise. Este subgrafo no site info.uniswap.org também é utilizado para este propósito. O subgráfico da Uniswap é complexo e detalhado. Entretanto, estes dados poderiam ser desinteressantes para outro propósito.Desta forma, você poderia criar um subgráfico mais fino que trata apenas dos dados de preços dos tokens. Isto seria mais simples, mais fácil de entender e menos propenso a erros.

Para avaliar um subgráfico, são necessárias algumas etapas:

  • Em seguida, você pode visualizar as diferentes entidades no Playground do subgrafo e testar consultas simples. Muitas vezes algumas consultas de amostra já estão disponíveis. Assim, você pode ter uma idéia dos dados e das possibilidades e limitações. Além disso, você pode ver quais entidades estão disponíveis com quais atributos.
  • Se houver um link para o repositório github, você pode obter mais informações sobre ele. Muitas vezes um ReadMe está disponível, o que dá mais informações sobre o subgrafo. (link Github)
  • Uma fonte importante para entender a funcionalidade do subgrafo é o Manifesto do Subgrafo. Este arquivo oferece informações sobre quais funções ou eventos a partir dos quais Smart Contracts (endereços Ethereum) devem ser incluídos no subgrafo. Esta é a descrição dos dados brutos que estão disponíveis no Ethereum-Blockchain. Estes dados devem ser obtidos com a ajuda do manifesto. Muitas vezes, o manifesto do subgrafo já mostra quais eventos devem ser buscados.
  • O esquema GraphQL é a descrição do modelo de dados para o subgráfico. No final, os dados devem estar disponíveis da forma descrita no esquema. Este arquivo é fácil de ler e não requer nenhum conhecimento de programação. Aqui, as diferentes entidades são descritas com seus atributos. Isto permite que você tenha uma idéia do escopo dos dados do subgrafo.
  • Para aqueles que estão familiarizados com Typescript ou programação, é útil dar uma olhada no mapeamento (factory.ts, mapping.ts). O mapeamento descreve como os dados brutos são transformados do manifesto do subgrafo na forma descrita pelo esquema. Aqui os dados são atribuídos às entidades. Dependendo do Contrato Smart, o mapeamento pode ser mais complexo. Quaisquer agregações também são definidas no mapeamento, se houver alguma. Vale a pena dar uma olhada no mapeamento de um subgráfico para obter uma compreensão mais profunda.

Conclusão sobre a avaliação dos subgráficos no ecossistema TheGraph Blockchain

Com base nas etapas aqui mencionadas, é possível obter uma maior compreensão de como funciona um subgráfico, bem como do escopo de suas funções. Os curadores que querem entender e avaliar um subgráfico devem pelo menos olhar para o manifesto e o esquema. No entanto, vale sempre a pena olhar para o mapeamento. O mapeamento também pode mostrar possíveis erros e bugs na atribuição dos dados. Muitas vezes os repositórios github dos subgrafos não são especificados no TheGraph Explorer. Neste caso, você tem que procurá-los com um mecanismo de busca. Entretanto, o manifesto do subgrafo sempre pode ser acessado pela identificação de um subgrafo (que é sempre exibida no explorador).

Para acessar o manifesto, o link: https://ipfs.io/ipfs/SUBGRAPH-ID deve ser acessado. Neste caso, seria a ligação:

https://ipfs.io/ipfs/QmRCC3YcpiMPWyrRNDYjWar1dFfPs7T7yEqAuNppTRvHch

Espero que este pequeno artigo no blog possa ajudar alguns curadores no futuro a avaliar os subgrafos. Uma avaliação útil dos subgrafos leva muito tempo e algum esforço. Você deve aproveitar este tempo, pois como curador você oferece um suporte valioso para a rede, usuários, indexadores e também para os desenvolvedores de subgrafos, e você pode obter lucros monetários fazendo um trabalho de alta qualidade.

--

--

Alexandra Yanina

Data Scientist, Working on predicting deforestation in the brazilian amazon with deep learning methods