Upgrade to 10004-rc1-patch
Sunday Feb 20th
Upgrade the Injective Chain from 10004-rc1 to 10004-rc1 patch version 10004-rc1-1645352045 created due to an incident that happened on Sunday, Feb 20 at 3:55 AM UTC-05:00, when Network halted at block 7941974.
This indicates that the upgrade procedure should be performed on block number 7941974
- At 3:55 AM UTC-05:00 Network halted, block height 7941974
- At 5:05 AM UTC-05:00 New release created with rolled back fix, Version 10004-rc1-1645352045
- At 06:08 UTC-05:00 Network is back up
The following is a short summary of the upgrade steps:
- Backing up configs, data, and keys used for running the Injective Canonical Chain.
- Install the Mainnet-10004-rc1-v1.4.0-1642928125
- Start your node with the new injectived binary to fulfill the upgrade.
Upgrade coordination and support for validators will be available on the
#mainnet-validators private channel of the Injective Discord.
The network upgrade can take the following potential pathways:
Validators successfully migrate from the 10004-rc1 Injective Chain to 10004-rc1 patch without purging the blockchain history and all validators are up within 1-2 hours.
Validators have trouble upgrading the chain. This could be some consensus-breaking changes not covered in the upgrade handler, or compatibility issue of the migrated state with new injectived binary, but validators can at least export the genesis.
In the rare event that the team becomes aware of unnoticed critical issues, the Injective team will attempt to patch all the breaking states and provide another official binary within 36 hours.
Prior to exporting the Injective Chain state, validators are encouraged to take a full data snapshot at the
export height before proceeding. Snapshotting depends heavily on infrastructure, but generally, this
can be done by backing up the
.injectived directory. We would suggest using
aws s3 sync with the delete flag, this will shorten the snapshotting time as only the file diffs are uploaded to the S3 bucket.
It is critically important to back up the
.injectived/data/priv_validator_state.json file after stopping your injectived 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.
Verify you are currently running the correct (pre-upgrade) version (
$ injectived version
Version dev (94583db)
Compiled at 20220123-0855 using Go go1.17.6 (amd64)
After the chain has halted, make a backup of your
cp ~/.injectived ./injectived-backup
NOTE: It is recommended for validators and operators to take a full data snapshot at the export height before proceeding in case the upgrade does not go as planned or if not enough voting power comes online in a sufficient and agreed upon amount of time. In such a case, the chain will fallback to continue operating the existing Canonical Chain. See Recovery for details on how to proceed.
Download and install the Injective Chain 10004-rc1 release
sudo mv injectived /usr/bin
Verify you are currently running the correct new version (
injectivedafter downloading the 10004-rc1 release:
$ injectived version
Version dev (30b3dbf)
Compiled at 20220220-1014 using Go go1.17.6 (amd64)
Coordinate to restart your injectived with other validators
The binary will perform the upgrade automatically and continue the next consensus round if everything goes well.
Notes for DEX relayer providers
Relayer upgrade will be available after the chain is successfully upgraded as it relies on several other components that work with injectived.