Skip to content

pittpv/sepolia-auto-install

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

149 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ Ethereum RPC Node Installer All in one

🇬🇧 for English

Первый экран

Интерактивный bash-скрипт для установки, управления и мониторинга Ethereum RPC-ноды в сетях Mainnet, Holesky, Hoodi, Sepolia с поддержкой выбора execution-клиента (Geth (рекомендуемый), Reth, Nethermind) и consensus-клиента (Prysm (рекомендуемый), Lighthouse, Teku), мониторинга синхронизации и cron-агента с уведомлениями о статусе работы ноды в Telegram.

📦 Возможности

  • 📦 Обновление системы и установка необходимых компонентов
  • 🔧 Установка и запуск RPC-ноды в нужной сети с выбранным execution и consensus-клиентами
  • 🐳 Автоматическая генерация docker-compose.yml
  • 📊 Проверка статуса синхронизации (execution и consensus)
  • 📋 Просмотр логов
  • 🔄 Обновление контейнеров
  • 🛑 Остановка/запуск контейнеров
  • 🧹 Удаление ноды
  • 💽 Анализ использования диска
  • 📡 Установка cron-агента с Telegram-уведомлениями о статусе синхронизации ноды
  • 🔥 Расширенное управление файрволлом
  • 🌐 Проверка RPC и blob-данных. Cкрипт создан @web3.creed (Discord)
  • ⚙️ Настройка использования ресурсов контейнерами Docker

Ознакомьтесь с Историей версий под спойлером, там много полезной информации о функциях скрипта.

⚙️ Требования

  • docker и docker-compose
  • curl, jq
  • bash ≥ 4.0

Все требования можно установить автоматически, выбрав пункт 1 в меню. Будет выполнено обновление системы и текущих приложений, установлены Docker, Docker Compose и другие необходимые утилиты. После установки система будет очищена от кеша установки и неиспользуемых приложений.

Я рекомендую использовать шаг 1, даже если у вас есть Docker. Скрипт пропустит установку имеющихся у вас компонентов. После обновления системы проверьте, работают ли ваши старые контейнеры и другие узлы.

🖥️ Системные требования

Компонент Требование
ОС Ubuntu 20.04 или новее
ОЗУ (RAM) 24 GB и более
Процессор (CPU) 8 ядер и более
Диск 800 GB SSD (может увеличиться до 1.5 TB)

Арендовать сервер (пожалуйста используйте мою реферальную ссылку):

📌 Последние обновления 08-05-2026

  • Добавлена функция save_docker_user_rules() — сохраняет правила DOCKER-USER в файл /etc/iptables/docker-user.rules
  • Добавлена функция setup_rules_persistence() — создаёт systemd drop-in /etc/systemd/system/docker.service.d/restore-iptables.conf, который автоматически восстанавливает правила после каждого запуска Docker
  • Добавлены вызовы сохранения после каждого изменения правил (добавление, удаление, блокировка портов)
  • Добавлены локализованные строки для новых сообщений (EN/RU)
  • Добавлена более понятная встроенная инструкция для первого запуска опции Управления файрволлом

📅 История версий

22-02-2026

  • Обновлённая проверка статуса синхронизации для Geth (опция 5):
    • Когда прогресс по блокам достигает 100%, «оставшиеся блоки» больше не отображаются как отрицательное значение — показывается 0 и сообщение о том, что нода догоняет текущую вершину цепочки; прогресс ограничен 100%.
    • Когда прогресс по блокам равен 100%, скрипт считывает логи контейнера Geth и отображает в статусе: ETA генерации снапшота, прогресс индексации транзакций и прогресс индекса логов (обработано/осталось, затраченное время).
    • Обновлено сообщение при некорректных данных синхронизации: рекомендуется повторно проверить через 10–15 минут после запуска клиента.
  • Логика проверки синхронизации для Reth и Nethermind не изменена и работает как прежде.

20-11-2025

⚠️ Обновите скрипт ➡️ удалите старую RPC ноду ➡️ устанвите новую RPC ноду, настройте новый мониторинг

Либо используйте гайд для обновления без удаления данных - Update-from-1-7-x-to-1-8-0.md

  • Добавлена установка в mainnet, Holesky, Hoodi, Sepolia
  • Стабилизирована работа beacon ноды
  • Обновление функции ограничения использования ресурсов Docker (Опция 15, также при установке ноды)
    • Ограничения назначаются только для execution клиента
    • Новая логика расчета для RAM
    • Новая логика расчета для CPU
    • Минимальные требования 24 RAM, 8 CPU
  • В уведомление о статусе синхронизации добавлено отображение дистанции для beacon
  • Мелкие улучшения

10-11-2025

  • Для BEACON-клиентов изменён URL чекпоинта по умолчанию.

14-10-2025

  • Подготовка к обновлению Fusaka
    • Обновление адреса образа для Prysm
    • Активация режима supernode для beacon клиентов
  • Добавлена проверка версии для execution клиентов в опции проверки RPC (опция 14)

Все изменения применятся к нодам, установленным с версией скрипта 1.7.2 от 14.10.2025. Если вы установили ноду ранее, то выполните действия из сообщений:

01-09-2025

  • Добавлена опция, позволяющая настроить ограничение использования CPU и RAM для EL и CL клиентов.
    • При активной опции на работу операционной системы сервера всегда остается 20%. Остальные ресурсы разделяются в соотношении 60:40 между EL и CL клиентами.
    • Опция автоматически запускается при установке RPC ноды (можно отказаться от назначения лимитов) или можно запустить отдельно на уже работающей ноде (требуется перезагрузка контейнеров ноды)

21-08-2025

  • Обновление скрипта проверки RPC до последней версии. Спасибо @web3.creed (Discord)

08-08-2025

  • Исправление конфигурации Nethermind. В предыдущей конфигурации могли возникать проблемы в синхронизации.

07-08-2025

  • Функция Управление файрволлом полностью переписана. Теперь правила действительно работают. Спасибо @luce1970 (Discord) за выявленный баг.
    • можно управлять как портами, так и ip-адресами
    • входящие/исходящие, tcp/udp, всё
    • добавление/удаление по номеру правила в верном
    • раздельное или одновременное удаление iptables и ufw правил
    • блокировка всех входящих соединений
    • Функция управляет правилами в IPTABLES и дублирует в UFW
  • В Geth добавлен флаг, снимающий ограничение в 1 eth
  • Мелкие улучшения

07-07-2025

  • Изменен вывод логов: просмотр последних 500 строк с продолжением

12-06-2025

  • Добавлена система контроля весрий скрипта Sepolia
  • Обновлен логотип

09-06-2025

  • Добавлена возможность выбора Execution клиента. Geth, Reth, Nethermind.
  • Добавлена возможность назначить порт при установке. По умолчанию для execution 8545, consensus 5052.
  • Добавлена возможность назначать порт для ранее установленной ноды.
  • Существенно расширены возможности управления файрволлом.
  • Для Reth и Nethermind реализованы свои механизмы для контроля процесса синхронизации. Для получения корректных данных первую проверку делайте через 3-5 минут после запуска клиентов.
  • При удалении ноды удаляется и cron-задача
  • Реализована проверка токена телеграм и ChatID. Доработаны уведомления.
  • Добавлена обновленная версия скрипта проверки RPC от Creed
  • Доработан скрипт проверки RPC для совместимости с обеими версиями Sepolia Auto Install, также возможно выбрать проверку localhost или внешнего ip.
  • Мелкие улучшения

24-05-2025

  • Добавлен скрипт проверки RPC от Creed

23-05-2025

  • Добавлено управление фаерволом

21-05-2025

  • Добавлена автоматическая установка зависимостей

20-05-2025

  • Поддержка нескольких языков для приветственного сообщения.
  • Исправление в docker-compose файле Prysm.

19-05-2025

  • Исправление уведомлений в Telegram

🚀 Установка и запуск

Запуск или Обновление

curl -o install_sepolia.sh https://raw.githubusercontent.com/pittpv/sepolia-auto-install/main/install_sepolia.sh && chmod +x install_sepolia.sh && ./install_sepolia.sh

Для последующих запусков используйте команду:

cd $HOME && ./install_sepolia.sh

После установки ноды дождитесь полной синхронизации. Синхронизация будет завершена только тогда, когда при запросе статуса синхронизации вы увидите "✅ Execution синхронизирован". В остальных случаях, даже если вы видите 100%, синхронизация еще не завершена.

📋 Главное меню

Скрипт предлагает следующее меню (на английском или русском языке):

  1. Установить требования (Docker и др.)
  2. Установить ноду
  3. Обновить контейнеры
  4. Посмотреть логи
  5. Проверить статус синхронизации
  6. Настроить Telegram уведомления со сатусом синхронизации
  7. Удалить Telegram уведомления
  8. Остановить контейнеры
  9. Запустить контейнеры
  10. Удалить ноду
  11. Изменить порты для установленной ноды
  12. Проверить использование диска
  13. Управление файрволлом
  14. Проверить RPC-сервер
  15. Настроить ресурсы Docker
  16. Выход

🔐 Telegram уведомления

Скрипт поддерживает cron-агент, который будет проверять статус ноды и отправлять уведомления в Telegram.

Настройка:

  1. Получите Telegram токен от BotFather
  2. Узнайте свой chat_id, например с помощью IDBot
  3. Введите их в скрипте при установке cron-агента

Выберите интервал оповещений:

  • Каждые 5, 10, 15, 30 минут или каждый час

🧠 Поддерживаемые клиенты

Были протестированы следующие конфигурации:

Execution / Consensus Prysm Teku Lighthouse
Geth ⚠️
Reth ⚠️
Nethermind ⚠️

Легенда:

  • ✅ — работает на портах по умолчанию / работает на пользовательских портах
  • ⚠️ — работает, но рекоменендуется изменение P2P-порта консенсуса, отличный от 9000

📡 Мониторинг синхронизации

В зависимости от клиента используется свой алгорим для отображения статуса синхронизации.

Возможности отображения статуса синхронизации Execution-клиентов

Скрипт определяет:

Возможность Geth Reth Nethermind
Текущий и целевой блок
Прогресс синхронизации (%)
Стадия синхронизации
Скорость синхронизации (блоков/сек)
Прогноз времени завершения
Статус завершения синхронизации

Возможности отображения статуса синхронизации Consensus-клиентов

Скрипт определяет:

Возможность Prysm Teku Lighthouse
Текущий и целевой блок
В процессе синхронизации
Статус завершения синхронизации

🔗 RPC ссылки

  • RPC URL: http://localhost:8545 (порт по умолчанию - 8545, или другой порт, который вы установите)
  • BEACON RPC URL: http://localhost:5052 (порт по умолчанию - 5052, или другой порт, который вы установите)

localhost замените на ip-адрес вашего сервера.

🔥 Управление файрволлом

Этот пункт меню добавляет возможность управлять файрволлом UFW и IPTABLES на сервере. Он помогает защитить ноду, контролируя доступ к важным портам. Ознакомьтесь с подробным описанием работы функции Управление файрволлом: Firewall-Manager.md

Пункты меню

  1. Включение и подготовка (ufw, iptables) Открывает SSH-порты (22, ssh), включает UFW, подготавливает iptables. Если UFW уже активирован или iptables уже существуют, скрипт уведомит об этом.

  2. Управление портами Добавление/удаление правил по номеру. Все направления и протоколы. Опция блокировки всех входящих соединений.

  3. Управление IP-адресами Добавление/удаление правил по номеру. IP-адрес с уточнением порта, все направления и протоколы.

  4. Просмотр всех правил Показ правил цепочки DOCKER-USER и UFW

  5. Сброс всех правил и перезапуск Docker Удаляет правила DOCKER-USER и UFW, отключает UFW, перезапускает Docker для восстановления правил по умолчанию.

Особенности

  • Все критичные операции требуют явного подтверждения, что снижает риск ошибок.
  • Имеется защита от дублирования правил
  • Корректный порядок удаления и добавления правил

🌐 Проверка RPC и blob-данных

Функция выполняет проверку RPC-доступности и наличия blob-данных за последние слоты.

🔍 Что делает проверка:

  • Определяет внешний IP-адрес сервера
  • Проверяет доступность Execution RPC и Beacon RPC
  • Запрашивает последний блок и версию клиента
  • Проверяет наличие blob-данных за последние 10 слотов

✅ Статус определяется по количеству слотов с blob-данными:

  • HEALTHY: ≥75%
  • WARNING: 25–74%
  • CRITICAL: <25%

Полезно для диагностики и понимания, что узел корректно обрабатывает данные с EIP-4844 (blobs).

🗑️ Удаление

Опция удаления полностью очищает данные и удаляет все связанные контейнеры. Требуется подтверждение.

📄 Лицензия

MIT License. Используйте на свой страх и риск.

✍️ Обратная связь

Любые вопросы, сообщения об ошибках или отзывы:

https://t.me/+DLsyG6ol3SFjM2Vk

About

Automatic Ethereum RPC node installation script (Ethereum RPC guide). Mainnet, Holesky, Hoodi, Sepolia. Support Aztec. English and Russian language.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages