О The Graph

Reading time: 4 min

Что такое Graph?

Ссылка на этот раздел

The Graph — это мощный децентрализованный протокол, который позволяет беспрепятственно запрашивать и индексировать данные блокчейна. Это упрощает сложный процесс запроса данных блокчейна, ускоряя и упрощая разработку децентрализованных приложений.

Понимание основ

Ссылка на этот раздел

Проекты со сложными смарт-контрактами, такие как Uniswap, и инициативы по созданию NFT, подобные Bored Ape Yacht Club, хранят данные в блокчейне Ethereum, что делает практически невозможным непосредственное чтение чего-либо, кроме базовых данных, из блокчейна.

Сложности, которые могут возникнуть без использования The Graph

Ссылка на этот раздел

В приведенном выше примере, Bored Ape Yacht Club, Вы можете выполнять базовые операции чтения контракта. Вы можете узнать владельца определенного Ape, прочитать URI контента Ape на основе его идентификатора или узнать общее предложение.

Почему это является проблемой?

Ссылка на этот раздел

Децентрализованному приложению (dapp), запущенному в браузере, потребуются часы или даже дни, чтобы получить ответ на эти простые вопросы.

В качестве альтернативы у Вас есть возможность настроить собственный сервер, обрабатывать транзакции, хранить их в базе данных и создать конечную точку API для запроса данных. Однако этот вариант ресурсоемок, требует обслуживания, представляет собой единственную возможную причину сбоя и нарушает важные свойства безопасности, необходимые для децентрализации.

Такие свойства блокчейна, как окончательность, реорганизация чейна и необработанные блоки, усложняют процесс, делая получение точных результатов запроса из данных блокчейна трудоемким и концептуально сложным.

The Graph предлагает решение

Ссылка на этот раздел

The Graph решает эту проблему с помощью децентрализованного протокола, который индексирует и обеспечивает эффективный и высокопроизводительный запрос данных блокчейна. Эти API (индексированные «субграфы») затем могут быть запрошены с помощью стандартного API GraphQL.

Сегодня существует децентрализованный протокол, поддерживаемый реализацией с открытым исходным кодом Graph Node, который обеспечивает этот процесс.

Как функционирует The Graph

Ссылка на этот раздел

Индексирование данных блокчейна очень сложный процесс, но The Graph упрощает его. The Graph учится индексировать данные Ethereum с помощью субграфов. Субграфы — это пользовательские API, построенные на данных блокчейна, которые извлекают данные из блокчейна, обрабатывают их и сохраняют так, чтобы их можно было легко запрашивать через GraphQL.

Специфические особенности

Ссылка на этот раздел
  • В The Graph используются описания субграфов, которые называются манифестами субграфов внутри субграфа.

  • В описании субграфа описываются смарт-контракты, представляющие интерес для субграфа, события в этих контрактах, на которых следует сосредоточиться, а также способы сопоставления данных о событиях с данными, которые The Graph будет хранить в своей базе данных.

  • При создании субграфа Вам необходимо написать манифест субграфа.

  • После написания манифеста субграфа Вы можете использовать Graph CLI для сохранения определения в IPFS и дать команду индексатору начать индексирование данных для этого субграфа.

На диаграмме ниже представлена ​​более подробная информация о потоке данных после развертывания манифеста субграфа с транзакциями Ethereum.

График, объясняющий потребителям данных, как The Graph использует Graph Node для обслуживания запросов

Данные проходят следующий путь:

  1. Dapp добавляет данные в Ethereum через транзакцию в смарт-контракте.
  2. Смарт-контракт генерирует одно или несколько событий во время обработки транзакции.
  3. Graph Node постоянно сканирует Ethereum на наличие новых блоков и данных для Вашего субграфа, которые они могут содержать.
  4. The Graph нода затем разбирает события, относящиеся к Вашему субграфу, которые записаны в данном блоке и структурирует их согласно схеме данных описанной в subgraph используя модуль WASM. Затем данные сохраняются в таблицы базы данных Graph Node.
  5. Dapp запрашивает у Graph Node данные, проиндексированные с блокчейна, используя конечную точку GraphQL ноды. В свою очередь, Graph Node переводит запросы GraphQL в запросы к его базовому хранилищу данных, чтобы получить эти данные, используя возможности индексации этого хранилища. Dapp отображает эти данные в насыщенном пользовательском интерфейсе для конечных пользователей, который они используют для создания новых транзакций в Ethereum. Цикл повторяется.

В следующих разделах более подробно рассматриваются субграфы, их развертывание и запросы данных.

Прежде чем писать собственный субграф, рекомендуется ознакомиться с Graph Explorer и изучить некоторые из уже развернутых субграфов. Страница каждого субграфа включает в себя тестовую площадку GraphQL, позволяющую запрашивать его данные.

Редактировать страницу

Предыдущий
Начнем
Следующий
Поддерживаемые сети
Редактировать страницу