COSMOS WIKI
May 8, 2022
Запуск нескольких нод Cosmos на 1 сервере
🪓 Telegram канал UTSA 🪓 Telegram чат UTSA
Cosmos использует Tendermint. Tendermint — это алгоритм консенсуса, устойчивый к злоумышленным действиям. Запустив несколько нод с Tendermint пользователь столкнется с пересечением используемых портов и соответственно неработоспособностью второй и последующих нод
По умолчанию используются порты: 26656; 26657; 6060; 26658; 26660; 9090; 9091 и др
Не рекомендуется устанавливать большое количество нод на 1 сервер - делайте все на свой страх и риск!
proxy_app = "tcp://127.0.0.1:26658"
rpc laddr = "tcp://127.0.0.1:26657"
pprof_laddr = "localhost:6060"
p2p laddr = "tcp://0.0.0.0:26656"
prometheus_listen_addr = ":26660"
Соответственно для второй и последующих нод необходимо сменить данные порты, чтобы они не пересекались. Это можно сделать вручную $HOME/.defund/config/config.toml
или используя следующие команды:
# зададим переменную work_dir=.defund
# для 2 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:36658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:36657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6061\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:36656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":36660\"%" $HOME/$work_dir/config/config.toml # для 3 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:46658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:46657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6062\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:46656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":46660\"%" $HOME/$work_dir/config/config.toml # для 4 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:56658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:56657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6063\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:56656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":56660\"%" $HOME/$work_dir/config/config.toml # для 5 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:60558\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:60557\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6064\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:60556\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":60560\"%" $HOME/$work_dir/config/config.toml # для 6 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:60658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:60657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6065\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:60656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":60660\"%" $HOME/$work_dir/config/config.toml # для 7 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:60758\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:60757\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6066\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:60756\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":60760\"%" $HOME/$work_dir/config/config.toml # для 8 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:60858\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:60857\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6067\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:60856\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":60860\"%" $HOME/$work_dir/config/config.toml # для 9 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:60958\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:60957\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6068\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:60956\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":60960\"%" $HOME/$work_dir/config/config.toml # для 10 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:61058\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:61057\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6069\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:61056\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":61060\"%" $HOME/$work_dir/config/config.toml # для 11 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:61158\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:61157\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6070\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:61156\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":61160\"%" $HOME/$work_dir/config/config.toml # для 12 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:61258\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:61257\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6071\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:61256\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":61260\"%" $HOME/$work_dir/config/config.toml # для 13 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:61358\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:61357\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6072\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:61356\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":61360\"%" $HOME/$work_dir/config/config.toml # для 14 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:61458\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:61457\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6073\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:61456\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":61460\"%" $HOME/$work_dir/config/config.toml # для 15 ноды sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:61558\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:61557\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:6074\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:61556\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":61560\"%" $HOME/$work_dir/config/config.toml
# для 2 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9190\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9191\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1327\"%" $HOME/$work_dir/config/app.toml # для 3 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9290\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9291\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1337\"%" $HOME/$work_dir/config/app.toml # для 4 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9390\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9391\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1347\"%" $HOME/$work_dir/config/app.toml # для 5 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9490\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9491\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1357\"%" $HOME/$work_dir/config/app.toml # для 6 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9590\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9591\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1367\"%" $HOME/$work_dir/config/app.toml # для 7 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9690\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9691\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1377\"%" $HOME/$work_dir/config/app.toml # для 8 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9790\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9791\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1387\"%" $HOME/$work_dir/config/app.toml # для 9 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9890\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9891\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1397\"%" $HOME/$work_dir/config/app.toml # для 10 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9990\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9991\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1407\"%" $HOME/$work_dir/config/app.toml # для 11 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9900\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9901\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1417\"%" $HOME/$work_dir/config/app.toml # для 12 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9910\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9911\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1427\"%" $HOME/$work_dir/config/app.toml # для 13 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9920\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9921\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1437\"%" $HOME/$work_dir/config/app.toml # для 14 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9930\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9931\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1447\"%" $HOME/$work_dir/config/app.toml # для 15 ноды sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:9940\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:9941\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1457\"%" $HOME/$work_dir/config/app.toml
# для 2 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:36657\"%" $HOME/$work_dir/config/client.toml # для 3 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:46657\"%" $HOME/$work_dir/config/client.toml # для 4 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:56657\"%" $HOME/$work_dir/config/client.toml # для 5 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:60557\"%" $HOME/$work_dir/config/client.toml # для 6 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:60657\"%" $HOME/$work_dir/config/client.toml # для 7 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:60757\"%" $HOME/$work_dir/config/client.toml # для 8 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:60857\"%" $HOME/$work_dir/config/client.toml # для 9 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:60957\"%" $HOME/$work_dir/config/client.toml # для 10 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:61057\"%" $HOME/$work_dir/config/client.toml # для 11 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:61157\"%" $HOME/$work_dir/config/client.toml # для 12 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:61257\"%" $HOME/$work_dir/config/client.toml # для 13 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:61357\"%" $HOME/$work_dir/config/client.toml # для 14 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:61457\"%" $HOME/$work_dir/config/client.toml # для 15 ноды sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:61557\"%" $HOME/$work_dir/config/client.toml
# для 2 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:36656\"/" $HOME/$work_dir/config/config.toml # для 3 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:46656\"/" $HOME/$work_dir/config/config.toml # для 4 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:56656\"/" $HOME/$work_dir/config/config.toml # для 5 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:60556\"/" $HOME/$work_dir/config/config.toml # для 6 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:60656\"/" $HOME/$work_dir/config/config.toml # для 7 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:60756\"/" $HOME/$work_dir/config/config.toml # для 8 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:60856\"/" $HOME/$work_dir/config/config.toml # для 9 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:60956\"/" $HOME/$work_dir/config/config.toml # для 10 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:61056\"/" $HOME/$work_dir/config/config.toml # для 11 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:61156\"/" $HOME/$work_dir/config/config.toml # для 12 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:61256\"/" $HOME/$work_dir/config/config.toml # для 13 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:61356\"/" $HOME/$work_dir/config/config.toml # для 14 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:61456\"/" $HOME/$work_dir/config/config.toml # для 15 ноды sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:61556\"/" $HOME/$work_dir/config/config.toml
# после изменений не забываем перезагрузить ноду sudo systemctl restart defundd && sudo journalctl -u defundd -f -o cat