Как подселять ноды? Редактирование портов в нодах Cosmos для запуска нескольких нод на одном сервере.
Здравствуйте, многие задаются вопросом, можно ли установить несколько нод на один сервер? В этой небольшой статье мы постараемся объяснить как подселять ноды на один сервер.
Основная проблема работоспособности нескольких нод на одном сервере это конфликт сетевых портов используемых нодами, так ноды основанные на Cosmos используют по умолчанию порты 26656; 26657; 6060; 26658; 26660; 9090; 9091. Но и несомненным плюсом Cosmos нод является то что порты легко изменить в конфигурационном файле.
Для того чтобы определить какие порты у нас заняты воспользуемся инструментом netstat (если он у вас не установлен то установить : sudo apt install net-tools )
В выводе будут показаны используемые порты и какой сервис их использует
Далее если какие то порты пересекаются с Cosmos нодой (Если у вас на сервере уже стоит космос нода то пересечение будет), то идем в конфиг и правим его, т.е. задаем новые порты для ноды.
Дальнейшие примеры будут для ноды SEI, так как в космосе всё в основном стандартно просто меняете папку ноды (вместо .sei/ на свою)
Для того чтобы не запутаться рекомендуется создать свою схему замены портов, можно менять например первую цифру, или придумать свой пул нумерации, главное не забывать что максимальное количество портов 65536
Теперь рассмотрим где находятся интересующие нас порты, открываем config.toml
Первый интересующий нас порт находится здесь
После замены портов сохраняем конфиг, ctrl+o enter, и выходим из редактора, ctrl+x.
Теперь нужно заменить порты в app.toml
Интересующие нас порты находятся здесь
После замены портов сохраняем конфиг, ctrl+o enter, и выходим из редактора, ctrl+x.
И последний нужный нам порт находится в client.toml (!!! Внимательно номер этого порта должен быть такой же как и номер второго порта в config.toml !!!)
Так же можно заменить порты при помощи команды sed ( порты которые нужно заменить выделены подчеркиванием, для примера в пятизначных портах первая цифра заменена на 1, в четырёхзначных 1 добавлена в начале)
Команда замены для config.toml
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:16658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:16657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:16060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:16656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":16660\"%" $HOME/.sei/config/config.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:19090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:19091\"%" $HOME/.sei/config/app.toml
Команда замены для client.toml
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:16657\"%" $HOME/.sei/config/client.toml
Если конфиг файлы редактировались после запуска ноды, то не забудьте ее перезапустить.
Так же после запуска нескольких нод на одном сервере не забывайте, проверять загруженность ресурсов. Рекомендуем для терминала использовать инструмент htop, так как наглядно видно сколько ресурсов занято и какой из процессов сколько забирает.
Большое спасибо, за внимание и уделенное время
Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms