- https://github.com/neutron-org/neutron/releases/tag/v4.2.3
- Chain upgrade height:
14638000
. Exact upgrade time can be checked here. - Go version has been frozen at
1.22
. If you are going to build Neutron binary from source, make sure you are using the right GO version!
Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the .neutrond
directory.
If you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade.
It is critically important for validator operators to back-up the .neutrond/data/priv_validator_state.json
file after stopping the neutrond process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.
We need to disable automatic restart of the node service. To do so please alter your neutrond.service
file configuration and set appropriate lines to following values.
Restart=no
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=false"
After that you will need to run sudo systemctl daemon-reload
to apply changes in the service configuration.
There is no need to restart the node yet; these changes will get applied during the node restart in the next step.
This upgrade requires neutrond
to have knowledge of the planned halt height. Please be aware that there is an extra step at the end to revert to neutrond
's original configurations.
There are two mutually exclusive options for this stage:
-
Stop the neutrond process.
-
Edit the application configuration file at
~/.neutrond/config/app.toml
so thathalt-height
reflects the upgrade plan:
# Note: Commitment of state will be attempted on the corresponding block.
halt-height = 14638000
-
Start neutrond process
-
Wait for the upgrade height and confirm that the node has halted
-
Stop the neutrond process.
-
Do not modify
app.toml
. Restart theneutrond
process with the flag--halt-height
:
neutrond --halt-height 14638000
- Wait for the upgrade height and confirm that the node has halted
After performing these steps, the upgrade will proceed as usual using Cosmovisor.
git clone https://github.com/neutron-org/neutron.git
cd $HOME/neutron
git pull
git fetch --tags
git checkout v4.2.3
make install
$ neutrond version --long
name: neutron
server_name: neutrond
version: 4.2.3
commit: 1431916023f4d7213d3c808edb77468e329e7308
...
$ shasum -a 256 neutrond-linux-amd64
4765bbb29d669ab711162d6885357f429f2ecc156dc703089f27d9e4bc5f7d80 neutrond-linux-amd64
You can check the version you are currently using by running the following command:
$ neutrond q wasm libwasmvm-version
2.0.3
The proper version is 2.0.3
.
If the version on your machine is different you MUST change it immediately!
- Use a statically built Neutrond binary from an official Neutron release: https://github.com/neutron-org/neutron/releases/tag/v4.2.3
- If you built Neutron binary by yourself,
libwasmvm
should be loaded dynamically in your binary and somehow, the wronglibwasmvm
library was present on your machine. You can change it by downloading the proper one and linking it to the Neutron binary manually:
- download a proper version of
libwasmvm
:
$ wget https://github.com/CosmWasm/wasmvm/releases/download/v2.0.3/libwasmvm.x86_64.so
- tell the linker where to find it:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/
- check that libwasmvm version is correct:
$ neutrond q wasm libwasmvm-version
2.0.3
cp $GOPATH/bin/neutrond ~/.neutrond/cosmovisor/current/bin
Keep in mind if the upgrade-info.json
file is present in neutron home directory, cosmovisor may set back binary from the upgrade file as a current bin. In case this happens, delete the upgrade file.
If you are using a service file, restore the previous Restart
settings in your service file:
Restart=On-failure
Reload the service control sudo systemctl daemon-reload
.
Depending on which path you chose for Step 1, either:
- Reset
halt-height = 0
option in theapp.toml
or - Remove it from start parameters of the neutrond binary and start node again