Setup Cosmovisor

メインネットでは、ノードの実行にCosmovisorを使用することをお勧めします。

Cosmovisorの設定は比較的簡単です。ただし、特定の環境変数とフォルダ構造が設定されている必要があります。 Cosmovisorを使用すると、チェーンのアップグレードのためにバイナリを事前にダウンロードできます。つまり、ダウンタイムをゼロ(またはほぼゼロ)に抑えてチェーンのアップグレードを実行できます。また、ローカルのタイムゾーンによってチェーンのアップグレードが不都合な時間に発生する場合にも便利です。 夜遅くにストレスの多い運用タスクを実行するよりも、それらを自動化できる方が常に優れています。それがCosmovisorが試みることです。

インストール

まず、cosmovisorを入手します(推奨されるアプローチ):

# 特定のバージョンをターゲットにするには:
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]

シェルに環境変数を追加する

一部の環境変数は、各ノードと各ネットワークに対して適切な値に設定する必要があります。

echo "export DAEMON_NAME=sunrised" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.sunrised" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=true" >> ~/.profile
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profile
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profile
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile

次に、プロファイルをソースして、これらの変数にアクセスできるようにします。

source ~/.bash_profile

フォルダ構造の設定

mkdir -p $DAEMON_HOME/cosmovisor
mkdir -p $DAEMON_HOME/cosmovisor/genesis
mkdir -p $DAEMON_HOME/cosmovisor/genesis/bin
mkdir -p $DAEMON_HOME/cosmovisor/upgrades

ジェネシスバイナリの設定

Cosmovisorは、ジェネシスで使用するバイナリを知る必要があります。これを$DAEMON_HOME/cosmovisor/genesis/binに置きます。

Githubでジェネシスのバイナリバージョンを確認してください。

wget https://github.com/sunriselayer/sunrise/releases/download/<version>/sunrised
cp sunrised $DAEMON_HOME/cosmovisor/genesis/bin

サービスの設定

Cosmovisorに送信されたコマンドは、基盤となるバイナリに送信されます。たとえば、cosmovisor versionsunrised versionと入力するのと同じです。それでも、sunrisedをプロセス管理ツールで管理するのと同じように、エラーや再起動などが発生した場合にCosmovisorが自動的に再起動されるようにしたいと考えています。まず、サービスファイルを作成します。

sudo vi /lib/systemd/system/cosmovisor.service

以下の内容を自分の設定に合わせて変更してください。

[Unit]
Description=Cosmovisor daemon
After=network-online.target
[Service]
Environment="DAEMON_NAME=sunrised"
Environment="DAEMON_HOME=$DAEMON_HOME"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true" // 推奨
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
User=$USER
ExecStart=${HOME}/go/bin/cosmovisor start
Restart=always
RestartSec=3
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target

環境変数の説明はこちらにあります。設定に応じて変更してください。

Cosmovisorの起動

sudo systemctl daemon-reload
sudo systemctl restart systemd-journald
sudo systemctl enable cosmovisor
sudo systemctl start cosmovisor

実行中であることを確認するには、次を使用します。

sudo systemctl status cosmovisor

起動後にサービスを監視する必要がある場合は、次を使用してログを表示できます。

sudo journalctl -u cosmovisor -f -o cat

最終更新