Skip to main content

Useful Commands for SSV Mainnet

These commands assume the SSV Node stack is installed in $HOME/ssv-stack.

Environment

export SSV_STACK_DIR="$HOME/ssv-stack"
cd $SSV_STACK_DIR

Service Management

Start SSV Node, Key Generation, and DKG

docker compose --profile dkg up -d ssv-key-generation ssv-node ssv-dkg

Check Status

docker compose ps
docker compose logs --tail=100 ssv-node
docker compose logs -f ssv-node
docker compose logs -f ssv-dkg

Restart SSV Services

docker compose restart ssv-node ssv-dkg

Stop SSV Services

docker compose stop ssv-node ssv-dkg

Health and Metrics

Node Health

curl -s http://127.0.0.1:16000/v1/node/health | jq .

Metrics

curl -s http://127.0.0.1:15000/metrics | head

Port Checks

sudo ss -tulpn | grep -E '13001|12001|16000|15000|3030'

Key Files

List Operator Key Files

ls -la ssv-node-data

Backup Key Material

tar -czf ssv-node-key-backup.tar.gz \
ssv-node-data/private_key \
ssv-node-data/password
warning

Store key backups offline and never commit them to Git. The repository .gitignore excludes common key and archive formats, but operational discipline still matters.

Updates

git pull
docker compose pull ssv-node ssv-key-generation ssv-dkg
docker compose --profile dkg up -d ssv-key-generation ssv-node ssv-dkg

Optional Monitoring

The default BlockNth guide does not start Prometheus or Grafana.

# Start only after securing credentials and firewall rules.
docker compose up -d prometheus grafana alertmanager

# Stop monitoring services.
docker compose stop prometheus grafana alertmanager

Troubleshooting

Inspect Effective Configuration

docker compose config

Confirm Only SSV Services Are Running

docker compose ps --services --filter status=running

Expected default output:

ssv-node
ssv-dkg

ssv-key-generation may be absent from the running list because it exits successfully after preparing the operator key.

Recreate SSV Containers

docker compose --profile dkg up -d --force-recreate ssv-key-generation ssv-node ssv-dkg