Gravity v1.10.0
Gravity v1.10.0 is the next mainnet line after v1.9.3. It upgrades the bundled execution / consensus pins and ships three operator-facing changes: pruned-node historical RPC recovery for Gravity system transactions, a mempool broadcast-timeline rewrite, and the Oracle generic relayer runtime.
What's changed
Recover pruned Gravity system-tx senders
#840 bumps gravity-reth to gravity-reth#437.
Full nodes that prune sender records can fail historical RPC once Gravity system transactions with unrecoverable signatures leave the block cache. Missing senders are recovered from signatures, with a SYSTEM_CALLER fallback for committed transactions (persisted sender entries still win).
Applies to single-block and range reads, static-file sender lookups, and the independent eth_getTransactionReceipt cache-miss path. Incoming transaction signature validation is unchanged. No migration or prune-config change is required.
Mempool poll-reconcile broadcast timeline
#808 replaces the TTL TxnCache broadcast-progress path with:
- poll-reconcile + per-
sender_bucketmonotonic timeline (realread_timeline/timeline_range*cursors for ACK / in-flight / retransmit / Failoverbefore); - reth pending-body listener →
AdmitHandleso new pending txs enter the timeline without taking the outer shared-mempool lock (reconcile stays a throttled safety net, default 2 s).
Packing (get_batch → best_txns) is unchanged.
Optional env knobs:
| Env | Default | Role |
|---|---|---|
MEMPOOL_SNAPSHOT_MAX_AGE_MS
| 2000
| Throttle poll-reconcile interval |
MEMPOOL_ADMIT_BATCH_CAP
| 64
| Listener batch flush size |
MEMPOOL_ADMIT_BATCH_MAX_WAIT_MS
| 5
| Listener max wait after first item |
Oracle generic relayer runtime
#803 wires gravity_node to the generic Reth Oracle relayer API:
- decode fixed-size
OracleStatefrom the latest committed Gravity block; - reconcile providers by
(source_type, source_id); - retain a pending observation until the on-chain nonce catches up;
- suppress stale / already-committed observations before they become guaranteed-revert system transactions.
Provider endpoints stay validator-local; credentials, paths, and query strings are redacted from logs.
Already on v1.9.3 (carried forward)
- Forward epoch sync (#819 / #832 / #834, backported as #833 / #839): opt-in via
ENABLE_FORWARD_EPOCH_SYNC=true; Busy / progress hardening unchanged from v1.9.3. - Mainnet Beta / Osaka at
1787018400— same as v1.9.1.
Testnet-only
Testnet genesis hardfork schedule / testnetOwnerFixTime sync and the TestnetOwnerFix greth pins (#824, #826, #828, #830, #831) do not change mainnet schedule.
CLI
- Correct EVM address derivation in
genesis generate-account(#829).
Compatibility and operator notes
- Upgrade from v1.9.3 is recommended for pruned full nodes that hit historical RPC gaps on Gravity system transactions, and for fleets that want the mempool timeline / Oracle relayer work.
- No new hardfork deadline. Beta / Osaka remain
1787018400(2026-08-18 02:00:00 UTC), identical to v1.9.1 / v1.9.3. See v1.9.1 for what those forks activate (EIP-7702 lockdown end, block-gas last-gate packing, 30M per-tx gas cap). - No runtime override for hardfork times: the
HARDCODEDtable stays binary-authoritative. - Forward epoch sync remains default-off. Enable with
ENABLE_FORWARD_EPOCH_SYNC=trueon both the catching-up node and at least one serving peer. Quotas default to4:FORWARD_EPOCH_SYNC_COLD_BUILD_QUOTA,FORWARD_EPOCH_SYNC_FETCH_QUOTA. Prepare timeout is the 10 s network inbound cap (FORWARD_EPOCH_SYNC_PREPARE_TIMEOUT_MSECis gone). - Rollout: node-by-node is fine for the RPC fix and for forward sync. No coordinated activation window beyond the already-scheduled Beta / Osaka time.
- No ConsensusDB schema change.
Docker image
The release pipeline publishes:
docker pull ghcr.io/galxe/gravity_node:v1.10.0Dependency revision
gravity-reth:bc817c642c9c3816cc4e22754e13e3c9633419dd→41e1c20c665def93c3484230992f153ed93f1f06gravity-aptos:b1f68dc85781ef0d28a568d9d64604b153be9d9e→a64f8adc274bf2681df796766ef9a5b195fee44b
Full changelogs
- gravity-sdk v1.9.3...v1.10.0
- gravity-reth pinned revision diff
- Prior schedule release: v1.9.1