Upgrade Guide v7.3

This document provides guidelines for node operators who run Regen Ledger v7.3.0 and want to switch to v7.3.1, and for node operators who sync a node through the v7.3.0 upgrade height. For a general overview of the upgrade process, please refer to Upgrade Overview.

Upgrade Info

Regen Ledger v7.3.1

Regen Mainnet

  • Upgrade Name: v7.3.0
  • Upgrade Height: 28971032 (already applied)

About v7.3.1

v7.3.0 was a security release. Its binaries were published without the source code while the fix was under embargo. v7.3.1 publishes that source code.

v7.3.1 does not change the state machine compared with v7.3.0:

  • There is no governance proposal and no upgrade height.
  • You can switch from v7.3.0 to v7.3.1 at any time. A restart of the node is enough.

v7.3.1 is built with Go 1.26.10.

Do Not Build From the v7.3.0 Tag

The v7.3.0 tag does not contain the v7.3.0 source code. A binary built from it cannot run on Regen Mainnet. Use v7.3.1.

Upgrade Guidelines

Update Go

Go 1.26.10, or Go 1.27.3 or later, is required to build from source.

  • Install Go 1.26.10 directly if you can. Go 1.21 to 1.26.9 can download 1.26.10 automatically when you build, unless automatic toolchain switching is turned off (GOTOOLCHAIN=local, which some Linux distribution packages and Docker images set).
  • If your Go version is 1.27.0, 1.27.1 or 1.27.2, Go builds with that version instead. Update to 1.27.3 or later.

For available downloads, see Go Downloadsopen in new window.

Build the Binary

Build the v7.3.1 binary from source:

cd regen-ledger
git fetch --tags
git checkout v7.3.1
make build

Ensure the regen binary has been built:

./build/regen version

You should see the following:

v7.3.1

Pre-built binaries are also available. See Pre-Built Package. If you use one, use it in place of ./build/regen in the steps below. A pre-built binary reports its version as 7.3.1, without the leading v.

Option 1: Using Cosmovisor

Cosmovisor runs the binary in the directory of the last applied upgrade. On Regen Mainnet, this is upgrades/v7.3.0. Check that current points to it:

readlink -f $HOME/.regen/cosmovisor/current

You should see a path ending in cosmovisor/upgrades/v7.3.0.

Stop the node, replace the binary, and start the node again. Replace cosmovisor with the name of your systemd service if it is different:

sudo systemctl stop cosmovisor
cp ./build/regen $HOME/.regen/cosmovisor/upgrades/v7.3.0/bin/regen
sudo systemctl start cosmovisor

Ensure the right regen binary has been placed in the directory:

$HOME/.regen/cosmovisor/upgrades/v7.3.0/bin/regen version

You should see v7.3.1 (built from source) or 7.3.1 (pre-built binary).

TIP

Stop the node before copying. Linux does not allow overwriting a binary while it is running.

Option 2: Without Cosmovisor

If you built from source, install the binary:

make install

If you use the pre-built binary, install it as described in Pre-Built Package instead, and skip make install.

Restart the process running regen. Then check the version:

regen version

You should see v7.3.1 (built from source) or 7.3.1 (pre-built binary).

Verify the Node

Check that the node runs v7.3.1 and keeps producing or following blocks. With Cosmovisor, check the version of the binary Cosmovisor runs, not the regen on your PATH, which may be an older copy:

regen version   # with Cosmovisor: $HOME/.regen/cosmovisor/upgrades/v7.3.0/bin/regen version
regen query upgrade applied v7.3.0
regen status
  • The version shows v7.3.1 (built from source) or 7.3.1 (pre-built binary).
  • regen query upgrade applied v7.3.0 shows height 28971032.
  • In regen status, the block height increases and catching_up becomes false.

Syncing a Node Through the Upgrade Height

A node that syncs blocks from before height 28971032 must change binaries at that height:

  1. Run v7.2.0 until the node stops at height 28971032 with the message UPGRADE "v7.3.0" NEEDED.
  2. Switch to v7.3.1 and restart the node.

With Cosmovisor, you can prepare the switch in advance. Put the v7.3.1 binary in the v7.3.0 upgrade directory, and Cosmovisor switches at the upgrade height:

mkdir -p $HOME/.regen/cosmovisor/upgrades/v7.3.0/bin
cp ./build/regen $HOME/.regen/cosmovisor/upgrades/v7.3.0/bin

Do not start a node with v7.3.1 below height 28971032. Use v7.2.0 until the upgrade height.

A node that starts from a state sync snapshot taken after height 28971032 runs v7.3.1 from the start. See Using State Sync.

Restoring a Data Backup

If you start the node from a copy of another node's data directory, for example a Cosmovisor backup (data-backup-<date>), also copy the node's wasm directory. It holds the stored smart contract code and is not part of data, so Cosmovisor backups do not include it. Without it, the node fails at the first block that runs a contract.

Copy <node home>/wasm/wasm/state from a node that is already past the backup's height. Stored contract code is never changed or removed, so a more recent copy also contains everything the backup needs. The cache directories are not needed: the node rebuilds them.

mkdir -p $HOME/.regen/wasm/wasm
rsync -a <source node>:<node home>/wasm/wasm/state/ $HOME/.regen/wasm/wasm/state/

Do not copy priv_validator_key.json or data/priv_validator_state.json from another node. Use the ones created by regen init for this node.