Описание на:
Этот скрипт предоставляет комплексное решение для запуска (docker-compose или CLI) и мониторинга ноды Aztec, включая автоматическое обновление, проверку статуса контейнера, синхронизации блоков, получения важной информации о ноде, а также отправку уведомлений в Telegram.
Также ознакомьтесь с Историей версий под спойлером, там много полезной информации о функциях скрипта.
- 🏃🏻 Запуск ноды (docker-compose или CLI)
- 🐳 Мониторинг работы ноды Aztec
- 🔗 Проверка актуальности блоков (сравнение с контрактом)
- 🔍 Поиск ключевых параметров в логах
- 📨 Telegram-уведомления о проблемах и активности валидатора
- ⏰ systemd сервис для автоматического мониторинга
| Функция | Описание |
|---|---|
| ✅ Контейнер | Мониторинг состояния Docker-контейнера |
| 🔄 Блоки | Сравнение локальных блоков с блокчейном |
| 🤖 Telegram | Мгновенные уведомления о проблемах |
| 🌐 Языки | Поддержка языков Английский/Русский/Турецкий |
| ⚙️ RPC | Гибкая настройка RPC подключения |
Для режима мультивалидатора с BLS-ключами в формате: private_key,address,private_bls,public_bls
Для режима мультивалидатора без BLS-ключей в формате: private_key,address
Для режима одного валидатора те же данные по отдельности.
- Полная поддержка mainnet во всех функциях скрипта
- все
/rootзаменены на$HOME - Добавлена функция сбора наград (Claim)
- Проверка доступности сбора наград в контракте
- Отображение ближайшего времени сбора наград, если доступно
- Поддерживает множественные адреса coinbase из keystore
- Сбор только с тех валидаторов где есть награды
- Сбор только с уникальных адресов coinbase
- Обрабатывает транзакции через keystore с соответствующей подписью
- Проверяет статус транзакций и подтверждает успешность выполнения
- Обновления Мониторинга
- Работает с ранее установленными нодами (название контейнера ноды должно содержать слово aztec, в системе должен быть только один контейнер, содержащий слово aztec)
- Добавлен запрос типа сети при первом запуске и добавление переменной в .env-aztec-agent
- Переменная ALT_RPC - можно вручную в .env-aztec-agent добавить переменную ALT_RPC, которая будет иметь приоритет над используемым по умолчанию RPC_URL.
- Мелкие улучшения
📅 История версий
Для режима мультивалидатора с BLS-ключами в формате: private_key,address,private_bls,public_bls
Для режима мультивалидатора без BLS-ключей в формате: private_key,address
Для режима одного валидатора те же данные по отдельности.
- Выбор сети testnet/mainnet при установке ноды
- Записывается в переменную NETWORK в .env-aztec-agent
- Добавляется в docker-compose.yml
- В зависимости сети меняются параметры в скриптах
- Новый способ добавления валидаторов с BLS ключами
- Автоматическое создание yml-файлов типа BN254 для web3signer
- Поддержка режима мультивалидатора и соло
- Обновление структуры keystore.json, готовность к основной сети
- убран
slasher attester: с полем eth вместо простой строкиpublisher: Теперь это массив строкcoinbase: теперь в схеме keystore, убран из env и docker-compose.yml
- убран
- Обновление функций генерации BLS c учетом новой структуры keystore.json
- Предупреждение сохранить публичные BLS ключи
- Добавлена функция миграции bls в keystore - Опция 18-3
- Получение данных для миграции из bls-filtered-pk.json, сравнение и добавлние приватного BLS-ключа к своему attester в keystore.json.
- Обновлен url образа watchtower для поддержки новых версий Docker
- Обновлена функция получения статистики валидатора из контракта
- Добавлен показ ревардов
- Обновлена функция мониторинга очереди валидаторов (пересоздайте мониторинг)
- Добавлена проверка наличия в активном сете
- Добавлено уведомление о проблеме в API или других причинах удаления из очереди
- Добавлен индекс
- Мелкие улучшения
- Добавлен метод генерации нового оператора из старого приватного ключа валидатора (требуется установка ноды через этот скрипт, опция 11)
- поддержка режима мультивалидатора
- создание нового адреса, приватного и BLS ключей из старых приватных ключей
- правильная сортирвка данных согласно сортировке адресов в keystore.json независимо от того в каком порядке вы введете старые приватные ключи для генерации новых.
- Обновление функции Стейк
- автоматическое определение выбранного способа генерации BLS-ключей
- автоматическая замена адреса валидатора в keystore.json при создании новых адресов
- автоматическое создание новых yml файлов приватных ключей
- бекап keystore.json
- автоматический перезапуск web3signer
- предварительный просмотр команды стейкинга перед отправкой
- Обновлена функция Поиска и проверки статуса валидатора (Опция 9)
- Восстановлена функция мониторинга очереди валидаторов
- Добавлена функция удаления мониторинга очереди валидаторов
- Новый URL для вывода данных секвенсоров в тестовой сети в Dashtec.xyz
- Удобное копирование адреса аттестера и вывода, а также хеша-транзакции
- Мониторинг статистики по слотам
- Новый url на страницу секвенсора
- Небольшие улучшения в основном скрипте
- Небольшие улучшения в скрипте агента мониторинга
- Небольшие улучшения в скрипте установки ноды
- Полная поддержка нового контракта
- мониторинг
- установка ноды
- проверка и поиск валидатора
- мониторинг очереди валидаторов
- Генерация BLS-ключей из мнемонической фразы для вашего старого секвенсора (требуется установка ноды через этот скрипт, опция 11)
- поддержка нескольких адресов из одной мнемоники
- автоматическая фильтрация и удаление лишних ключей
- Функция апрува стейка (требуется установка ноды через этот скрипт, опция 11)
- Функция стейкинга - добавления валидатора (требуется установка ноды через этот скрипт, опция 11)
- Новая система уведомлений о статистике слотов
- Теперь статистика обновляется прямо в сообщении в виде живых слотов. Всего одно сообщение вместо 25 сообщений
- Поддержка нескольких валидаторов. Для каждого валидатора свое сообщение со статусами
- Поддержка fallback. Если возникнет ошибка в обновлении первого сообщения, скрипт отправит новое сообщение.
- Обновление в скрипте установки ноды, новый способ определения ip-адреса.
- При установке ноды на сервер с виртуальной машиной ip-адрес для P2P_IP определялся как локальный, что не позволяло корректно работать ноде. Если у вас настроен VPN, то укажите реальный ip-адрес для P2P_IP вручную.
- Обновление файла ошибок для детектирования модулем контроля критических ошибок
- Добавлена ошибка, когда нода не получает BLOB-данные от BEACON RPC
- Функция поиска и установки мониторинга валидатора в очереди (в опции 9) работает.
- Добавлен обход Cloudflare
- Добавлены недостающие переводы
- Новые необходимые компоненты Python и curl_cffi.
- Скрипт предложит установить недостающие компоненты
- Исправление установки curl_cffi. У некоторых пользователей возникала следующая проблема при установке curl_cffi:
/usr/bin/python3: No module named pipилиerror: externally-managed-environment - Добавлены новые ошибки для обнаружения модулем контроля критических ошибок
Большое спасибо за наводку с решением @xtoun (Discord) и всем кто тестировал.
- Полная поддержка новой сети и тестнета
- Новый скрипт установки ноды
- Автоматическое создание YML-файлов ключей для web3signer
- Установка и запуск web3signer
- Автоматическое создание схемы ключей
keystore.json - Поддержка режима мультивалидатора (до 10 на одну ноду)
- Возможность назначить один общий
publisherадрес для всех валидаторов или у каждого свой адрес (такой же какattester) - Все прежние возможности (автоматическая установка необходимого ПО, проверка портов, возможность назначить свои порты, проверки)
- Новый скрипт-агент для мониторинга работы ноды (опция 2)
- Новые уведомления в Telegram о статистике за каждый слот со всеми типами статусов (✅ attestation, ❌ attestation, ⛏️ Block mined, 📤 Block proposed,
⚠️ Block missed) - Поддержка режима мультивалидатора (статистика по всем валидаторам, которые попали в комитет), а также режим одного валидатора
- DEBUG режим - позволяет получать максимально подробные логи мониторинга ноды. Лог записывается в файл
/root/aztec-monitor-agent/agent.log. Для включенияDEBUG=trueв файле/root/.env-aztec-agent(по умолчанию false) - Запуск проверки точно по таймеру
systemdкаждые 37 секунд (примерное время одного слота) - вы не пропустите ни одного статуса!
- Новые уведомления в Telegram о статистике за каждый слот со всеми типами статусов (✅ attestation, ❌ attestation, ⛏️ Block mined, 📤 Block proposed,
- Все прежние возможности (контроль синхронизации, проверка на критические ошибки, быстрый просмотр логов ноды, автоматические обновления, функция даунгрейда, управление контейнерами и другие опции)
- Новый скрипт поиска и проверки валидаторов напрямую в контрактах Rollup и GSE (опция 9)
- Быстрый поиск и проверка статуса валидатора.
- Поддерживает проверку нескольких валидаторов за один запрос.
- Точное количество активных валидаторов сети
- Всегда актуальная информация
- Обновление функции контроля версий скрипта. Теперь показываются краткие описания новых версий и обновлений.
- Добавлены новые ошибки для детектирования модулем контроля критических ошибок с информацией как их исправить и уведомлением в Telegram
- Мелкие улучшения других функций
- Обновлена функция поиска PeerID (восстановлена работа функции + новые возможности)
- Скрипт находит PeerID ноды в логах
- Ищет среди актуальных данных на Nethermind.io
- Если не находит в актуальных данных Nethermind.io, то ищет в архиве
- Обновлена функция создания cron-агента
- Теперь в уведомлении о включении в комитет можно нажать на адрес валидатора и перейти на его страницу на dashtec.xyz
- Обновлен скрипт установки ноды Aztec
- Добавлена проверка активности ufw.
- Если ufw активен, то добавляются правила для портов 8080 и 40400, иначе правила не добавляются.
- Восстановлена работа функции мониторинга очереди валидаторов.
- Обновлена функция проверки включения валидатора в комитет (восстановлена работа функции)
- Можно указать несколько адресов валидаторов
- Обновлен скрипт проверки валидаторов. Добавлены режимы проверки.
- Быстрая обработка - сильная нагрузка на CPU
- Медленная обработка - нет нагрузки на CPU
- Проверка версии ноды Aztec вынесена в отдельный пункт меню, чтобы не тратить время при загрузке скрипта.
- Добавлена функция Обновления ноды Aztec. Функция обновляет ноду моментально, не дожидаясь автоматического обновления от Watchtower.
- Также используйте эту опцию, если вы делали даунгрейд и нужно все вернуть обратно.
- Проверяет
docker-compose.ymlи заменяет тег наlatest
- Добавлена функция Даунгейда версии ноды Aztec. Функция показывает все версии ноды из Docker Hub, позволяя откатиться на любую выбранную из списка версию.
- Выбор нужной версии
- Обновление файла
docker-compose.yml - Остановка, загрузка и запуск контейнерова
- Обновлен скрипт установки ноды Aztec с Watchtower. Во время установки скрипт уточнит "Вы хотите запустить несколько валидаторов? (y/n)"
- Установка в режиме мультивалидатора (до 10 валидаторов на одну ноду)
- Установка в режиме одного валидатора
- Обновлена команда запуска ноды в CLI (validatorPrivateKeys) для версии ноды 1.1.0 и выше.
- Добавлена функция проверки наличия старых screen сессий с нодой в CLI и их удаления перед созданием новой сессии.
- Обновлен адрес rollup контракта
- Доработана система Telegram уведомлений для валидаторов. Спасибо за идею @malbur187 (Discord)
- При установке cron-агента мониторинга ноды можно выбрать какие уведомления получать: только об ошибках или также о выборе в комитет и создании блока.
- Выбор сохраняется в
.env-aztec-agentи применяется при последующих повторных созданиях агента. Если надо изменить, то отредактируйте файл.env-aztec-agent
- Добавлена функция поиска критических ошибок. Если в логах ноды будет обнаружена критическая ошибка, придет уведомление в Telegram.
- Пополнение массива ошибок реализовано через единый json-файл, позволяющий быстро добавлять новые ошибки и способ решения.
- Обновлена функция поиска PeerID. Спасибо за идею @web3.creed (Discord)
- После успешного поиска в логах, PeerID проверяется в публичной базе
aztec.nethermind.ioи показывается результат
- После успешного поиска в логах, PeerID проверяется в публичной базе
- Мелкие улучшения
- Добавлена функция "Остановить контейнеры ноды Aztec" - умная функция, которая запоминает ваш способ работы с контейнером ноды (docker-compose или CLI) и далее работает в выбранном режиме.
- При запросе способа работы укажите как запущена ваша нода:
docker-composeилиCLI - При запросе пути к файлу docker-compose укажите путь от корневой директории в формате:
/root/aztecили./aztec - Все настройки сохраняются в файле
.env-aztec-agentВы можете изменить их при желании.
- При запросе способа работы укажите как запущена ваша нода:
- Добавлена функция "Запустить контейнеры ноды Aztec" - умная функция, которая использует способ работы с контейнером ноды, назначенный в функции "Остановить контейнеры ноды Aztec" (опция 13).
- Если вы не задали способ работы с контейнером ноды (опция 13) и воспользуетесь функцией "Запустить контейнеры ноды Aztec", то функция будет работать как визард для запуска ноды в CLI. В этом случае скрипт запросит необходимые данные для запуска CLI-ноды, сформирует команду и запустит CLI-ноду в screen сессии.
- Все настройки сохраняются в файле
.env-aztec-agentВы можете изменить их при желании.
- Обновлена функция создания cron-агента с telegram уведомлениями - теперь ChatID и Telegram token сохраняются в файле
.env-aztec-agentи при удалении/создании cron-агента не требуется повторный ввод. - Добавлена проверка версии ноды Aztec при загрузке скрипта.
- Функция Просмотреть логи Aztec - доработана для показа последних 500 строк с последующим обновлением.
- Функция Проверить контейнер и актуальный блок - улучшенное чтение логов и предотвращение проблем с памятью
- Улучшена функция проверки и установки необходимого ПО для скрипта
- Полная локализация, включая скрипт и уведомления в телеграм, на три языка. Добавлен турецкий язык.
- Добавлена функция установки ноды Aztec c запуском в Docker c Watchtower. Watchtower настроен на автоматическое обновление контейнера ноды с сохранением конфигурации.
- Установка зависимостей
- Проверка наличия Docker, Docker Compose и установка при необходимости
- Проверка доступности портов по умолчанию, возможность заменить порты
- Установка последней версии бинарника ноды
- Автоматическое создание
.envиdocker-composeфайлов - Открытие портов в ufw
- Запуск ноды и показ первых логов
- Добавлена функция удаления ноды Aztec
- Обновление для совместимости с Watchtower
- Улучшен механизм поиска номера блока (опция 1 и cron-агент) в логах уровня debug. Поддержка логов уровня debug, info (и, вероятно, всех остальных). Максимально точный результат поиска.
- Улучшена обработка ошибок проверки блоков
- Добвлена новая опция - просмотр логов ноды прямо из скрипта (Ctrl+C для выхода из логов)
- Добавлен вывод номера блока из логов при выполнении опции 1.
- Добавлен контроль версий скрипта. Если есть обновления, скрипт уведомит об этом.
- Мелкие улучшения
- Обновлено значение фильтра в командах чтения логов для лучшей совместимости с разными версиями ноды Aztec
- Добавлено логирование ошибок RPC/cast
- Добавлено логирование версии скрипта
- Улучшена совместимость. Скрипт работает с нодой в Docker и CLI.
- Добавлена поддержка нового формата логов "block NNNN"
- Автоматическая проверка наличия и установка утилиты
bcдля вычислений в опции 9 - Удаление ANSI-кодов перед анализом для надежного поиска данных
- Устранена ошибка поиска PeerID в логах
- Оптимизирована работа с hex-значениями блоков
- Улучшена система уведомлений в Telegram
- Добавлена функция проверки валидатора. Анализ все валидаторов, вывод информации по конкретному, полный список.
- Изменение порта узла Aztec для функции получения доказательства. Нужно, если вы меняли порт ноды при установке.
- Очистка файла лога при достижении 1 Мб, первый отчет сохраняется.
-
Требования: Скрипт проверит наличиие необходимых компонентов и предложит установить недостающие.
-
Запуск или Обновление:
curl -o aztec-logs.sh https://raw.githubusercontent.com/pittpv/aztec-monitoring-script/main/aztec-logs.sh && chmod +x aztec-logs.sh && ./aztec-logs.sh
Для последующих запусков используйте команду:
cd $HOME && ./aztec-logs.sh
-
Следуйте инструкциям для:
- Выбора языка
- Ввода RPC URL (RPC должна быть доступна по
http://localhost:8545илиhttp://127.0.0.1:8545илиhttp://ВАШ_ВНЕШНИЙ_IP:ПОРТ) - Ввода типа сети (mainnet, testnet)
- Настройки Telegram-бота
- Активации мониторинга (опция 2)
Главное меню:
-
🔍 Проверить контейнер и синхронизацию ноды
-
⚙️ Установить агент мониторинга ноды с уведомлениями
-
🗑️ Удалить cron-агент и файлы
-
🏷️ Найти адрес rollupAddress в логах
-
👥 Найти PeerID в логах и Nethermind.io
-
🏛️ Найти governanceProposerPayload в логах
-
🔗 Проверить Proven L2 блок и Sync Proof (данные, которые ранее были нужны для получения Apprentice роли в Discord)
- Теперь можно задать свой порт (по умолчанию порт 8080). Новый номер порта сохранится в файл окружения .env-aztec-agent
-
🔌 Изменить RPC URL
-
🔍 Поиск валидатора и проверка статуса
-
Просмотреть логи Aztec
-
Установить Aztec ноду с Watchtower
-
Удалить ноду Aztec
-
Остановить контейнеры ноды Aztec
-
Запустить контейнеры ноды Aztec
-
Обновить ноду Aztec
-
Сделать даунгрейд ноды Aztec
-
Проверить версию ноды Aztec
-
Сгенерировать BLS
-
Апрув
-
Стейк
-
🚪 Выход
После установки скрипта выберитe опцию Установить агент мониторинга ноды с уведомлениями:
- Создаст агента в
~/aztec-monitor-agent - Настроит systemd сервис и таймер (запуск каждые 37 секунд)
- Отправит начальный статус в Telegram
- Будет непрерывно мониторить ноду и записывать логи в
~/aztec-monitor-agent/agent.log - Отправит уведомление в Telegram если:
- Контейнер Aztec не найден
- Найдено расхождение между блоком в контракте и в логах > 3 блоков
- Возникла проблема с RPC сервером
- Найдены критические ошибки
- Выбрали в комитет
- Статистику за каждый слот пока валидатор к комитете (успешная/пропущенная аттестация, предложение/создание/пропуск блока)
- Очистит лог файл при достижении размера в 1 Мб, сохранив самый первый отчет.
- Получите Telegram токен от BotFather
- Узнайте свой
chat_id, например с помощью IDBot - Введите их в скрипте при установке агента мониторинга. Реализована проверка Telegram токена и ChatID, если вы введете данные некорректно, скрипт покажет предупреждение.
Если вышло обновление для cron-агента, сначала обновите весь скрипт. После удалите старого агента и создайте нового. ChatID и Telegram token, которые вы ранее вводили, автоматически назначаются для нового агента.
Для установки ноды Aztec выберите опцию 11 и следуйте инструкциям скрипта.
C пошаговым описанием процесса установки ноды можно ознакомиться тут: Aztec-Install-by-Script.md
Этот скрипт не является официальным продуктом Aztec Network и предоставляется "as is".
MIT License © 2025
Любые вопросы, сообщения об ошибках или отзывы:
