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.10directly if you can. Go1.21to1.26.9can download1.26.10automatically 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.1or1.27.2, Go builds with that version instead. Update to1.27.3or later.
For available downloads, see Go Downloads.
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) or7.3.1(pre-built binary). regen query upgrade applied v7.3.0shows height28971032.- In
regen status, the block height increases andcatching_upbecomesfalse.
Syncing a Node Through the Upgrade Height
A node that syncs blocks from before height 28971032 must change binaries at that height:
- Run
v7.2.0until the node stops at height28971032with the messageUPGRADE "v7.3.0" NEEDED. - Switch to
v7.3.1and 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.