Ми запустили курс про використання блокчейн-індексерів!

Ми запустили курс про використання блокчейн-індексерів!

Ми випустили великий освітній курс по роботі з блокчейн-індексерами на Tezos. Він складається з п'яти уроків, у яких ми пояснюємо теорію, наводимо схеми для наочності, а головне — приклади та міні-проєкти, які ми зробили за допомогою TzKT, Que Pasa, DipDup та Dappetizer.

Тут ми коротко розповімо про блокчейн-індексери та навіщо вони потрібні. Якщо хочете ними користуватися, почніть з нашого курсу!

У чому проблема блокчейну як бази даних

Блочкейн — це децентралізована база даних ончейн-операцій. Будь-який користувач може запросити зміст блоку або деталі окремої операції від публічної RPC-ноди, яка зберігає свою копію блокчейна.

Однак блокчейн та програмне забезпечення ноди не призначені для швидкого та ефективного пошуку. Покажемо це на прикладі: спробуємо отримати від RPC-ноди подробиці транзакції tez з хешем op…SL.

Команда для запиту подробиць буде виглядати не як “GET BY HASH” чи типу того, а так:

tezos-client rpc get /chains/main/blocks/2283698/operations/3/2

В Tezos RPC API нема команди для пошуку операції. Щоб отримати з блокчейну її деталі, потрібно точно знати, де вони зберігаються: в блоці 2283698, серед операцій ініційованих користувачами (індекс 3) під id 2. І подібні труднощі виникають з пошуком великої кількості даних.

Що роблять блокчейн-індексери

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

Наприклад, пошук тієї ж транзакції по хешу в індексері TzKT буде виглядати як запит до таблиці operations:

https://reserve-2.tzkt.io/v1/operations/opRjkzJxJ1xZaUnBDykGUjrRV8qgHFvchcYnbkkcotS1Y7idCSL

А в TzStats — як запит до таблиці explorer/op:

https://api.tzstats.com/explorer/op/opRjkzJxJ1xZaUnBDykGUjrRV8qgHFvchcYnbkkcotS1Y7idCSL

Завдяки індексерам, їх структурованим базам даних та індексам у нас є блокчейн-оглядачі TzKT, TzStats і багато іншого.

Усі децентралізовані додатки, включаючи гаманці, використовують у роботі індексери. Наприклад, Temple Wallet отримує дані про баланси токенів та NFT від індексера TzKT.

Ми докладно розповіли про індексери у першому уроці.

Які індексери є на Tezos

Існує два типи блокчейн-індексерів: повні та селективні.

Повні записують у свою базу даних весь вміст блоків і створюють йому індекси. З їхньою допомогою можна знайти будь-які ончейн-дані, від списку бейкерів, які проголосували за активацію Lima, до газу, який витратили Kolibri Finance при публікації смарт-контракту kUSD. До повних індексів відносяться TzKT та TzStats.

Селективні індексери зчитують нові блоки, але записують у базу даних лише ті операції, на які вкаже користувач. У Tezos є три популярні:

  • Que Pasa — простий індексер, який записує в базу даних вміст сховища зазначеного контракту, виклики точок входу та їх параметри;
  • DipDup — фреймворк для створення селективних індексерів на Python. Користувач повинен написати правила індексування обраного контракту: які точки входу індексувати, які параметри записувати до бази даних та за якими правилами;
  • Dappetizer — фреймворк для створення селективних індексерів на JavaScript/TypeScript. Для роботи з ним також потрібно самостійно описати логіку індексування, але, крім операцій зі смарт-контрактами, він може записувати будь-які інші операції в блоках.

Детально про різні типи індексерів та їх можливості ми розповідаємо у другому уроці.

Як користуватись блокчейн-індексерами

Щоб зробити свій перший dApp необов’язково вивчати розробку смарт-контрактів (хоча це цікаво). Потрібно лише знати, що таке сховище і точки входу, а також трохи розбиратися в бекенд-розробці.

У третьому уроці ми показуємо, як за допомогою HTML, AJAX запитів до TzKT та базових знань JavaScript зробити дашборд для відображення статистики бейкінгу ліквідності.

Але краще не використовувати TzKT API у продакшені, щоб не перевантажувати публічний індексер запитами. Тому в четвертому уроці ми вже хостимо Que Pasa на локальній машині та робимо складніший проєкт.

Ми індексуємо контракт сервісу для позик під заставу NFT Signum.loans, відображаємо дані про позики та генеруємо посилання на відповідні NFT на objkt.com. Крім Que Pasa ми пояснюємо основи роботи з PostgreSQL, підіймаємо PHP-сервер та ігноруємо існування CSS.

А в останньому уроці показуємо, як налаштувати DipDup та Dappetizer для індексування контракту tzBTC. Писати логіку обробки даних складно, але результат того вартий — наприкінці ми одним SQL-запитом порахували обсяг усіх транзакцій tzBTC.

У результаті

Якщо ви хочете відображати або використовувати ончейн-дані в додатку, вам потрібен індексер. Наш курс допоможе вибрати відповідне рішення під завдання та дасть розуміння, як ним користуватися.

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

наступний

Три кейси для роллапів: ф’ючерси, ігри та кроссчейн-свопи

Читайте схожі пости

Що таке мета-транзакції без транзакційних комісій?

Що таке мета-транзакції без транзакційних комісій?

Дорога до 1 000 000 TPS: історія оновлень Tezos

Дорога до 1 000 000 TPS: історія оновлень Tezos

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Читайте блог і не пропускайте новини про TezosЧитати блог

Спільнота