cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
Ecosystem & Integrations

ADAMANT Explorer v2.0.0: Vue 3, усиленная изоляция API и отказоустойчивый мониторинг в реальном времени

ADAMANT Explorer v2.0.0 — это первый стабильный релиз после версии v1.3.0, объединяющий 218 коммитов и 491 измененный файл. Это масштабное обновление фронтенда, бэкенда, системы мониторинга в реальном времени, безопасности и операционных процессов, сохранившее при этом все существующие публичные маршруты и глубокие ссылки.

Архитектура фронтенда

Устаревшие AngularJS, Bootstrap 3 и Webpack были заменены на однофайловые компоненты Vue 3, Pinia для управления общим состоянием сети, Vue Router 5 с поддержкой URL и Vite 8 для сборки. Независимые от фреймворка утилиты теперь находятся в src/lib/ и могут тестироваться напрямую в Node.js.

Все основные представления были переработаны: главная страница, блоки, транзакции, адреса, делегаты, «Топ аккаунтов», «Зарезервированные кошельки», «Монитор делегатов», «Монитор сети» и «График активности». Интерфейс теперь поддерживает постоянные светлую и темную темы, адаптивные таблицы и карточки транзакций, улучшенную доступность, детерминированную сортировку транзакций и отображение ADM с полной точностью там, где важна точность реестра.

ADAMANT Node и границы API

Взаимодействие со всеми узлами ADAMANT теперь осуществляется через adamant-api 3.1.0 в рамках выделенного слоя адаптера запросов. Бэкенд получил механизмы проверки готовности при запуске, переключение на резервные узлы, нормализацию ошибок SDK, ограничение пагинации, строгую валидацию маршрутов и параметров, а также раздельные слои для запросов, нормализации и формирования ответов.

Explorer теперь предоставляет только 12 маршрутов same-origin, необходимых для работы интерфейса, плюс GET /api/networkHealth. Были удалены 16 устаревших конечных точек, произвольная фильтрация транзакций, wildcard CORS и неактуальные маршруты Market Watcher. Эта сокращенная поверхность является границей реализации для интерфейса Explorer, а не API общего назначения. Внешним приложениям следует использовать adamant-api-jsclient. Для операционного мониторинга можно использовать GET /api/networkHealth, который возвращает состояния live, degraded, critical или unavailable.

Мониторинг в реальном времени и согласованность кэша

Четыре публичных пространства имен Socket.IO — Header, Delegate Monitor, Network Monitor и Activity Graph — теперь используют сериализованный опрос, генерации жизненного цикла, ограниченные повторные попытки и защиту от устаревших обратных вызовов. Обновления на основе блоков заменили фиксированные задержки для открытых страниц «Главная» и «Блоки». Гидратация REST и ограниченные подтверждения дополняют уведомления о блоках через WebSocket. Расчеты расписания делегатов, состояния форжинга, наград, комиссий и границ раундов стали стабильными, с согласованной статистикой блоков и узлов, а также опциональной поддержкой Redis. Идентификация кэша корректно обрабатывает новые блоки и замены форков на той же высоте.

Геолокация узлов через GeoJS ограничена кэшированной нормализацией и деградацией до уровня имени хоста. Валидируемый, кэшируемый и ограниченный по времени прокси-сервер тайлов OpenStreetMap с лимитами на IP поддерживает развертывание как в clearnet, так и в Tor. Redis по-прежнему рекомендуется для кэширования ответов и хранения статистики, но сбои Redis больше не приводят к остановке основного HTTP-сервера или отдаче статики.

Укрепление безопасности и конфиденциальности

Публичные запросы и границы браузера теперь включают принудительную проверку поверхности API перед кэшированием и проверкой готовности ADAMANT, строгую валидацию адресов, идентификаторов uint64, пагинации, маршрутов, методов и фильтров, а также встроенный API-лимитер с фиксированным окном, учетом личности клиента через прокси и механизмом сброса при переполнении. Применены заголовки безопасности, ограниченная политика Content Security Policy, стабильные публичные ошибки, явные HTTP-тайм-ауты и минимизированные логи доступа. Значения монитора сети от узлов отображаются только в текстовом виде и проходят валидацию. Реализована корректная деградация при сбоях Redis, узлов, курсов обмена, геолокации и провайдера тайлов.

Репозиторий включает версионированную модель угроз, а также отчет о проверке безопасности и надежности. Аудит безопасности был проведен cryptofoundry.

Изменения в среде выполнения и развертывании

Операторам при обновлении с v1.3.0 следует учесть, что требуется Node.js версии ^22.18.0 || >=24.11.0, а настроенные узлы ADAMANT должны быть версии v0.10.2 или новее. Новый файл config.jsonc следует подготовить на основе config.default.jsonc, уделив внимание параметрам nodes_adm, trustedProxies, redis, geoLocation, exchangeRates и log_level. Freegeoip был заменен на опциональную интеграцию с GeoJS; отключение геолокации сохраняет данные об узлах и именах хостов без использования сторонних картографических данных. Обратные прокси и брандмауэры должны разрешать путь /osm-tiles/ (same-origin). Сгенерированные активы public/ не коммитятся в репозиторий и должны собираться во время развертывания командой npm run build. Команда npm run dev запускает бэкенд и Vite одновременно; npm run dev:frontend запускает только Vite.

Валидация

Релиз прошел проверки ESLint и Prettier, сборку для продакшена с 6 337 трансформированными модулями, 226 юнит-тестов для Node.js, 41 тест API тестовой сети ADAMANT, а также полный аудит зависимостей без обнаруженных уязвимостей. Дымовое тестирование браузера по 13 маршрутам на разрешениях для десктопа, планшета и мобильных устройств не выявило ошибок в консоли или горизонтальной прокрутки.

Полный релиз доступен в GitHub Releases.