The Graph — протокол индексации для организации и эффективного доступа к данным

0
13

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

Что такое The Graph и как он работает

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

По факту The Graph демонстрирует индексирование информационных данных из Ethereum, POA и IPFS. Всего существуют 1700 подграфов для Balancer, Synthetix, Uniswap, Aragon, Livepeer, Gnosis, DAOstack, Decentraland, AAVE.

Хостинговая платформа Graph’s передает более 1 миллиарда запросов в месяц через субграфы, открытые API, которые любой желающий может запросить с помощью GraphQL. Как только Graph Network запустится, к нему будут обращаться разработчики приложений, управлять им будут индексаторы и кураторы.

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

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

Один субграф может индексировать данные из нескольких контрактов.

Триггеры для источника данных в пределах блока упорядочиваются с помощью следующего процесса:

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

Блочные триггеры запускаются после триггеров события и вызова в манифестированном порядке.

Подробнее о работе сети:

The Graph Network In Depth (Часть 1). The Graph Network In Depth (Часть 2).

Получение Abi

Файлы должны соответствовать контракту. Есть несколько способов получить ABI-файлы:

Если вы строите свой собственный проект, то у вас будет доступ к вашим самым последним ABI.

Если вы собираете подграф для публичного проекта, вы можете загрузить этот проект на свой компьютер и получить ABI, используя компиляцию truffle или используя solc для компиляции.

Вы также можете найти ABI на Etherscan, но это не всегда надёжно, так как ABI, загруженный туда, может быть устаревшим. Убедитесь, что у вас есть правильный ABI, иначе запуск вашего субграфа будет неудачным.

Схема GraphQL

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

Определение Элементов

Прежде чем определять сущности, важно сделать шаг назад и подумать о том, как структурированы и связаны ваши данные. Все запросы будут делаться против модели данных, определенной в схеме подграфа, и сущностей, проиндексированных подграфом. Поэтому хорошо определить схему субграфа таким образом, чтобы она соответствовала потребностям вашего dApp. Может быть полезно представить сущности как «объекты, содержащие данные», а не как события или функции.

С помощью The Graph вы просто определяете типы сущностей в schema.graphql, а Graph Node будет генерировать поля верхнего уровня для запроса отдельных экземпляров и коллекций этого типа сущностей. Каждый тип, который должен быть сущностью, должен быть аннотирован директивой @entity.

Операторы узлов, заинтересованные в том, чтобы быть индексаторами в тестируемой сети, помогут в проверке экономического дизайна, тестировании безопасности, пропускной способности сети, работы Индексатора и Куратора в протоколе.

Роли протокола

Роли для взаимодействия с системой для правильного функционирования системы индексирования.

Все роли:

потребители; индексаторы; кураторы; делегаты; «рыбаки» (fisherman); арбитры.

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

Индексаторы — это узловые операторы, которые мотивированы зарабатывать финансовые награды.

Кураторы применяют GRT для сигнала о том, какие субграфы ценны для индексирования. Обычно это разработчики или конечные пользователи, поддерживающие услугу по финансовыми соображениями.

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

«Рыбаки» обеспечивают безопасность работы и проверяют точность откликов на запросы.

Арбитры определяют, следует ли сокращать индексаторы во время разрешения споров. Арбитры в основном мотивированы альтруистично.

Применение

Разработчикам без разницы, по факту API для создания субграфа останутся такими же, как для локального и хостируемого Graph Node.

Разработчикам

Способы размещения субграфов совсем иные, нежели у пользователей. Вместо того, чтобы запускать процесс обработки в локальном графическом узле, разработчики способны активировать субграф в реестре Ethereum и депонировать часть в GRT. Таким образом поступает сигнал о том, что субграф должен быть проиндексирован.

Конечным пользователям

Основная разница заключается в том, что конечным пользователям необходимо платить за работу с запросом децентрализованной системы индексаторов, не за взаимодействие с субсидирующимися API. Реализация происходит через инструмент обработки запросов, действующий на платформе — в веб-браузере или с помощью специального расширения.

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

Индексаторы

Индексаторы могут в любое время подключиться к платформе, установив GRT с помощью Graph Node. Можно активировать агента-индексатора, который автоматически регулирует применение данных. Агент определяет ценовую политику и занимается индексированием подграфов.

Операторы узлов экспериментируют с моделями, методами ценообразования для получения преимущества на рынке, чтобы вывести из конкуренции другие индексаторы.

Почему стоит выбрать The Graph

The Graph обладает неоспоримыми преимуществами, которые уже оценили пользователи. Протокол для поисковых запросов к IPFS, Etherum нужно выбирать, чтобы упростить работу с данными.

Стабильность

Одно из базовых преимуществ протокола. Графическая сеть децентрализует уровень запросов и API Web3, избавляясь от проблемы создателей dApp, касающейся создания производительных или децентрализованных приложений.

Специалисты могут запускать графический узел на своей инфраструктуре, или же строить на хостинговом сервисе. Разработчики программируют субграфы, где подробно указано, как принимать и индексировать информацию из источников Web3. Ведущие проекты Ethereum: Moloch, Uniswap, DAOstack, ENS, Synthetix уже построили субграфы. В графической сети индексатор может ставить графические токены для участия в сети и зарабатывать комиссионные и инфляционные награды за работу с поисковыми запросами.

Надежность

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

Быстрая обработка данных

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

Многообразие возможностей

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

Оптимизированное внедрение кошелька сервера становится открытым и доступным для всех пользователей. Это приводит к достижению прогресса в организации быстрого доступа к информации.

Протокол и реализация с открытым исходным кодом

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

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

Определение подграфа — это первый шаг к использованию Graph. Подграфы для популярных протоколов и dApps уже используются, можно просматривать с помощью Graph Explorer, который предоставляет пользовательский интерфейс для выполнения запросов GraphQL к конкретным смарт-контрактам или dApps.

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

Полезные ссылки:

Руководство на официальном сайте. Страница The Graph на Medium. Раздел протокола на Reddit. Гитбук на русском языке.

Источник

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here

5 × 5 =