README еще требует правки, не полная информация
Обязательно нужно поправить base в файле под себя.
Этот проект мониторит статус валидаторов Elixir и записывает результаты в базу данных MySQL. Ниже представлена структура базы данных и необходимые SQL-команды для создания требуемых таблиц.
Эта база данных содержит следующие таблицы:
-
Таблица:
elixir- Описание: Хранит информацию о кошельках, которые мониторятся.
- Поля:
wallet_address(TEXT, PRIMARY KEY): Уникальный адрес кошелька.online(TEXT): Статус онлайн кошелька, представленный:🟢(Онлайн)❌(Оффлайн)ОШИБКА-ПРОВЕРИТЬ(Ошибка)
uptime_week(TEXT): Время работы кошелька за последнюю неделю, представленное в текстовом формате.
-
Таблица:
proxy- Описание: Хранит IP-адреса прокси-серверов, используемых для выполнения запросов.
- Поля:
id(INT, AUTO_INCREMENT, PRIMARY KEY): Уникальный идентификатор для каждого прокси.IP(TEXT): IP-адрес прокси-сервера.
Для настройки структуры базы данных выполните следующие SQL-команды в вашей MySQL среде (создается один раз, и дальше используется всеми скриптами):
-- Создать базу данных, если она не существует
CREATE DATABASE IF NOT EXISTS DATA;
-- Использовать созданную базу данных
USE DATA;
-- Создать таблицу с нужной структурой
CREATE TABLE IF NOT EXISTS my_table (
id INT PRIMARY KEY AUTO_INCREMENT, -- Уникальный идентификатор (автоинкремент)
ids INT DEFAULT NULL, -- Дополнительный идентификатор
online TEXT DEFAULT NULL, -- Статус онлайн
uptime_week TEXT DEFAULT NULL, -- Время работы за неделю
transaction TEXT DEFAULT NULL, -- Информация о транзакции
name TEXT DEFAULT NULL, -- Имя
desktop TEXT DEFAULT NULL, -- Информация о контейнере
gray_ip TEXT DEFAULT NULL, -- Серый IP
white_ip TEXT DEFAULT NULL, -- Белый IP
private_key TEXT DEFAULT NULL, -- Приватный ключ
wallet_address TEXT DEFAULT NULL, -- Адрес кошелька
mnemonic TEXT NOT NULL, -- Мнемоническая фраза (обязательное поле)
last_updated TEXT DEFAULT NULL -- Дата последнего обновления
);Этот скрипт предназначен для проверки и обновления нод Elixir, основываясь на последнем обновлении контейнера в Docker Hub и значениях, хранящихся в базе данных MySQL.
Скрипт выполняет следующие функции:
-
Получение последнего обновления из Docker Hub: С помощью API Docker Hub скрипт получает дату последнего обновления для указанного репозитория.
-
Подключение к базе данных MySQL: Скрипт подключается к базе данных MySQL для извлечения IP-адресов нод и значений последнего обновления.
-
Обновление нод: Если значение последнего обновления в базе данных отличается от значения, полученного из Docker Hub, скрипт подключается к соответствующей ноде через SSH и выполняет команду обновления.
-
Убедитесь, что у вас установлены следующие библиотеки:
pip install requests mysql-connector-python paramiko tqdm
base = {
'user': 'root',
'passwd': 'YOUR PASSWORD',
'host': 'IP FOR SERVER MYSQL',
'database': 'DATA',
'raise_on_warnings': True
}Запустите скрипт
python3 auto_update_elixir.pyЭтот скрипт предназначен для обновления контейнера Elixir на сервере. Он останавливает текущий контейнер, загружает последнюю версию и запускает новый контейнер с необходимыми параметрами.
Скрипт выполняет следующие действия:
- Загружает и выполняет скрипт логотипа.
- Останавливает и удаляет текущий контейнер Elixir.
- Загружает последнюю версию образа
elixirprotocol/validator:v3из Docker Hub. - Запускает новый контейнер с параметрами, указанными в файле окружения
/root/validator.env.
Убедитесь, что у вас установлен Docker. Если Docker не установлен, следуйте инструкциям по установке Docker.
bash <(curl -s https://raw.githubusercontent.com/DenisHumen/elixir/refs/heads/main/elixir_update.sh)Этот скрипт предназначен для автоматической установки и настройки ноды Elixir на сервере. Он обновляет систему, устанавливает необходимые пакеты, создает файл окружения для контейнера и запускает ноду.
Скрипт выполняет следующие действия:
- Обновляет пакеты системы.
- Устанавливает
curlиdocker.io. - Загружает и выполняет скрипт логотипа.
- Запрашивает адрес кошелька, приватный ключ и имя ноды у пользователя.
- Создает файл
validator.envс введенными данными. - Загружает образ
elixirprotocol/validator:v3. - Запускает новый контейнер Elixir с заданными параметрами.
- Предоставляет команды для просмотра логов и обновления ноды.
bash <(curl -s https://raw.githubusercontent.com/DenisHumen/elixir/refs/heads/main/install_elixir_validator.sh)