June 29, 2022

Індексування для dApps нового покоління.Розгортання FireSquid

Це офіційно! Після кількох місяців розробки ми з гордістю повідомляємо про початок розгортання FireSquid. Якщо ви ще не чули про це, це найважливіше оновлення продукту Subsquid з моменту запуску проекту.

Ми очікуємо, що цей реліз виведе наш технологічний стек ще далі порівняно із конкурентами. У той час як наша документація в даний час оновлюється, щоб включити все, що розробникам необхідно знати про FireSquid, ми хотіли б приділити трохи часу та надати нашій спільноті короткий огляд нових можливостей.


Основні моменти випуску FireSquid

  • Швидка синхронізація → 10–50 тисяч блоків за секунду
  • Архіви з низькими потребами в обслуговуванні → в 10 разів дешевше в обслуговуванні
  • Оновлені інтерфейси GraphQL → Швидкі та ефективніші API
  • Зрозумілі для сприйняття дані → SQL-подібний досвід приходить до Web3


Що таке FireSquid?

FireSquid - це парасольковий реліз стека Subsquid, що включає значні покращення в Archives, Squid Processor SDK і Squid CLI. Найбільш цікавою частиною релізу FireSquid є впровадження BatchProcessor у SDK Squid. Це дозволяє прискорити синхронізацію на багато порядків: типова швидкість становить 10-50 тисяч блоків за секунду.

Такий прорив у швидкості синхронізації стався завдяки новому способу обробки даних у ланцюжку процесорами Squid: Замість того, щоб обробляти події та виклики по одному, Squid по суті перетворює вектор даних про події та виклики як єдине ціле.Ця зміна не відрізняється від того, як векторно-оптимізовані алгоритми GPU призвели до зміни парадигми у глибокому навчанні та майнінгу криптовалют.

Подальші поліпшення відбуваються завдяки повному набору оптимізації того, як дані упаковуються та витягуються з архіву, що ще більше заощаджує пропускну здатність та збільшує швидкість обробки.

Нові архіви

Архіви FireSquid, як і їхні попередники, приймають та архівують необроблені дані на ланцюжку. Однак, у порівнянні з v5, ці нові архіви працюють як мінімум у 5 разів швидше та в 10 разів дешевше в обслуговуванні. Справді, це продуктивне рішення архівування для Substrate на сьогоднішній день.
Ми досягли максимальної продуктивності цих архівів завдяки наступним інноваціям:

  • Паралельне отримання даних про ланцюжок з кількох кінцевих точок gRPC;
  • Підтримка кластеризованої, високодоступної Cockroach DB із вбудованою компонуванням та реплікацією даних.

Насправді, архіви FireSquid значно швидше за архів Substrate Archive від Parity, який написаний мовою Rust, навіть при запуску на публічних кінцевих точках. Наприклад, синхронізація повного архіву із 12M+ блоків Кусами займає менше доби. Для індексування всіх історичних блоків, подій та викликів потрібно менше 350 Гб пам'яті.

Архіви FireSquid поставляються з двома інтерфейсами GraphQL, один для програмного отримання даних, оптимізований для Squids, а інший служить як інтерфейс дослідника для людей.Інтерфейс для Squids дозволяє реалізувати довгоочікувану функцію прямого пошуку дзвінків, навіть якщо виклик загорнуть у sudo або пакетну транзакцію, а також численні оптимізації для фільтрації та пакетної обробки.

З людського боку, інтерфейс провідника є потужним інструментом для SQL-подібних запитів транзакцій, викликів, подій та даних блоків. Спробуйте його на https://kusama.explorer.subsquid.io/graphql.

Про Subsquid

Subsquid - це рішення для індексування запитів в on-chain, яке дозволяє розробникам Web3 отримати доступ до даних на ланцюжку на власних умовах. Завдяки модульній архітектурі та децентралізованому управлінню, це найбільш зручний для розробників та ресурсозберігаючий спосіб створення, тестування та розгортання спеціалізованих API для додатків, пов'язаних із блокчейном.

Twitter | Discord | LinkedIn | Telegram | Github | Newsletter | Subsocial