This release adds support for celestia-app v9 and reduces network block time to 3s. Once the v9 activation height takes place, upgrading to this version is required.

⚠️ Action Required: run config-update

This release adds new config fields. **After upgrading the binary and before starting your node, run:

celestia bridge config-update --p2p.network arabica

celestia light config-update --p2p.network arabica

This merges newly-added fields (e.g. the RPC RateLimit section) into your existing config.toml while preserving your custom values. Skipping this step means new options silently fall back to defaults and may log config warnings. Review your config.toml afterwards to confirm custom values were kept.

Key Highlights:

  • celestia-app v9 / 3s block time (#4872, #4950, #4970) — Bumps to app v9 (via v8 → v8.0.3-mocha → v9) and go-square v4. Block time drops from 6s to 3s; syncer, DASer and pruner timing constants are scaled accordingly.
  • RPC server hardening (#4909) — Request size capped at 16 MiB (down from 100 MiB), HTTP Read/Write/Idle timeouts, a 500 concurrent-connection limit, and optional per-IP rate limiting (disabled by default).
  • Shrex server resource & rate limiting (#4898, #4900) — Adds resource limiting and per-peer-IP rate limiting to the shrex server.
  • go-fraud removed (#4934) — Fraud proofs have been non-functional since the shwap migration; the dependency, the fraud RPC namespace and BEFP code are removed.
  • More useful node info (#4341) — node.Info.type is now a string (e.g. "Bridge") and reports network_id; adds a new NetworkID endpoint.
  • Nightly bootstrapper health check (#4922) — CI now monitors bootstrapper reachability.

⚠️ Breaking Changes

  • fraud RPC namespace removed (#4934) — Calls to fraud.Subscribe/fraud.Get now error; the Fraud field is removed from the Go RPC client.
  • node.Info shape change (#4341) — type is now a string instead of an int; clients parsing it as a number must update.
  • RPC limits enforced (#4909) — Requests over 16 MiB and connections over the limit are now rejected.
  • header.GetRangeByHeight enforces MaxRangeRequestSize (#4945) — Oversized range requests now return an error over RPC (matching the P2P server).
  • Commitment.String() is now hex-encoded (#4413) — Anything relying on the previous raw byte output must update.

What's Changed

New Contributors

Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.30.2-arabica...v0.31.0-arabica