Введение в The Graph. Индексные данные для dApps

6

Инфраструктура большинства децентрализованных приложений Ethereum состоит из двух частей (простая версия):

  • Внешний интерфейс (запускается в браузере)
  • Узел Ethereum (интерфейс с сетью ETH)

Когда транзакция происходит в Ethereum, он генерирует события. Внешний интерфейс отслеживает эти события и соответствующим образом обновляет пользовательский интерфейс. dApps могут выполнять ограниченные типы запросов к узлу Ethereum для отображения данных во внешнем интерфейсе.

Но dApps не могут жить только с транзакциями, событиями и этими минимальными запросами. Для обеспечения полноценного взаимодействия с пользователем приложение dApp должно обрабатывать как минимум свои собственные данные, отображать действия конкретного пользователя, создавать профиль пользователя, отображать аналитику и включать несколько функций … Как мы можем сделать все это сейчас?

Ряд команд разработчиков dApp делают это, создавая свои собственные индивидуальные решения — очищая данные блокчейна, отслеживая события, транзакции и сохраняя их в традиционной централизованной базе данных. Но мы же хотим минимизировать доверие к web3, верно?

Резюмируя проблему –

«DApps нуждаются в индексированных данных для выполнения крупномасштабных запросов, чтобы обеспечить полноценное взаимодействие с пользователем с минимальным доверием»

The Graph.

Что такое The Graph?

Команда Graph решает эту проблему, создавая децентрализованный протокол, который будет задействован узлами Graph, обрабатывающими события Ethereum и сохраняющими их в виде индексированных данных, которые dApps могут запрашивать через конечную точку API.

Протокол Graph попадает в категорию, которую мы называем решением для масштабирования чтения уровня 2 . Его цель состоит в том, чтобы позволить децентрализованным приложениям (dApps) эффективно и без доверия запрашивать данные общедоступной цепочки блоков через службу, которая, подобно блокчейнам и самому Интернету, работает как общественная утилита. Это делается в интересах сведения к минимуму роли хрупкой централизованной инфраструктуры, наблюдаемой сегодня во многих «децентрализованных» архитектурах приложений. — Спецификация протокола графика

Эти индексы («подграфы») в настоящее время размещаются командой Graph. Но в будущем эти индексы будут жить в полностью децентрализованной сети Graph узлов.

Как работает The Graph?

Давайте копнем глубже и поймем, как на самом деле работает The Graph:

  • dApps (через свои смарт-контракты) создают транзакции Ethereum, которые генерируют события.
  • Графические узлы сканируют каждый блок Ethereum в поисках событий.
  • Узлы графа находят события для вашего подграфа в блоках Ethereum и запускают предоставленные вами обработчики сопоставлений. Это сопоставление определяет, как данные будут храниться и обновляться в узлах графиков.
  • Ваше dApp может запрашивать эти данные через API GraphQL, которые переводятся узлами Graph для получения индексированных данных.