Change log
- 2024-2-14 Created initial post
- 2024-3-1 Revised title for on-chain proposal
- 2024-3-17 Revised title for vote passing
Important Notes for Node Operators
This is a large upgrade and we expect it to be fairly slow due to state migrations in upgrading the sdk to 0.47.x. There are revised hardware requirements just for this upgrade, but specs can return to current mainnet requirements afterwards.
- Minimum: 64GB RAM + 32GB swap
- Recommended: 128GB RAM
- Bare minimum 32GB RAM + 64GB swap
Optimal CPU performance: 2.50GHz, 8 cores (eg Intel Xeon Gold 6248 or equivalent consumer grade processor).
It is paramount that the operators set enough SWAP to cover all cases. SWAP partitions can be used to supplement the RAM requirement but they will increase the upgrade time.
Further recommendations
- If you are unable to meet the hardware requirements, consider skipping the upgrade and resyncing from snapshot once the upgrade goes through.
- NodeStake: Cosmos | NodeStake
- Polkachu: CosmosHub Node Snapshot | Polkachu
- Lavender.five: snapshot | Lavender.Five Nodes
- Logs will be sparse during this long upgrade. You can run your node with
-log_level="*:debug"
to get slightly more verbose logs during upgrade. Do not panic at the lack of info — just sit tight! - Do not restart your node mid-upgrade unless you are getting OOM errors. Restarting mid-upgrade may lead to a corrupted database.
- Set min gas price to
0.005uatom
or your node will fail on restart. Failing on restart just means that you’ll have to set the param at that point, but doing it ahead of time will be smoother.
Background
The Gaia v15 release is a major release that will follow the standard governance process by initially submitting this post on the Cosmos Hub forum. After collecting forum feedback (~ 1 week) and adapting the proposal as required, a governance proposal will be sent to the Cosmos Hub for voting. The on-chain voting period typically lasts 2 weeks.
On governance vote approval, validators will be required to update the Cosmos Hub binary at the halt-height specified in the on-chain proposal.
Proposed Release Contents
The relevant Github epic for this release is: Gaia v15 Release
The focus of this release is the upgrade of Cosmos SDK to v0.47 – this release uses v0.47.8-ics-lsm, a special Cosmos SDK branch with support for both ICS and LSM. Consequently, it also upgrades the following dependencies:
- IBC to v7.3.1
- CometBFT to v0.37.4
- Interchain Security to v3.3.1-lsm
- Packet Forward Middleware to v7.1.2
In addition, this release migrates the following state:
- Sets the min commission rate staking parameter to
5%
and updates the commission rate for all validators accordingly (according to governance proposal 826). Validators with a commission rate <5%
prior to upgrade will have a rate of5%
after upgrade is complete. This parameter can be changed via a param change proposal in the future. - Migrates the vesting funds from cosmos145hytrc49m0hn6fphp8d5h4xspwkawcuzmx498to the community pool (according to governance proposal 860).
Finally, this releases fixes a series of issues found during the Oak Security audit of SDK 0.47. As a result, this release introduces the following API changes:
- Reject
MsgVote
messages from accounts with less than 1 ATOM staked. All validators should ensure that they are staking at least 1 ATOM from the wallet they use for sendingMsgVote
messages. - A new
MinDepositRatio
param is added (with a default value of0.01
) and now deposits are required to be at leastMinDepositRatio*MinDeposit
to be accepted.
Taken together, these changes upgrade Gaia from cosmos-sdk v0.45 and open the door for further integrations, such as adding Skip Block SDK required by Prop 842.
A release candidate can be found here.
Testing and Testnets
The v15 release has gone through rigorous testing, including e2e tests, integration tests, and differential tests. Differential tests are similar to integration tests, but they compare the system state to an expected state generated from a model implementation. In addition, v15 has been independently tested by the team at Hypha Co-op.
Validators and node operators have joined a public testnet to participate in a test upgrade to a release candidate before the Cosmos Hub upgrades to the final release. You can find the relevant information (genesis file, peers, etc.) to join the Release testnet (theta-testnet-001), or the Replicated Security testnet (provider).
Potential risk factors
Although very extensive testing and simulation will have taken place there always exists a risk that the Cosmos Hub might experience problems due to potential bugs or errors from the new features. In the case of serious problems, validators should stop operating the network immediately.
Coordination with validators will happen in the #cosmos-hub-validators-verified channel of the Cosmos Network Discord to create and execute a contingency plan. Likely this will be an emergency release with fixes or the recommendation to consider the upgrade aborted and revert back to the previous release of gaia (v14).
Governance votes
The following items summarize the voting options and what it means for this proposal:
YES - You agree that the Cosmos Hub should be updated with this release.
NO - You disagree that the Cosmos Hub should be updated with this release.
NO WITH VETO - A ‘NoWithVeto’ vote indicates a proposal either (1) is deemed to be spam, i.e., irrelevant to Cosmos Hub, (2) disproportionately infringes on minority interests, or (3) violates or encourages violation of the rules of engagement as currently set out by Cosmos Hub governance. If the number of ‘NoWithVeto’ votes is greater than a third of total votes, the proposal is rejected and the deposits are burned.
ABSTAIN - You wish to contribute to the quorum but you formally decline to vote either for or against the proposal.