Cosmovisor is a process manager designed for Cosmos SDK–based blockchains that simplifies the management of binary (chain) upgrades. This guide provides step‐by‐step instructions to set up Cosmovisor for your Injective Network node.
Note: These instructions assume you already have an existing chain binary (e.g., injectived) and a working Go environment if you choose to install Cosmovisor from source. Adjust the names and paths as needed for your specific setup.
Table of Contents
- Installation
- Environment Variables
- Directory Structure
- Running Cosmovisor
- Handling Chain Upgrades
- Running Cosmovisor as a Systemd Service
Installation
Installing via Go
If you have Go installed, you can install Cosmovisor with the following command:
Tip: Ensure that your Go binary installation path (commonly $GOPATH/bin or $HOME/go/bin) is added to your system’s PATH. You can verify the installation by running:
Environment Variables
Set up the following environment variables so that Cosmovisor knows which binary to run and where to locate it:
-
DAEMON_NAME
The name of your chain’s binary (e.g., injectived).
-
DAEMON_HOME
The home directory for your node (e.g., ~/.injectived).
You can set these variables in your shell’s profile (like ~/.bashrc or ~/.profile) or export them directly in your terminal session:
Directory Structure
Cosmovisor expects a specific folder structure in your node’s home directory:
-
Create the Genesis Directory
This directory holds the initial (genesis) binary.
-
Copy Your Current Binary
Place your current chain binary (e.g.,
injectived) into the genesis folder. Make sure the file name matches the DAEMON_NAME value (see next section).
Running Cosmovisor
Instead of running your chain’s binary directly, start your node with Cosmovisor by executing:
Cosmovisor will:
- Look for the binary in
$DAEMON_HOME/cosmovisor/genesis/bin (or the appropriate upgrade folder).
- Start your node using that binary.
- Monitor for any on-chain upgrade signals and automatically switch binaries when needed.
Handling Chain Upgrades
When an upgrade is announced on-chain, prepare the new binary so Cosmovisor can switch to it automatically:
-
Create an Upgrade Directory
Use the upgrade name provided on-chain (e.g.,
v1.14.0):
-
Place the New Binary
Compile or download the new binary, then copy it into the upgrade directory. Ensure the binary name matches
DAEMON_NAME.
TIP: If you have downloaded the injectived binary package from GitHub, we copy libwasmvm.x86_64.so to the upgrade bin directory. An environment variable will be later added to the systemd service to add this directory to LD_LIBRARY_PATH.
-
Upgrade Process
When the upgrade height is reached, Cosmovisor will detect the scheduled upgrade and automatically switch to the binary located in the corresponding upgrade folder.
Running Cosmovisor as a Systemd Service
For production environments, it is common to run your node as a systemd service. Below is an example service file.
-
Create the Service File
Create a file (e.g.,
/etc/systemd/system/injectived.service) with the following content. Adjust the paths and <your_username> accordingly:
-
Enable and Start the Service
-
Check Logs
Verify that your service is running smoothly:
Last modified on March 30, 2026