О проекте The Graph
Last updated
Last updated
The Graph Protocol - это протокол индексации запросов к сетям, таким как Ethereum и IPFS. Любой может создавать и публиковать открытые API, называемые подграфами (subgraphs), с помощью них можно запросить данные, которые трудно получить напрямую из блокчейна.
С момента запуска в январе 2019 года The Graph расширился и теперь поддерживает многие ведущие протоколы DeFi, включая Synthetix, Uniswap, Aave, Balancer, Aragon и другие. Все эти DeFi-протоколы запрашивают данные из подграфов, такие как торговые операции, ликвидность на DEX площадках и многое другое. Другими словами, The Graph действует как критически важный компонент промежуточного программного обеспечения для того, чтобы сделать данные более удобными для приложений DeFi. До появления The Graph командам приходилось разрабатывать и эксплуатировать проприетарные серверы индексирования. Это требовало значительных инженерных и аппаратных ресурсов и нарушало важные свойства безопасности, необходимые для децентрализации.
Давайте рассмотрим, для чего нужен The Graph на конкретном примере. Например, к популярному приложению CryptoKitties относительно просто задать следующие вопросы:
Сколько CryptoKitties принадлежит конкретной учетной записи Ethereum?
Когда родился конкретный CryptoKitty?
Это связано с тем, что чтение этих данных напрямую поддерживается методами balanceOf
и getKitty
, предоставляемым контрактом.
Однако, на другие вопросы ответить сложнее:
Кто являются владельцами CryptoKitties, рожденных в период с января по февраль 2018 года?
Чтобы ответить на этот вопрос, вы должны обработать все Birth
события, а затем вызвать ownerOf
метод для каждого созданного CryptoKitty.
Даже на этот относительно простой вопрос децентрализованному приложению (dApp), работающему в браузере, потребуются часы или даже дни, чтобы получить ответ. Индексировать данные блокчейна сложно. Свойства блокчейна, такие как finality, chain reorganizations или uncled blocks еще больше усложняют этот процесс и делают не только трудоемким, но и концептуально сложным получение правильных результатов запроса из блокчейна.
Сегодня Graph решает эту проблему с помощью сервиса, который индексирует данные блокчейна. Затем эти индексы («подграфы») можно запросить с помощью стандартного API GraphQL. В будущем размещенный сервис превратится в полностью децентрализованный протокол с теми же возможностями. Оба они поддерживаются реализацией Graph Node с открытым исходным кодом.
Если для вас это объяснение было непонятным, прочитайте небольшую статью "Простыми словами о The Graph".
Более подробно с техническими аспектами можно ознакомиться в официальной документации. В следующих материалах мы более подробно разберем структуру The Graph, постараясь не вдаваться сильно в технические моменты.
Сайт: https://thegraph.com/
Github: https://github.com/graphprotocol
Discord: https://discord.gg/vtvv7FP
Telegram: http://t.me/graphprotocol
Twitter: https://twitter.com/graphprotocol