github Galxe/gravity-sdk v1.10.0
Gravity v1.10.0

4 hours ago

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_bucket monotonic timeline (real read_timeline / timeline_range* cursors for ACK / in-flight / retransmit / Failover before);
  • reth pending-body listener → AdmitHandle so new pending txs enter the timeline without taking the outer shared-mempool lock (reconcile stays a throttled safety net, default 2 s).

Packing (get_batchbest_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 OracleState from 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 HARDCODED table stays binary-authoritative.
  • Forward epoch sync remains default-off. Enable with ENABLE_FORWARD_EPOCH_SYNC=true on both the catching-up node and at least one serving peer. Quotas default to 4: 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_MSEC is 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.0

Dependency revision

  • gravity-reth: bc817c642c9c3816cc4e22754e13e3c9633419dd41e1c20c665def93c3484230992f153ed93f1f06
  • gravity-aptos: b1f68dc85781ef0d28a568d9d64604b153be9d9ea64f8adc274bf2681df796766ef9a5b195fee44b

Full changelogs

Don't miss a new gravity-sdk release

NewReleases is sending notifications on new releases.