Celestia Node v0.25-mocha Release Notes
This release accumulates all Arabica v0.25.x releases (v0.25.0–v0.25.2) and applies them to the Mocha testnet. It introduces several breaking API changes, new features, and critical updates for client developers (Go & Rust).
⚡ TL;DR
-
⚠ API Breaking Changes
-
Config Update Required – Run before starting if upgrading from < v0.25.0:
celestia <node_type> config-update
-
Data Retention Changes
-
Performance & Features – Faster
GetRange
via shwap (#4156, #4325), parallelized namespace data (#4420), optimized blob fetching (#4431). -
Rust Users – Must upgrade to latest Rust crates for RPC compatibility (see section below).
🚨 Breaking Changes
Configuration
- Config update required: #4303
- Pruner config removed from
config.toml
, replaced with--archival
flag (#4482)
API & JSON
- JSON integers now encoded as strings (#3928, #3930, #3929)
- Blobstream API: hex encoding & pointer cleanup (#4390, #4430, #4435, #4432)
- Share API: Samples method now accepts
height
, shares encoded as base64 (#4481, #4480)
Gateway Removal
- Gateway removed – migrate to direct API (#4120)
✨ New Features
- Configurable CORS policy (#4266)
- Celestia client library (Go) (#4318)
- Multi-core transaction submission (#4380)
🚀 Performance
- Faster
GetRange
via shwap protocol (#4156, #4325) - Parallelized namespace data (#4420)
- Optimized blob fetching (#4431)
🛠 Bug Fixes & Maintenance
- Pruner to archival migration warning update (#4471)
- Core/test stability fixes (#4366, #4429)
- Dependency bumps: go-header v0.6.6, go-fraud v0.2.3 (#4217), libp2p (#4401), tendermint (#4396), go-square v2.3.1 (#4402)
🦀 Rust Users – Required Upgrade
Rust ecosystem must upgrade to maintain RPC compatibility with v0.25.
Upgrade timeline:
- If you do not use
header.GetRangeByHeight
: upgrade immediately. - If you do use it: upgrade Rust crates & celestia-node together.
🔗 Full Changelog
- v0.24.1 → v0.25.0-arabica
- v0.25.0-arabica → v0.25.1-arabica
- v0.25.1-arabica → v0.25.2-arabica
- v0.25.2-arabica → v0.25-mocha
Would you like me to also prepare a migration matrix (Node Operator vs Rust Client) with direct before/after code snippets (like we did for GetSamples
)? That might help prevent mistakes during rollout.