Cosmovisorのセットアップ
メインネットでは、ノードの実行にCosmovisorを使用することをお勧めします。
Cosmovisorの設定は比較的簡単です。ただし、特定の環境変数とフォルダ構造が設定されている必要があります。
Cosmovisorを使用すると、チェーンのアップグレードのためにバイナリを事前にダウンロードできます。つまり、ダウンタイムをゼロ(またはほぼゼロ)に抑えてチェーンのアップグレードを実行できます。また、ローカルのタイムゾーンによってチェーンのアップグレードが不都合な時間に発生する場合にも便利です。
夜遅くにストレスの多い運用タスクを実行するよりも、それらを自動化できる方が常に優れています。それがCosmovisorが試みることです。
インストール
「インストール」セクションへのリンクまず、cosmovisorを入手します(推奨されるアプローチ):
# 特定のバージョンをターゲットにするには:go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0シェルに環境変数を追加する
「シェルに環境変数を追加する」セクションへのリンク一部の環境変数は、各ノードと各ネットワークに対して適切な値に設定する必要があります。
echo "export DAEMON_NAME=sunrised" >> ~/.profileecho "export DAEMON_HOME=$HOME/.sunrised" >> ~/.profileecho "export DAEMON_ALLOW_DOWNLOAD_BINARIES=true" >> ~/.profileecho "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profileecho "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profileecho "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile次に、プロファイルをソースして、これらの変数にアクセスできるようにします。
source ~/.bash_profileフォルダ構造の設定
「フォルダ構造の設定」セクションへのリンクmkdir -p $DAEMON_HOME/cosmovisormkdir -p $DAEMON_HOME/cosmovisor/genesismkdir -p $DAEMON_HOME/cosmovisor/genesis/binmkdir -p $DAEMON_HOME/cosmovisor/upgradesジェネシスバイナリの設定
「ジェネシスバイナリの設定」セクションへのリンクCosmovisorは、ジェネシスで使用するバイナリを知る必要があります。これを$DAEMON_HOME/cosmovisor/genesis/binに置きます。
Githubでジェネシスのバイナリバージョンを確認してください。
wget https://github.com/sunriselayer/sunrise/releases/download/<version>/sunrisedcp sunrised $DAEMON_HOME/cosmovisor/genesis/binサービスの設定
「サービスの設定」セクションへのリンクCosmovisorに送信されたコマンドは、基盤となるバイナリに送信されます。たとえば、cosmovisor versionはsunrised versionと入力するのと同じです。それでも、sunrisedをプロセス管理ツールで管理するのと同じように、エラーや再起動などが発生した場合にCosmovisorが自動的に再起動されるようにしたいと考えています。まず、サービスファイルを作成します。
sudo vi /lib/systemd/system/cosmovisor.service以下の内容を自分の設定に合わせて変更してください。
[Unit]Description=Cosmovisor daemonAfter=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=$USERExecStart=${HOME}/go/bin/cosmovisor startRestart=alwaysRestartSec=3LimitNOFILE=infinityLimitNPROC=infinity[Install]WantedBy=multi-user.targetCosmovisorの起動
「Cosmovisorの起動」セクションへのリンクsudo systemctl daemon-reloadsudo systemctl restart systemd-journaldsudo systemctl enable cosmovisorsudo systemctl start cosmovisor実行中であることを確認するには、次を使用します。
sudo systemctl status cosmovisor起動後にサービスを監視する必要がある場合は、次を使用してログを表示できます。
sudo journalctl -u cosmovisor -f -o cat