20 мая 2020

Как должен выглядеть идеальный Block Explorer

Что такое обозреватель блоков для обычных пользователей?

Как бы странно это не звучало, 99,9% пользователей никогда не использовали Блокчейн обозреватель или Block Explorer в буквальном смысле “для изучения блоков”. Тем не менее, каждый разработчик обозревателя считает своим долгом разместить список последних блоков на главной странице   ¯ \ _ (ツ) _ / ¯

Как правило, наиболее распространенными вариантами использования являются следующие:

  • Проверка подтверждения транзакций.
    Что вы делаете, когда кто-то отправляет вам монеты и дает вам хэш? Да, вы ищете его в обозревателе блоков и ждете, пока транзакция не появится на вашем аккаунте.
  • Мониторинг собственных учетных записей
    Что делать, если у вас приступ паранойи, и вам нужно немедленно проверить свой баланс или недавнюю активность? Да, вы открываете обозреватель блоков.
  • Проверять другие аккаунты
    Вы когда-нибудь хотели узнать чей-то баланс? Или откуда кто-то взял эти монеты? Отслеживание денежных потоков, поиск связанных учетных записей и т.д. — все это также выполняется через обозреватель блоков.

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

  • Просмотр валидаторов (или бейкеров в терминах Tezos).
    Проверьте статус валидатора, его свободное место для делегирования, права на подтверждения, статистику стейкинга, начисленные награды и т.д.
  • Проверка делегирования
    Сопоставление начисленных наград с полученными выплатами.
  • Проверка смарт-контрактов
    Просмотр исходного кода, текущего состояния хранилища и т.д.
  • Участие в процессе голосования за изменения в протоколе
    Проверка текущего периода голосования, выполнение кворума и т.д.

Как видите, обозреватель блоков больше походит на обозреватель аккаунтов!

Таким образом, Block Explorer (или, если быть точным, Account Explorer) — это своего рода доверенная сторона, которая дает людям уверенность в том, что все в порядке с их адресами/кошельками в блокчейне. Он также помогает проверять адреса других людей, бирж и других значимых сервисов.

Что такое Block Explorer для разработчиков?

Очевидно, что разработчики ищут стабильные, быстрые, многофункциональные ну и бесплатные API для доступа к данным блокчейна, чтобы они могли создавать крутые сервисы поверх них. Например, сервис для Аудита делегатов в Tezos baking-bad.org.

Фактически, API оказывают большое влияние на всю экосистему блокчейна, поскольку, чем проще получить доступ к данным, тем больше проектов разрабатывается. Чем больше разработчиков вовлечено, тем больше активность в целом. Это как раз то, что нужно для постоянного роста сети.

Не менее важным является разнообразие данных, предоставляемых через API. Чем больше данных, тем больше проектов может быть построено на их основе. Например, в Tezos изначально был один Block Explorer с API и когда он перестал функционировать, у всех проектов, которые использовали его API возникли проблемы. Альтернативы были, но весьма ограничены и не предоставляли те же (или, по крайней мере, похожие) данные — например, разделение вознаграждений за стейкинг, награды делегатора и т.д.

Таким образом, для разработчиков обозреватель блоков — это в основном поставщик API.

Что такое Block Explorer для растущих проектов?

Пока ваш проект небольшой и не работает с конфиденциальными данными, можно использовать сторонние публичные API. Но когда нагрузка высока и необходимое время безотказной работы составляет 99,9%, сторонние сервисы являются уязвимым местом. Представьте себе, если вам нужно получить 1000 записей, но служба допускает максимум 50 записей на запрос и 5 запросов в секунду. Загрузка только 1000 записей занимает 4 секунды. Или представьте, что в середине атомарного свопа Explorer, который вы используете в своем приложении, внезапно перестает отвечать.

Поэтому серьезные проекты заинтересованы в использовании собственных решений, которые можно запускать как автономный сервис, и даже лучше, если это не требует больших затрат времени и ресурсов.

Другими словами, лучший способ получить доступ к данным блокчейна для больших проектов — это использовать общедоступные API на ранних стадиях и иметь возможность создавать и запускать свои собственные, когда пропускная способность недостаточна или требования к надежности и масштабируемости не выполняются.

Что мы можем извлечь из всего этого

Давайте подведем итог и выделим ключевые функции, которые должен иметь “идеальный” блокчейн обозреватель:

  • Прежде всего, Block Explorer должен быть обозревателем аккаунтов для удовлетворения потребностей большинства пользователей. Это также подразумевает «обработку» разных типов кошельков/аккаунтов в блокчейне;
  • Block Explorer должен предоставлять стабильные, надежные и гибкие API с различными данными;
  • Block Explorer должен иметь свой собственный Индексер, который не только индексирует данные из блокчейна как есть, но и обрабатывает их для удобного распределения данных;
  • Block Explorer должен быть с открытым исходным кодом, чтобы любой мог настроить его под свои нужды с использованием своей инфраструктуры.

Мы описали основные принципы, которым мы следовали при разработке Tezos Block Explorer TzKT. Надеюсь наш опыт поможет кому-то на ранней стадии проектирования, удачи!