Skip to main content

Upgrades

This guide covers how to upgrade your Monolythium node.

Recommended

Use monarch upgrade for the simplest upgrade experience. Monarch CLI handles binary downloads, verification, process restarts, and health checks automatically via OxidePM. See Monarch CLI for details.

Upgrade Types

TypeDescriptionProcess
Binary updateBug fixes, minor changesReplace binary, restart
Chain upgradeProtocol changesCoordinated at specific height
Emergency patchCritical fixesImmediate, coordinated

Binary Updates (Non-Breaking)

For minor updates that don't change consensus:

Manual Process

# Clone repository
git clone https://github.com/monolythium/mono-chain.git
cd mono-chain

# Checkout release
git checkout <release-tag>

# Build and install
make install
sudo mv $(go env GOPATH)/bin/monod /usr/local/bin/

# Start node
sudo systemctl start monod

# Verify
monod version

Chain Upgrades (Breaking)

Protocol upgrades require all nodes to upgrade at a specific block height.

Upgrade Proposal Process

  1. Governance proposal submitted
  2. Voting period
  3. If passed, upgrade height is set
  4. Nodes prepare new binary
  5. At upgrade height, chain halts
  6. Nodes switch binary
  7. Chain resumes

Manual Upgrade Process

At the upgrade height, your node will halt with a message like:

UPGRADE "upgrade-name" NEEDED at height: 1000000

Then:

# Stop node
sudo systemctl stop monod

# Clone repository
git clone https://github.com/monolythium/mono-chain.git
cd mono-chain

# Checkout release
git checkout <release-tag>

# Build and install
make install
sudo mv $(go env GOPATH)/bin/monod /usr/local/bin/

# Start node
sudo systemctl start monod

Upgrade Monitoring

Before Upgrade

# Check current height
curl -s localhost:26657/status | jq '.result.sync_info.latest_block_height'

# Check upgrade info
monod query upgrade plan

During Upgrade

# Watch logs
sudo journalctl -u monod -f

# Look for upgrade message
# "UPGRADE "upgrade-name" NEEDED at height: XXXXXX"

After Upgrade

# Verify version
monod version

# Check node is syncing
curl -s localhost:26657/status | jq '.result.sync_info'

# Verify block production resumed

Recovery

!!! important "No State Reversions" Monolythium does not support chain state reversions. Recovery is always forward-only: HALT → PATCH → UPGRADE → RESTART.

If an upgrade fails:

  1. Check logs for specific errors
  2. Verify binary is correct version
  3. Check data directory permissions
  4. Consult community for known issues
  5. Wait for patch release if needed

Upgrade Checklist

Before Upgrade Height

  • Monitor upgrade proposal
  • Download and verify new binary
  • Test binary works: ./monod version
  • Have team on standby
  • Know recovery procedures (forward-only)

At Upgrade Height

  • Verify node halted correctly
  • Confirm binary switch (manual or monarch upgrade)
  • Monitor logs for errors
  • Verify node restarts

After Upgrade

  • Confirm version is correct
  • Verify block production
  • Check validator is signing (if applicable)
  • Monitor for unusual behavior
  • Report any issues to community

Emergency Procedures

Critical Bug Found

If a critical bug is found during upgrade:

  1. Team announces HALT
  2. Do not switch binary
  3. Wait for patched release
  4. Follow updated instructions

Stuck at Upgrade Height

If chain doesn't resume:

  1. Check community channels
  2. Verify you have correct binary
  3. Check logs for specific errors
  4. Wait for coordination

FAQ

What if I miss the upgrade height?

Your node will halt. You can still upgrade after the fact once you notice. The chain continues without you; catch up after upgrading.

Can I upgrade early?

No. The upgrade only takes effect at the specified height. Running the new binary early may cause issues.

What happens to my stake if I don't upgrade?

Your validator won't sign blocks. Prolonged downtime may lead to jailing.

How do I know about upcoming upgrades?

Monitor official channels, governance proposals, and community announcements.