Skip to content

Releases: Galxe/gravity-sdk

Gravity Testnet v1.1.0 [WITHDRAWN]

12 Mar 08:34

Choose a tag to compare

Release: gravity-testnet-v1.1.0

⚠️ WITHDRAWN — DO NOT USE ⚠️

This release has been withdrawn due to a critical bug. Please skip directly to v1.1.1.

Full Changelog: gravity-testnet-v1.0.0...gravity-testnet-v1.1.0

Related Release: gravity-reth gravity-testnet-v1.1.0


Breaking Changes

Alpha Hardfork — System Contract Bytecode Upgrade

This release introduced the Alpha hardfork, which performs a hot-swap of system contract runtime bytecode at a specified block height. It is the first use of Gravity's on-chain upgrade mechanism via the execution layer.

Key changes:

  • Staking Contract Upgrade: Replaced the runtime bytecode of the Staking contract with the latest version (10,867 bytes) compiled from gravity_chain_core_contracts.
  • StakePool Contract Upgrade: Replaced the runtime bytecode of all 4 existing StakePool contracts with the latest version (6,824 bytes).
  • Block Reward Minting Disabled: Disabled block reward minting during the PoW phase at the consensus layer to prevent unintended inflation.

Node Upgrade

All node operators must upgrade to this version and configure the alphaBlock activation height in genesis.json:

{
  "config": {
    "alphaBlock": 8287964
  }
}

Rebuild from source and restart the node binary. No database wipe is required — the execution layer seamlessly injects the upgraded contracts at the specified block height.


Known Issue (Critical)

After deployment, a critical issue was discovered:

StakePool FACTORY immutable variable zeroed out. The bytecode was extracted from forge build output, which does not include initialized immutable constants. As a result, the FACTORY immutable in all 4 StakePool contracts was set to address(0), causing all onlyFactory permission checks to revert.

Impact: All staking operations that route through the StakePool contract's factory-gated functions fail with a revert.

Resolution: This issue is fixed in v1.1.1 via the Beta hardfork, which re-injects the correct runtime bytecode extracted from the live chain using cast code.


What's Changed

Features

  • feat: implement Alpha hardfork with system contract bytecode hot-swap
  • feat: add Staking contract upgrade (10,867 bytes) at hardfork activation block
  • feat: add StakePool contract upgrade for 4 known addresses (6,824 bytes each)
  • feat: disable block reward minting during PoW phase

Infrastructure

  • chore: bump gravity testnet v1.1.0

Full Changelog: gravity-testnet-v1.0.0...gravity-testnet-v1.1.0

Gravity Testnet v1.0.0

15 Feb 06:19
eb60e9c

Choose a tag to compare

Release: gravity-testnet-v1.0.0

Full Changelog: v0.4.1...gravity-testnet-v1.0.0

Related Release: gravity-reth gravity-testnet-v1.0.0

Breaking Changes

System Contract Upgrade

This release introduces a complete system contract overhaul. All system contracts have been replaced with new implementations from gravity_chain_core_contracts, and are fully incompatible with the previous versions.

Key breaking changes:

  • New Contract Integration: Integrated new gravity_chain_core_contracts with fixes, replacing the entire on-chain contract suite (#516).
  • New Genesis Generation: Migrated genesis generation to gravity_chain_core_contracts, changing the entire genesis flow (#524).
  • New Proposer Index Contract: Added support for new contract about proposer_index (#533).
  • New Oracle Architecture: Migrated relayer to the new oracle architecture with redesigned interfaces (#525).
  • On-chain Consensus Config: Consensus configuration is now read from on-chain instead of hardcode (#559).
  • BLS Verify Precompile: Added BLS12-381 proof-of-possession verification precompile support for consensus public key validation during validator registration (#573).
  • CLI Overhaul: Updated gravity_cli to support new genesis contracts (#545), decoupled join into separate stake and join steps (#560).
  • Cluster Configuration Separation: Separated genesis and node deployment configuration into distinct files (#553).

Note: This is the first release for the Gravity Testnet. All nodes must be freshly deployed with the new system contracts — there is no backward compatibility with any previous devnet or internal versions.

What's Changed

Features

  • feat(rocksdb): Integrating RocksDB into Greth by @AshinGau in #462
  • chore: update deploy_new.sh to support diversified config files by @nekomoto911 in #463
  • feat(e2e): add comprehensive randomness test suite by @Lchangliang in #455
  • feat(cli): support validator list for gravity_cli by @nekomoto911 in #476
  • feat: add universe type in batch generator by @keanji-x in #475
  • enhance(cli): make gravity_cli exit with code 1 when a command execution fails by @nekomoto911 in #481
  • feat(http): implement http api for getting latest ledger info by @nekomoto911 in #482
  • feat: add e2e test scripts by @keanji-x in #486
  • feat: add e2e cicd by @keanji-x in #487
  • feat: enable fmt and clippy cicd by @ByteYue in #484
  • feat: add e2e test doc by @keanji-x in #496
  • feat: modify test scripts and add bench test doc by @AshinGau in #497
  • refactor: pass block_hash and block_number to generate_commit_ledger_info by @ByteYue in #499
  • feat: fmt code by @keanji-x in #502
  • feat: add new start method by @keanji-x in #515
  • feat(mempool): add iterator caching and limit for batch pull by @keanji-x in #479
  • feat: integrate new gravity_chain_core_contracts with fixes by @ByteYue in #516
  • feat(cluster): migrate genesis generation to gravity_chain_core_contracts by @ByteYue in #524
  • feat: support graceful shutdown by @keanji-x in #527
  • feat: Add initial genesis configuration and update E2E test framework. by @keanji-x in #528
  • [feat] Support new contarct about proposer_index by @Lchangliang in #533
  • feat: introduce genesis and vfn roles to cluster deployment scripts by @nekomoto911 in #534
  • feat: update gaptos and ensure identity consistency across network config and identity_blob by @nekomoto911 in #535
  • feat: Introduce a new Python-based end-to-end testing framework with initial single and four-validator cluster test cases. by @keanji-x in #537
  • feat: update gravity_cli to support new genesis contracts by @nekomoto911 in #545
  • feat: improve e2e test infrastructure for benchmarking by adding bench account loading and increasing faucet accounts. by @keanji-x in #547
  • feat: Implement fuzzy epoch switch test by @nekomoto911 in #541
  • feat: Migrate relayer to new oracle architecture by @ByteYue in #525
  • feat: Introduce a new sentinel binary for log file monitoring by @keanji-x in #522
  • feat: Add a Docker runner for E2E tests by @keanji-x in #554
  • feat(sentinel): refactor sentinel to use linemux and add whitelist support by @nekomoto911 in #556
  • enhance(cli): print tx hash before waiting for confirmation by @nekomoto911 in #558
  • feat(cli): Decouple join into stake and join steps by @nekomoto911 in #560
  • feat: Add bridge E2E test suite with oracle-based cross-chain minting by @ByteYue in #555
  • feat: read consensus config from onchain instead of hardcode by @ByteYue in #559
  • feat: add bridge E2E latency measurement with updated consensus config by @ByteYue in #563
  • feat: upgrade greth & gaptos to fix randomnessconfig error by @Lchangliang in #564
  • feat(e2e): add MockAnvil for high-volume bridge E2E testing by @ByteYue in #565
  • feat: Add missing validator config autoEvictEnabled and remember to checkout to actual ref by @ByteYue in #567
  • feat: Implement batch block execution controlled by the BATCH_COMMIT_SIZE environment variable, add corresponding end-to-end tests, and reduce the genesis epoch interval. by @keanji-x in #570
  • feat: support bls verify precompile by @nekomoto911 in #573
  • feat: Add long-running failover stability test suite with a new pytest marker and update the test runner to exclude it by default. by @keanji-x in #571

Bug Fixes

Read more

v0.4.1

08 Dec 05:22
98ab8a6

Choose a tag to compare

What's Changed

  • feat(block-buffer-manager): handle epoch change when setting ordered blocks by @Lchangliang in #454
  • feat: add epoch management to BlockBufferManager and RethCli by @Lchangliang in #456
  • fix: add early return check for sync_from_cert round comparison by @Lchangliang in #458
  • fix: revert to rebuild in fast_forward_sync_by_epoch by @Lchangliang in #459
  • refactor(consensus): Delay epoch update and improve error handling by @Lchangliang in #460
  • chore: bump v0.4.1 by @nekomoto911 in #461

Full Changelog: v0.4.0-patch...v0.4.1

v0.4.0

03 Dec 02:40
926b62b

Choose a tag to compare

Caution

Please use the v0.4.1 which includes some important hotfix for this release.

What's Changed

Full Changelog: v0.3.2-patch...v0.4.0-patch

v0.0.3: Pre-alpha

24 Feb 05:24
32dc769

Choose a tag to compare

What's Changed

  • [improve] Improve Block number by @Lchangliang in #117
  • [feat] add reth v2 by @keanji-x in #119
  • [feat]: add bridge to call execution api v2 function by @keanji-x in #122
  • [fix] remove reth dependencies and add async trait by @keanji-x in #123
  • [feat] add recv unbroadcast txn api and implement it for kv store v2 by @keanji-x in #124
  • feat: Able to run kv store v2 using execution api v2 by @ByteYue in #125
  • feat: able to bench kv store using quorum store by @ByteYue in #126
  • feat: Add one file account_latest_committed_sequence_number in verifiedTxn by @ByteYue in #127
  • [feat]: Bring account_latest_committed_seq_num when recv pending txns by @ByteYue in #128
  • [improve] refactor shared mempool by @Lchangliang in #129
  • [improve] Make ExecutionApi all func async by @Lchangliang in #130
  • [improve] Unsupport prune tree by @Lchangliang in #131
  • chore: remove useless bench server code & comment some test code by @ByteYue in #132
  • [improve] Fix test error by @Lchangliang in #133
  • [improve] fix error case by @Lchangliang in #134
  • [Fix] Modify Case by @Lchangliang in #135
  • [Bugfix] Fix channel branch disable by @Lchangliang in #136
  • [bugfix] Fix todo code by @Lchangliang in #137
  • [bugfix]: Don't blocking wait on recv unbroadcast txn by @ByteYue in #138
  • feat: Refactor the bench bin to do new bench mark by @ByteYue in #140
  • [chore]: Temporarily make ENABLE_QUORUM_STORE one env instead of using on chain config by @ByteYue in #141
  • [opt]: Use new runtime for retrieve_from_execution_routine to prevent contention by @ByteYue in #142
  • [opt]: Use signedtransaction in mempool transaction intead of verified txn to prevent the time-consuming committed hash calculating logic by @ByteYue in #143
  • [improve] Refactor recovery api by @Lchangliang in #144
  • [feat] Implement RethCoordinator for external transaction processing by @keanji-x in #139
  • [feat] init genesis when start consensus and coordinator by @keanji-x in #145
  • [feat]: Able to set leader when using bench & able to control whether to produce txn or not for bench mode by @ByteYue in #146
  • [feat] call pipeline api in coordinator of reth-v2 by @keanji-x in #147
  • [improve] Support some tests by @Lchangliang in #148
  • [opt]: Only leader for bench can produce txn. by @ByteYue in #149
  • [chore]: Remove useless kvstore code by @ByteYue in #150
  • [chore]: Fix compile issue by @ByteYue in #152
  • [chore]: Add readme for the kv store. by @ByteYue in #151
  • [fmt] remove reth-v1 and format reth-v2 by @keanji-x in #153
  • [chore]: Add dashboards for grafana from aptos. by @ByteYue in #154
  • [fix] remove reth v2 in cargo.toml by @keanji-x in #155
  • [feat] add mempool and construct txn from mempool by @keanji-x in #156
  • [feat]: Add aptos-telemetry by @ByteYue in #157
  • [fix] fix byets endian when covert txn in web3 crate to reth txn by @keanji-x in #158
  • [feat]: Able to set fail point at runtime using http service by @ByteYue in #159
  • [chore]: Remove useless execution_api v1 code and related code by @ByteYue in #160
  • [chore] Remove lib and dependencies in cargo and rename reth to peth to avoid conflict by @keanji-x in #161
  • [feat] support pipeline in reth and aptos by @keanji-x in #163
  • Revert "[feat] support pipeline in reth and aptos" by @keanji-x in #164
  • [feat] support exec in pipe with reth and aptos by @keanji-x in #165
  • [feat]: Set fail point should be one http interface instead of https by @ByteYue in #166
  • [feat]: Support specify the code tag or branch and support peth in makefile. by @ByteYue in #162
  • [feat]: Return tx hash when submitting tx by @ByteYue in #167
  • [feat] check account nonce in coordinator and skip the txn with old nonce by @keanji-x in #168
  • [feat]: Specify the version for wasm-bindgen to compile peth in linux by @ByteYue in #169
  • [feat]: Log the build information when starting node. by @ByteYue in #170
  • [feat]: Crash when task in tokio panics by @ByteYue in #171
  • [feat]: Introduce prometheus_node_metrics by @ByteYue in #172
  • [feat] add txn status to avoid add commited txn in batch by @keanji-x in #173
  • [feat]: Disable telemetry service by default by @ByteYue in #174
  • [feat]: Enable rotating leader using consensus runtime by @ByteYue in #175
  • [bugfix]: Set corresponding block number along with the block meta by @ByteYue in #176
  • [chore]: Don't spawn new runtime each time calling commit_blocks by @ByteYue in #177
  • [bugfix]: move the qs callback to be after mempool by @ByteYue in #178
  • [feat] add peth v2 and coordinator for pipeline v2 api by @keanji-x in #179
  • [fix]: fix genesis id by @keanji-x in #180
  • [feat]: add random value in external block meta by @keanji-x in #181
  • [fix]: define random type in core-types by @keanji-x in #182
  • [feat] remove block controller and buffer in peth v2 by @keanji-x in #183
  • [chore]: Add config in consensus config to control pre_commit by @ByteYue in #185
  • Revert "[chore]: Add config in consensus config to control pre_commit (#185)" by @ByteYue in #187
  • [feat] make coordinator can run in pipelinev2 with aptos consensus by @keanji-x in #190
  • [improve] Persist ledger_info by @Lchangliang in #193
  • [bugfix] Fix genesis block error by @Lchangliang in #194
  • [feature]: Pick "enhance consensus key rotation support" by @ByteYue in #196
  • [feat]: Pick "update qs key loading" by @ByteYue in #197
  • [feat]: Use coex bridge to replace gravity_consensus_engine args by @ByteYue in #199
  • [fix]: Add missing file coex.rs to pass compile by @ByteYue in #200
  • [bugfix] Fix ledger_info persist failed error by @Lchangliang in #201
  • [opt] recv pending txn in reth coordinator with reth pool and listener by @keanji-x in #202
  • [feat] lock state in a small scope and remove pipe api lock by @keanji-x in #203
  • [fix] only update account seq number when the new seq number is bigger than the old by @keanji-x in #205
  • [test]: Add keep alive tool for test net node by @ByteYue in #195
  • [feat]: Add enable_pipeline config and construct pipeline builder in block store by @ByteYue in #206
  • [improve] Support to commit ledger in pipeline mode by @Lchangliang in #207
  • [chore]: Enable aptos new pipeline by default in validator.yml by @ByteYue in #208
  • [enhance]: Make the ansible deploy util more roboust by @ByteYue in #209
  • [fix] use debug to trace some logs to avoid huge logs in dev net by @keanji-x in #210
  • [chore]: Add one flag in deploy.sh to control whether deleting the legacy data by @ByteYue in #211
  • [bugfi...
Read more