๐Ÿ‘ŸOperating and Running a Node

This is a guide for operating and running the node.

Contents Running the Node Yourself Running the Node with Cosmovisor Running the Node Yourself Dockerized

Running the Node Yourself

# Rename the downloaded binary to a simpler name.
mv sedad-${ARCH} sedad
# mv sedad-amd64 sedad
# mv sedad-arm64 sedad

# Make the downloaded binary executable.
chmod +x sedad

# This documentation assumes that you have added the binary to $PATH as well.

# Reset the chain.
sedad tendermint unsafe-reset-all
rm -rf ~/.sedad || true

# Create your operator key.
sedad keys add <key-name>

# Initialize your node and join the network (optionally with an existing key using the recover flag).
sedad join <moniker> --network mainnet [--recover]

# Start your node.
sedad start

Running the Node with Cosmovisor

Run the node as a subprocess of Cosmovisor if you want automatic upgrading, which only requires you to place a new binary in the right location before an upgrade height.

Install Cosmovisor.

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

Then, add these lines to your profile (maybe .profile, .zprofile, or something else) to set up environment variables:

echo "# Cosmovisor Setup" >> ~/.profile
echo "export DAEMON_NAME=sedad" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.sedad" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=false" >> ~/.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 ~/.profile

Initialize Cosmovisor with the chain binary and start the node.

cosmovisor init sedad
cosmovisor run start

Note that for an upgrade, simply run the following command to prepare Cosmovisor with the upgrade binary before the chain reaches the upgrade height.

cosmovisor add-upgrade <upgrade-name> <upgrade-binary-file>

Running the Node Yourself Dockerized


To start a SEDA chain node with Docker (only recommended for those familiar with the tool):

docker run -d --name seda_node \
-p 26656:26656 \
-p 26657:26657 \
-p 9090:9090 \
--env MONIKER=<your_moniker>
--env NETWORK=mainnet
ghcr.io/sedaprotocol/seda-chain:v0.1.1 sedad start

Note the version v0.1.1, which is the chain binary version used for the mainnet launch. Exposing the ports is optional.

To check the status of the node you can check the normal docker way:

docker logs seda_node -n 100

or by interacting with the CLI from within the container:

docker exec seda_node sedad status


When an upgrade proposal is passed, node operators are expected to use Cosmovisor to prepare the node for an automatic upgrade. Since the Docker image provided by SEDA is already configured to use Cosmovisor, simply run the following commands to download and place the upgrade binary inside the container.

UPGRADE_NAME=v0.0.7 # upgrade name example

wget https://github.com/sedaprotocol/seda-chain/releases/download/$UPGRADE_NAME/sedad-amd64
chmod +x sedad-amd64
docker exec seda_node mkdir -p /home/seda/.sedad/cosmovisor/upgrades/$UPGRADE_NAME/bin
docker cp sedad-amd64 seda_node:/home/seda/.sedad/cosmovisor/upgrades/$UPGRADE_NAME/bin/sedad

Stopping and Resuming

The docker container should can be stopped and resumed as follows:

docker stop seda_node

# This runs it as a background process handled by docker.
docker start seda_node

License Contents of this repository are open source under GNU General Public License v3.0.

Last updated