Gravity Testnet v1.1.1
Release: gravity-testnet-v1.1.1
Full Changelog: gravity-testnet-v1.1.0...gravity-testnet-v1.1.1
Related Release: gravity-reth gravity-testnet-v1.1.1
Breaking Changes
Alpha + Beta Hardforks — System Contract Bytecode Upgrade
This release introduces two hardforks (Alpha and Beta) that perform hot-swap upgrades of system contract runtime bytecode at specified block heights. This supersedes the withdrawn v1.1.0 and includes a critical fix for the StakePool immutable variable issue.
Alpha Hardfork (System Contract Upgrade)
- Staking Contract: Upgraded runtime bytecode to the latest version (10,867 bytes) from gravity_chain_core_contracts.
- StakePool Contracts: Upgraded runtime bytecode of all 4 existing
StakePoolcontracts (6,824 bytes each). - Block Reward Minting: Disabled during the PoW phase at the consensus layer.
Beta Hardfork (StakePool Immutable Fix)
- Fix: Resolves the
FACTORYimmutable variable zeroing issue introduced in Alpha. Theforge buildoutput used in v1.1.0 did not include initializedimmutableconstants, causing allonlyFactorypermission checks in StakePool to revert. - Solution: Beta re-injects the correct runtime bytecode extracted from the live chain via
cast code, preserving all immutable variable values.
Node Upgrade Guide
⚠️ Upgrade Priority: HIGH
All node operators must upgrade to this version to maintain consensus compatibility.
Step 1: Configuration
Add alphaBlock and betaBlock activation heights to your genesis.json:
{
"config": {
"alphaBlock": 8287964,
"betaBlock": 8344249
}
}Step 2: Build & Run
If building from source, ensure the greth dependency in Cargo.toml points to the new release tag:
greth = { git = "https://github.com/Galxe/gravity-reth", tag = "gravity-testnet-v1.1.1" }Then rebuild with cargo build --release and restart the node binary.
Note: No database wipe is required. The execution layer seamlessly injects the upgraded contracts at the specified block heights.
Step 3: Verification Checklist
After the node restarts and passes the configured activation heights:
- Node starts successfully and processes blocks through both Alpha and Beta activation heights
- Epoch transitions are triggered and completed normally
- Execution layer logs show
"System transaction"events during epoch switches
What's Changed
Features
- feat: implement Alpha hardfork with system contract bytecode hot-swap
- feat: implement Beta hardfork to fix StakePool
FACTORYimmutable zeroing - feat: add
Stakingcontract upgrade (10,867 bytes) at Alpha activation block - feat: add
StakePoolcontract upgrade for 4 known addresses (6,824 bytes each) - feat: re-inject correct StakePool bytecode with
cast codeat Beta activation block - feat: disable block reward minting during PoW phase
Bug Fixes
- fix: resolve StakePool
FACTORYimmutable variable being set toaddress(0)when usingforge buildbytecode
Infrastructure
- chore: bump gravity testnet v1.1.1