cosmovisor
— это небольшой диспетчер процессов для двоичных файлов приложений Cosmos SDK, который отслеживает модуль управления на наличие входящих предложений по обновлению цепочки. Если он увидит одобренное предложение, он cosmovisor
может автоматически загрузить новый двоичный файл, остановить текущий двоичный файл, переключиться со старого двоичного файла на новый и, наконец, перезапустить узел с новым двоичным файлом.
Cosmovisor Cosmos Документация
- Установите последнюю версию
cosmovisor
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@latest
- Установить из исходников
git clone [email protected]:cosmos/cosmos-sdk
cd cosmos-sdk
git checkout cosmovisor/vx.x.x
make cosmovisor
Это будет cosmovisor
встроено в каталог /cosmovisor. После этого вы можете поместить его в PATH вашей машины следующим образом:
cp cosmovisor/cosmovisor ~/go/bin/cosmovisor
Добавьте переменные среды в вашу оболочку
В файле .profile, обычно расположенном в ~/.profile, добавьте:
export DAEMON_NAME=aurad
export DAEMON_HOME=$HOME/.aura
export DAEMON_RESTART_AFTER_UPGRADE=true
Затем введите свой профиль:
source ~/.profile
Настроить структуру
Cosmovisor предполагает определенную структуру папок:
$DAEMON_HOME
├── cosmovisor
│ ├── current -> genesis or upgrades/<name>
│ ├── genesis
│ │ └── bin
│ │ └── $DAEMON_NAME
│ └── upgrades
│ └── <name>
│ ├── bin
│ │ └── $DAEMON_NAME
│ └── upgrade-info.json
└── ...
current
- символическая ссылка, используемая Cosmovisor. Другие папки потребуют настройки:
mkdir -p $DAEMON_HOME/cosmovisor/genesis/bin
mkdir -p $DAEMON_HOME/cosmovisor/upgrades
Настройте двоичный файл
Cosmovisor должен знать, какой бинарник использовать при генезисе. Мы помещаем это во $DAEMON_HOME/cosmovisor/genesis/bin
-первых, найдите местоположение aurad
:
which aurad
Затем используйте возвращенный путь, чтобы скопировать его в каталог, который ожидает Cosmovisor. Предположим, что предыдущая команда вернула/home/<your-user>/go/bin/aurad
cp /home/<your-user>/go/bin/aurad $DAEMON_HOME/cosmovisor/genesis/bin
Настройте систему
Настроить cosmovisor
как системную службу для автоматического запуска.
systemd
используется для демонстрации.
Сначала создайте файл службы:
sudo vi /etc/systemd/system/cosmovisor.service
Измените содержимое ниже, чтобы оно соответствовало вашей настройке -cosmovisor
[Unit]
Description=cosmovisor
After=network-online.target
[Service]
User=<your-user>
ExecStart=/home/<your-user>/go/bin/cosmovisor run start
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=aurad"
Environment="DAEMON_HOME=/home/<your-user>/.aura"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
[Install]
WantedBy=multi-user.target
Запустить Cosmovisor
Включите службу и запустите ее:
sudo -S systemctl daemon-reload
sudo -S systemctl enable cosmovisor
sudo systemctl start cosmovisor
Проверьте, работает ли он, используя:
sudo systemctl status cosmovisor
journalctl -u cosmovisor -f
🗣Присоединяйтесь к русскоговорящему сообществу Aura Network: