Gearbox Аналитика: Встречайте аналитический инструмент “Третий глаз”
Прошло больше года с тех пор, как Кредитные Аккаунты Gearbox были созданы, и вместе с Кредитными Аккаунтами появился совершенно новый вид данных. Есть очевидные данные о пользователях, которые можно и всегда можно было просматривать, но есть и нечто большее, чем кажется на первый взгляд. Вот тут-то и приходит на помощь “Третий глаз”. “Третий глаз” — это внутренний инструмент мониторинга и аналитики Gearbox, который сообщает обо всем: от рисков до действий пользователя, от мониторинга до отчетности через уведомления. Это наш внутренний центр протокольной разведки, который всегда открыт. Читайте ниже, чтобы узнать о нем подробнее.
Чтобы узнать обновления протокола и немного альфы вы можете почитать статью с новостями за ноябрь:
Это первый раз, когда мы представляем миру аналитический инструмент “Третий глаз” (Third-Eye Analytics. Abbreviated — TEA), и это делается с определенной целью. TEA находился в разработке еще до запуска V1, и сегодня он достаточно развит, чтобы открыть исходный код и позволить заинтересованным сторонам вносить свой вклад/пользоваться этим инструментом. В этой статье мы объясняем, почему мы создали “Третий глаз”, его особенности и примеры использования. Это первая статья нашего стороннего разработчика Харша, и она будет более технической. Так что читайте дальше, чтобы узнать больше.
Зачем нужен аналитический инструмент “Третий глаз”?
Еще до выхода Gearbox V1 мы поставили перед собой цель создать аналитическую веб-страницу, которая бы предоставляла информацию, недоступную в основном приложении или Etherscan.
Для пользователей это означало создание веб-страницы, на которой они могли бы проверять детали своих закрытых счетов, сравнивать свои показатели с другими пользователями и иметь графики для отслеживания изменений различных значений параметров.
Для комитета по рискам это дало возможность делать произвольные запросы к этим данным для различных проверок состояния здоровья, безнадежных долгов и эффективности ликвидации. Это было сделано для того, чтобы обеспечить проактивное движение по снижению рисков. Обеспечивая это, мы также повышаем эффективность нашего партнерства с Risk DAO. На основе запрошенных данных внутренние специалисты по управлению рисками могут точно определить, в чем заключается риск, и используя панель Risk DAO, быстро принять меры по его устранению.
Изначально мы рассматривали Graph как вариант для подобной интеллектуальной системы, но исчерпывающий набор параметров, который мы хотели, был невозможен, группа доступных агрегаций была ограничена, а вывод JSON делал поиск информации медленнее, чем в табличном формате. Учитывая эту спецификацию и возможность последующего добавления более сложных и взаимозависимых инсайтов, мы решили создать собственный сервис для вычисления всех необходимых параметров и получения их в нужном нам формате. Сегодня этот инструмент превратился в “Третий глаз”.
Здесь вы можете найти все адреса контрактов для более удобного доступа к различным источникам данных: https://dev.gearbox.fi/.
Архитектура “Третьего глаза”
“Третий глаз” написан на golang с использованием фреймворка зависимостей, который устраняет необходимость в глобальном состоянии и обеспечивает гибкость проектирования. Он моделирует различные типы контрактов как адаптеры синхронизации; каждый адаптер может синхронизироваться изолированно, если его зависимые адаптеры синхронизировались для этого блока. Изоляция позволяет откатывать адаптеры без влияния на все приложение, требуя только отката зависимых адаптеров.
Адаптеры синхронизации могут иметь один из двух триггеров для получения данных.
- Триггеры событий
- Триггеры запроса (запрос через определенные промежутки времени).
Адаптеры с триггером события: Включают AddressProvider, ContractRegister, CMs, Pools и ChainlinkPriceFeeds. “Третий глаз” использует набор адаптеров, который хранит независимые адаптеры на одном уровне (что позволяет распараллеливать) и зависимости на предыдущих уровнях.
Адаптеры с триггерным запросом: В основном используются для получения цен на токены, которые не выдают событие при изменении стоимости. К ним относятся токены yearn, curve LP и convex LP. Эти адаптеры используют multicall (создатель контракта живет на цепи, позволяя объединять вызовы и получать ответ за один вызов), чтобы сократить количество вызовов RPC.
Определения этих адаптеров можно найти в наших моделях.
Затем “Третий глаз” группирует полученные данные по номерам блоков и сохраняет их в хранилище блоков, которое синхронизируется с базой данных. Как только мы получаем все данные по номеру блока, в дело вступает долговой механизм. Он получает новые данные, находит Кредитные Аккаунты, состояние которых изменилось, и рассчитывает их прибыль и убытки, сумму погашения, общую стоимость и коэффициент здоровья. Снимки нового состояния аккаунтов сохраняются для создания графиков и ретроспективного анализа этих данных.
Заинтересованные читатели могут ознакомиться с подробной архитектурой “Третьего глаза”.
Функции
Для того чтобы эта архитектура обеспечивала полезность, были разработаны определенные приложения. Они называются функциями и обеспечивают более легкую работоспособность различными способами. Вот некоторые из наиболее выделяющихся:
Детальный разбор запросов: Gearbox выдает общее событие (ExecuteOrder) всякий раз, когда происходит действие по сторонним протоколам, например, своп на AMM, депозит/вывод средств на любом Vault/Pool, LPing на curve/convex и т.д. Это событие только сообщает нам, какой пользователь совершил вызов по какому протоколу. Но данные о вызовах для этой операции еще предстоит обнаружить. Используя детальный разбор, мы фильтруем внутренний вызов по базовым параментрам и разбираем необходимые данные. Все эти действия пользователя доступны на веб-странице графиков.
Уведомления: Долговой механизм использует обновленные значения в каждом блоке для расчета обновленного состояния кредитных счетов. Таким образом, мы можем обнаружить точный блок, в котором коэффициент здоровья счета стал меньше 10K, превратив заемную сумму в безнадежный долг. “Третий глаз” уведомляет о плохих долгах и всякий раз, когда происходит какая-либо ликвидация.
Операции DAO и казначейство: Казначейство Gearbox получает средства двумя способами: 1) Потоки доходов (спред APY и ликвидационный сбор) и 2) Раунды финансирования. “Третий глаз” отслеживает конечный баланс казначейства каждый день благодаря обеим операциям. Помимо наблюдения за казначейством, операции DAO также отслеживаются и отображаются на веб-странице графиков для прозрачности.
Сервер графиков: Работа “третьего глаза” заключается в получении данных, вычислении недостающих и важных параметров и сохранении их в нужном формате. Его дополняет веб-сервер, который предоставляет конечные точки REST для charts.gearbox.fi. Этими конечными точками являются рейтинг счетов p&l, cm, pool, account и treasury details.
Усовершенствования в течение года
Год в разработке, путь этого сервиса за этот период можно понять, только поняв, с чего все начиналось и где мы находимся сегодня.
Отслеживание прямых переводов токенов: Gearbox не ограничивает пользователей в прямой отправке средств на аккаунты. При этом на смарт-контрактах, связанных с Gearbox, не возникает никаких событий, когда это происходит, что затрудняет отслеживание таких случаев. Чтобы решить эту проблему, “Третий глаз”использует адаптер AccountManager, который собирает события о переводе средств на всех поддерживаемых токен-контрактах. Затем он фильтрует все уже просмотренные транзакции через адаптеры кредитного менеджера, чтобы удалить известные переводы токенов.
Регулирование расчета долга: Те, кто был с нами с прошлогоднего тестнета, знают, что пользователи открыли несколько аккаунтов, чтобы протестировать Gearbox v1 на kovan. Пользователи испытывали коробку передач на прочность, выполняя множество действий за короткий промежуток времени. Это также протестировало долговой механизм “третьего глаза” и заставило нас задаться вопросом о том, какой должна быть частота снепшотов состояния аккаунтов, чтобы предотвратить слишком быстрый рост DB (для kovan она достигла 20М+ записей за 5 месяцев). Мы обнаружили, что большинство последующих снимков имеют дельту менее 1%, и решили дросселировать сохранение снимков состояния долга, основываясь на этих правилах. Дросселирование позволило держать размер долга под контролем, сохраняя все важные снимки.
Оптимизация хранилища данных: Постоянно увеличивающееся количество снимков долгов требует лучшей тактики индексирования. В настоящее время мы храним долги в виде кластеризованного индексного дерева, что значительно сокращает время запроса для ранжирования за 7/30 дней. Индексирование и переписывание определенных таблиц улучшило общее время отклика конечных точек сервера чартов
Открытие кода и приветствие “Третьего глаза”
“Третий глаз” был первым бэкенд-проектом, над которым мы работали в Gearbox. Он отвечал нашим потребностям и развивался в зависимости от меняющихся требований. По мере развития протокола Gearbox команда создала несколько бэкенд-проектов, связанных с тестированием, ликвидацией, мониторингом и т.д. Сегодня мы предоставляем вам открытый доступ к “третьему глазу”. Вы можете получить доступ к нему на GitHub.
На данный момент это будет в основном внутреннее приложение. Цель — повысить прозрачность усилий разработчиков, чтобы помочь людям понять, что мы создаем, и внести свой вклад, предоставив информацию о том, какие дополнительные параметры они хотели бы видеть. Вы можете сделать это на самом Github или, как всегда, в нашем discord :).
У нас будет аналогичный подход и к другим проектам. Как только разработчики посчитают, что код находится в стабильном и безопасном положении, мы откроем его для отзывов и вклада. Общие функциональные возможности Gearbox и утилиты для других разработчиков доступны в Golang SDK. Вы можете использовать их, чтобы создать что-то, что, по вашему мнению, добавит значимую ценность. Заходите в наш дискорд, чтобы предложить то, что вы хотите создать, для получения возможных грантов и обратной связи с DAO.
Если вы хотите присоединиться — просто зарегистрируйтесь в Discord. Обсуждайте и делитесь идеями. Вот как вы можете следить за развитием проекта:
- Сайт: https://gearbox.fi/
- dApp: https://app.gearbox.fi/
- Документы пользователя: https://docs.gearbox.finance/
- Документы для разработчиков: https://dev.gearbox.fi/
- Форум: https://gov.gearbox.fi/t/start-here-forum-rules/
- Блог: https://medium.com/@gearboxprotocol
- Гитхаб: https://github.com/Gearbox-Protocol
- Твиттер: https://twitter.com/GearboxProtocol
- Голосование: https://snapshot.org/#/gearbox.eth
- И, конечно же, рабочие документы DAO: