Содержание статьи

На одном сервере можно запускать несколько нод при условии правильного распределения ресурсов. Для стабильной работы рекомендуется иметь не менее 8 ГБ оперативной памяти, 4 ядра процессора и свободное место на диске от 100 ГБ для каждой ноды. Разделение данных и портов предотвращает конфликты и позволяет обеим нодам работать независимо.
Перед установкой важно проверить версии операционной системы и совместимость используемого программного обеспечения. На серверах под управлением Linux Ubuntu 20.04 и выше настройка двух нод требует отдельного каталога данных для каждой и назначения уникальных портов RPC и P2P. Это исключает пересечение сетевых соединений и ошибок при синхронизации блокчейна.
В процессе установки необходимо учитывать ограничения ресурсов сервера. Каждая нода должна иметь выделенный каталог для логов и блокчейн-данных, чтобы уменьшить нагрузку на файловую систему. Рекомендуется заранее настроить резервное копирование и мониторинг, чтобы отслеживать использование CPU, памяти и диска для каждой ноды.
Данное руководство описывает пошаговые действия от подготовки среды до запуска и проверки работы двух нод на одном сервере. Следуя этим рекомендациям, можно организовать работу нескольких экземпляров без конфликтов и обеспечить их непрерывную работу с минимальными вмешательствами.
Проверка системных требований и свободного места на сервере

Перед установкой двух нод необходимо убедиться, что сервер соответствует минимальным требованиям и имеет достаточно ресурсов для стабильной работы каждого экземпляра. Важно проверить объем оперативной памяти, количество ядер процессора и свободное место на диске.
| Компонент | Рекомендуемое значение для одной ноды | Рекомендации для двух нод |
|---|---|---|
| Оперативная память (RAM) | 4 ГБ | 8 ГБ и более |
| Процессор (CPU) | 2 ядра | 4 ядра и более |
| Свободное место на диске | 100 ГБ | 200 ГБ и более с учетом роста блокчейна |
| Сетевой порт | Любой свободный | Два уникальных порта для P2P и RPC для каждой ноды |
Для проверки текущих ресурсов сервера используйте команды free -h для оперативной памяти, lscpu для CPU и df -h для дискового пространства. Свободное место должно превышать рекомендуемый объем на 20-30%, чтобы избежать проблем при скачивании блокчейна и работе нод.
После проверки ресурсов следует убедиться, что системные зависимости и версии ОС поддерживают запуск нескольких экземпляров. Для Linux Ubuntu 20.04 и выше рекомендуется использовать отдельные каталоги данных и логов для каждой ноды, чтобы исключить конфликты при записи данных.
Подготовка среды: установка необходимых зависимостей и инструментов

Для корректной работы двух нод на одном сервере требуется установить базовые системные пакеты и инструменты для управления процессами. На Linux Ubuntu 20.04 и выше рекомендуется установить build-essential, curl, wget, git и ufw для управления сетевыми портами.
Для работы нод необходимо наличие Python 3.8+ и Node.js 16+, если используемый блокчейн требует этих сред. Проверка версий осуществляется командами python3 —version и node -v. При необходимости версии обновляются через официальные репозитории или менеджеры пакетов.
Установка менеджера процессов systemd или pm2 позволяет запускать ноды как сервисы, контролировать их состояние и автоматически перезапускать при сбоях. Для pm2 команды: npm install pm2 -g и pm2 start с указанием скрипта ноды.
Для разделения среды каждой ноды создаются отдельные каталоги данных и логов. Необходимо убедиться, что права доступа настроены корректно, чтобы каждая нода могла записывать данные без конфликтов. Рекомендуется использовать команды mkdir -p /opt/node1/data и chmod 700 /opt/node1/data для первой ноды, аналогично для второй.
Дополнительно следует настроить базовую защиту сервера: открыть необходимые порты через ufw allow и запретить неиспользуемые. Это снижает риск конфликтов сетевых подключений и обеспечивает стабильность работы обеих нод.
Настройка первой ноды и присвоение уникального порта
Для запуска первой ноды на сервере создайте отдельный каталог данных и логов:
- mkdir -p /opt/node1/data – каталог данных
- mkdir -p /opt/node1/logs – каталог логов
- chmod 700 /opt/node1/data – права доступа
Сконфигурируйте файл настроек ноды, указав уникальные порты для P2P и RPC-соединений. Например:
- P2P-порт: 30301
- RPC-порт: 8545
В файле конфигурации это выглядит как:
- p2p_port = 30301
- rpc_port = 8545
- data_dir = /opt/node1/data
- log_dir = /opt/node1/logs
Для запуска ноды используйте менеджер процессов, чтобы контролировать её состояние:
- pm2 start node —name node1 — —config /opt/node1/config.toml
После запуска проверьте статус ноды и доступность портов:
- pm2 status node1 – состояние процесса
- netstat -tuln | grep 30301 – проверка P2P-порта
- curl http://localhost:8545 – проверка RPC-порта
Все настройки первой ноды должны быть завершены перед переходом к установке второй, чтобы исключить конфликты портов и каталогов.
Конфигурация второй ноды с отдельным каталогом данных
Для второй ноды создайте отдельные каталоги данных и логов, чтобы исключить пересечение с первой нодой:
- mkdir -p /opt/node2/data – каталог данных
- mkdir -p /opt/node2/logs – каталог логов
- chmod 700 /opt/node2/data – права доступа
Назначьте уникальные порты для P2P и RPC, отличные от первой ноды:
- P2P-порт: 30302
- RPC-порт: 8546
Настройка конфигурационного файла второй ноды:
- p2p_port = 30302
- rpc_port = 8546
- data_dir = /opt/node2/data
- log_dir = /opt/node2/logs
Запуск второй ноды через менеджер процессов:
- pm2 start node —name node2 — —config /opt/node2/config.toml
После старта необходимо проверить состояние и доступность портов:
- pm2 status node2 – проверка процесса
- netstat -tuln | grep 30302 – проверка P2P-порта
- curl http://localhost:8546 – проверка RPC-порта
Разделение каталогов данных и портов обеспечивает независимую работу обеих нод без конфликтов файловой системы и сетевых соединений.
Запуск обеих нод и проверка их статуса
После настройки конфигурации обеих нод необходимо запустить их и убедиться в корректной работе:
- Запуск первой ноды через менеджер процессов:
- pm2 start node —name node1 — —config /opt/node1/config.toml
- Запуск второй ноды:
- pm2 start node —name node2 — —config /opt/node2/config.toml
Проверка статуса процессов и их доступности:
- pm2 status – отображение состояния node1 и node2
- netstat -tuln | grep 30301 – проверка P2P-порта первой ноды
- netstat -tuln | grep 30302 – проверка P2P-порта второй ноды
- curl http://localhost:8545 – проверка RPC-порта первой ноды
- curl http://localhost:8546 – проверка RPC-порта второй ноды
Если порты открыты и процессы отображаются как online, ноды функционируют независимо. В случае ошибок проверьте конфигурационные файлы на уникальность портов и правильность путей к каталогам данных.
Рекомендуется настроить автоматический запуск обеих нод после перезагрузки сервера через pm2 startup и сохранение состояния командой pm2 save.
Настройка логирования и мониторинга работы нод
Для контроля работы обеих нод необходимо настроить логирование и мониторинг процессов. Каждая нода должна вести отдельный лог, чтобы исключить путаницу и ускорить поиск ошибок.
Настройка логов:
- Установка ротации логов через logrotate с интервалом раз в сутки или при достижении размера 100 МБ.
- Включение уровня подробности логирования: info или debug для отслеживания внутренних событий ноды.
Мониторинг работы:
- Использование pm2 monit для отслеживания нагрузки CPU, памяти и состояния процессов.
- Настройка уведомлений о сбоях: pm2 install pm2-logrotate и pm2 send-mail для оповещений.
- Проверка сетевых подключений командой netstat -tuln для уверенности, что порты остаются открытыми.
Регулярная проверка логов и состояния нод позволяет выявлять узкие места в работе и предотвращать аварийные остановки сервера. Все действия должны выполняться отдельно для каждой ноды, чтобы сохранить независимость процессов и корректность данных.
Решение распространённых ошибок при работе двух нод на одном сервере

Ошибка конфликта портов: возникает, если обе ноды используют одинаковые P2P или RPC-порты. Решение: проверить настройки конфигурационных файлов и назначить уникальные порты, например, 30301 и 30302 для P2P, 8545 и 8546 для RPC.
Недостаток ресурсов: высокая загрузка CPU или памяти может вызвать зависание нод. Решение: увеличить выделенные ресурсы сервера или ограничить использование с помощью cgroups и проверять нагрузку через htop или pm2 monit.
Конфликт каталогов данных: ошибки чтения или записи появляются при использовании одной директории для обеих нод. Решение: создать отдельные каталоги данных и логов для каждой ноды и проверить права доступа chmod 700.
Сбой при запуске процесса: нода может не стартовать из-за некорректного конфигурационного файла. Решение: проверить синтаксис файла, убедиться, что пути к каталогу данных и логов правильные, а также проверить версию используемого ПО.
Проблемы сетевого соединения: RPC или P2P порты могут быть заблокированы firewall. Решение: открыть необходимые порты с помощью ufw allow и убедиться, что сетевые правила не конфликтуют с другими сервисами.
Вопрос-ответ:
Можно ли запускать две ноды на сервере с 4 ГБ RAM?
Запуск двух нод на сервере с 4 ГБ RAM возможен, но может вызвать зависания и медленную синхронизацию блокчейна. Для стабильной работы рекомендуется минимум 8 ГБ RAM и мониторинг использования памяти, чтобы избежать падений процессов.
Как правильно присвоить уникальные порты для двух нод?
Для каждой ноды необходимо указать отдельные P2P и RPC-порты в конфигурационных файлах. Например, первая нода использует P2P 30301 и RPC 8545, а вторая нода P2P 30302 и RPC 8546. Это исключает конфликты сетевых подключений и позволяет нодам работать одновременно.
Нужны ли отдельные каталоги данных для каждой ноды?
Да, каждая нода должна иметь свой каталог данных и логов. Если использовать один и тот же каталог, будут ошибки записи и потеря данных. Создание отдельных директорий также облегчает резервное копирование и отслеживание активности каждой ноды.
Как проверить, что обе ноды запущены и работают корректно?
После запуска проверяют состояние через менеджер процессов, например pm2 status. Для проверки портов используют netstat -tuln и curl для RPC. Если процессы отображаются как online, а порты открыты и отвечают на запросы, ноды функционируют независимо.
Какие ошибки чаще всего возникают при работе двух нод на одном сервере?
Чаще всего встречаются конфликты портов, недостаток ресурсов, пересечение каталогов данных и блокировка сетевых портов firewall. Решение включает назначение уникальных портов, выделение достаточного объема памяти и CPU, создание отдельных директорий и проверку правил firewall.
Как настроить две ноды на одном сервере так, чтобы они не конфликтовали между собой?
Для корректной работы двух нод на одном сервере необходимо разделить их каталоги данных и логов, назначить уникальные P2P и RPC-порты для каждой ноды и убедиться, что системные ресурсы достаточны для одновременной работы. Например, первая нода может использовать P2P 30301 и RPC 8545, вторая нода — P2P 30302 и RPC 8546. Каждый процесс должен запускаться через менеджер процессов, такой как pm2 или systemd, чтобы контролировать состояние нод и перезапускать их при сбоях. Также важно проверить права доступа к каталогам данных, настроить мониторинг CPU и памяти и убедиться, что firewall не блокирует выбранные порты. Такой подход исключает пересечения и позволяет обеим нодам работать независимо друг от друга.
