Web 3.0 за допомогою The Graph
www.thegraph.com
Будучі децентралізовані додатки та Web 3 визначатимуть базовий рівень інфраструктури, який їх підтримує. Тож факт, що раньше децентралізований додаток прийшов створювати власну логіку запрошень та створювати сховище для виводу (у блокчейне), сприяючи розвитку таких додатків.
Графік пропонує можливість для розробників децентралізованих додатків швидкого виходу на ринок їх продуктів.
Хоча деякі дані можна легко запросити з блокчейна, наприклад, Ethereum, цей процес обумовлюється, якщо запити стають більш спеціалізованими / деталізованими. У деяких випадках можуть бути застосовані дані про необхідність визначеного рівня перетворення / об'єднання, досягнення якого може зайняти багато часу і бути дорогим за його сути, причому цей процес може повторюватися знову і знову (декількома незалежними групами).
Графік та його сабграфи забезпечують вирішення цієї проблеми.
В основі їх вирішення лежить «Узел Графік».
Графік Узел
https://thegraph.com/docs/introduction#what-the-graph-is
Графік Uzel працює в тандемі з узлом блокчейна (наприклад, Geth, Parity в контексті Ethereum) та надає інформацію, точно виведену з кожного блоку, використовуючи для цього т.н. “Сабграф”.
Так як Google курирує найрелевантніші результати пошуку за даним запрошенням, так і курирування протоколу Graph дозволяє Індексаторам (учасникам, які запускають узли Графік) індексирувати лише найбільш актуальні сабграфи. Однак, від відмови від Google, The Граф нацелен на децентралізацію та курирування буде здійснюватися не центральним органом, а великим числом Кураторів, які (як і їх колеги Індексатори) отримуватимуть знання за свої роли.
Сабграф визначає, які дані Графік буде індексируватися з Ethereum і як їх слід зберігати. Сабграфи можуть бути створені для кожного проекту або додатків (наприклад, Uniswap / Compound), які працюють на блокчейні Ethereum.
Графік опублікований випробувальний набір документації, доступний яким можна отримати з їх веб-сайту (наприклад, маніфест , відображення ).
Запрос до узлу Графік можна надіслати за допомогою кінцевої точки GraphQL.
GraphQL
GraphQL - це мовний запит та обробка даних з відкритим вихідним кодом. Мобільні додатки Facebook працюють на GraphQL з 2012 року.
Кожна специфікація мови GraphQL була відкрита у 2015 році і тепер доступна у багатьох средах та використовується командами різного рівня.
Для отримання даних узел Graph переводить команди GraphQL у запрошення для свого базового зберігання даних. GraphQL абсолютно не залежить від мови програмування, тобто ви можете використовувати GraphQL з будь-яким мовою. Він існує в просторі між вашими клієнтами та джерелами даних, що робить його надзвичайно гнучким.
GraphQL має середню розробку на основі браузера, придатну для вивчення запитів GraphQL. Це відмінний інструмент за написанням запрошень для виведення та перетворення даних. Синтаксис мови відрізняється від SQL тем, що вони більше схожі на об'єкти JavaScript.
Запроси GraphQL швидкі, стабільні та завжди видають попередньо визначені результати
API-інтерфейси GraphQL організовані за типом і полям, де ви можете отримати повний доступ кожному, хто може використовувати ваші дані з єдиної конечної точки (кінцевої точки). GraphQL використовує типи, для того, щоб децентралізовані додатки застосовувались лише для того, щоб можливо отримати або видавати ясні та польові помилки.
Застосовуючи варіанти, можна використовувати типи, щоб уникнути написання синтаксичного аналізу за вручну.
GraphQL створює єдиний API для всього вашого додатка, не обмежуючи конкретний механізм зберігання, залишаючи вам процес, який настільки простий, що може бути описаний як:
Запишіть свої дані
Спросите, що ви хочете
Получите предсказуемые результаты
Використовуємо GraphQL, протокол Graph Protocol вводить поняття «сабграфы».
Сабграфы
Сабграфи забезпечують швидкий час виклику із-за того, що вичислення на необработанних даних блокчейна виконується до запрошення; що дозволяє швидко обслуговувати індексовані дані за замовленням. Подяки попередньому вичисленню та надійній інфраструктурі сабграфів можна виконувати сложні та деталізовані запити (дозволяючи за допомогою необхідності індексирувати певні контракти, методи та події). Вони також надають можливість розпочати індексацію з любою заданою блокою, дозволяючи скоротити час, необхідне для синхронізації та індексації сабграфа.
Опубліковані сабграфи дозволяють будь-якому додатку / користувачу запрашивати вміст, що міститься в них індексовані дані. Таким чином, кілька додатків можуть використовувати один і той же набір сабграфов, скорочуючи час розробників на таких же повторних розробках.
Розробники можуть бути впевненими, що сабграф, до якого вони повертаються, залишаються в Інтернеті в децентралізованій мережі Graph, яка не покладається на одного окремого індексатора.
Сабграфи состоят з трьох основних компонентів, вони включають:
Маніфест - файл (YAML), який визначає смарт-контракти, події, блокування та виклики. Крім того, він також представляє дані про події із спільнотами (сутностями) та теми об'єктів, що містять дані.
Маніфест - відмінне місце для оцінки достовірностей сабграфа, переконавшись у правильності посилань на контракти, правильних обробників подій / визовів (обробників подій / дзвінків) та в тому, що використовуються найновіші файли ABI. Він також представляє представлення про том, як необработанні дані сопоставляються з певним набором сущностей і легко розуміє це сопоставлення.
Схема - файл (GraphQL), який упорядковує дані, що зберігаються у спільнотах, і дозволяє вказати можливість, за допомогою яких дані будуть представлені.
Схема дає представлення про том, навколо повного і полезного сабграфа. Оцінка схем може визначити відсутність наборів даних, хоча це завжди слід розглянути в контексті того, для яких целей створений сабграф.
Зіставлення - файл, який перетворює дані Ethereum нижчого рівня в бажані сутності, вказані у файлах GraphQL Schema.
Для тих, хто знає з мовою зіставлення файлів AssemblyScript, представлене представлення про сложності та полезність сабграфа на основі необоротних даних та того, як вони перетворюються в результаті.
Тепер про том, як може виглядати «сабграф» і де нам його знайти…