Releases: celestiaorg/celestia-node
v0.25.2-mocha
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.
v0.25.2-arabica
Celestia Node v0.25.2 Release Notes
This patch release includes additional API breaking changes that further improve consistency across the node API. Please review these changes carefully before upgrading from v0.25.0 or v0.25.1.
TL;DR
-
⚠ Additional API Breaking Changes
- Share Samples API now uses height parameter instead of ExtendedHeader
- Share encoding in Samples response changed to base64 string (was object with data field)
- Pruner config removed → Use
--archival
flag exclusively to disable pruning
-
Config Update Required (if upgrading from pre-v0.25.0)
celestia <node_type> config-update
🚨 Breaking Changes (Additional to v0.25.0)
Pruner Configuration Removal
Changes:
- The pruner configuration field has been completely removed from node config files
- Pruning behavior is now controlled exclusively via command-line flags
Migration:
- Remove any pruner-related configuration from your config files
- To run an archival node (disable pruning): MUST use
--archival
flag when starting the node - Default behavior (without flag): Pruning enabled with 30-day retention
Share API Consistency Improvements
Samples Method Signature Change
Changes:
Samples
method now acceptsheight
parameter directly- No longer requires passing
ExtendedHeader
- Brings consistency with other share module methods
Migration:
// Before:
samples, err := client.Share.GetSamples(ctx, header)
// After:
samples, err := client.Share.GetSamples(ctx, height)
Share Encoding in Samples Response
Changes:
- Shares in
GetSamples
response now encoded as base64 strings - Previously encoded as objects with
data
field - Matches encoding format used by
GetRow
and other methods
Migration:
// Before (v0.25.0-v0.25.1):
{
"share": {
"data": "AAAAAAA...base64..."
},
"proof": { ... }
}
// After (v0.25.2+):
{
"share": "AAAAAAA...base64...",
"proof": { ... }
}
Update JSON parsing to expect shares as direct base64 strings rather than nested objects.
Full Changelog: v0.25.1...v0.25.2
v0.25.1-arabica
Full changelog from last release: https://github.com/celestiaorg/celestia-node/releases/tag/v0.25.0-arabica
What's Changed
- fix(cmd/celestia): parse only store determination flags for auxiliary commands by @renaynay in #4472
Full Changelog: v0.25.0-arabica...v0.25.1-arabica
v0.25.0-arabica
Celestia Node v0.25 Release Notes
This release includes significant changes accumulated since May 2025 while waiting for the Celestia App v4/v5 mainnet update. Please review all breaking changes carefully before upgrading.
TL;DR
-
⚠ API Breaking Changes
- JSON integers now encoded as strings (Tendermint compatibility)
- Blobstream root encoding switched to hex (plus pointer cleanups in Go API)
- Gateway removed → use direct API; configure CORS as needed
-
Config Update Required
Run before starting:celestia <node_type> config-update
-
Data Retention Changes
- Full Nodes: Pruning enabled by default (≈30 days)
- Light Nodes: Sampling window reduced to 7 days
- Use
--archival
to keep full history
-
API Enhancements – Configurable CORS, new client library, multi-endpoint tx submission
-
Faster GetRange – Uses shwap protocol for efficient partial retrieval
-
Performance Boosts – Parallelized namespace data; optimized blob retrieval
-
Bootstrap Updates – Added 01node mainnet bootstrap; removed outdated nodes
🚨 Breaking Changes
Configuration Breaking Changes
This release contains configuration breaking changes. Node operators must run the config update command before starting their node:
celestia <node_type> config-update --p2p.network (or --node.store)
API & JSON Compatibility
- fix(api/header)!: tendermint compatible json marshall #3928 by @zvolin (ported in #4428)
- fix(share)!: tendermint compatible get range result json marshall by @zvolin in #3930
- fix(blob)!: tendermint compatible commitment proof json marshall #3929 by @zvolin (ported in #4434)
Changes:
- Integer values in JSON responses are now encoded as strings for Tendermint compatibility
- Example:
“height”: 67374
becomes“height”: “67374”
Migration: Update JSON parsing logic to handle integers as strings in header, share range, and blob commitment proof endpoints.
Gateway Removal
- refactor(api)!: removing gateway by @distractedm1nd in #4120
Migration: If you were using the gateway, switch to direct API endpoints. Configure CORS policy using the new configurable CORS feature if needed.
Blobstream API Changes
- refactor!(blobstream): change DataRootTupleRoot to HexBytes type alias by @vgonkivs in #4390
- fix!(blobstream): change DataRootTupleInclusionProof type by @vgonkivs in #4430
- fix!(blobstream): change GetDataRootTupleRoot return type by @vgonkivs in #4435
- fix(open-rpc): add blobstream api docs by @vgonkivs in #4432
Changes:
DataRootTupleRoot
: String encoding changed from base64 to hex bytesDataRootTupleInclusionProof
: Removed extra pointer (affects native Go API only, not JSON encoding)GetDataRootTupleRoot
: Removed extra pointer in returned value (affects native Go API only)- Blobstream API is now publicly documented
Migration:
- Update code expecting base64 encoded roots to handle hex encoding
- Go API users: Update code to handle direct values instead of pointers
GetRange efficiency improvements
- feat!(share/shwap): implement get range request over shwap by @vgonkivs in #4156
- refactor!(share/shwap): rework range namespace data by @vgonkivs in #4325
Changes:
- GetRange requests now use efficient P2P protocol instead of downloading entire EDS
- Significant performance improvement for partial data retrieval
Migration: Update clients using range requests to use the new shwap protocol implementation.
Data Pruning Now Default
- refactor(nodebuilder/pruner)!: Remove --experimental-pruning by @renaynay in #4303
- feat(share/availability)!: lower sampling window to 7 days by @renaynay in #4427
Changes:
- Data pruning is now enabled by default (stores 30 days of data)
- Sampling window reduced from 30 to 7 days
- Archival nodes must use
--archival
flag to disable pruning
Migration:
- Archival nodes: Add
--archival
flag to maintain full history - All other nodes: Remove
--experimental-pruning
flag (pruning is now automatic) - Adjust monitoring for the new 7-day sampling window
🔄 Bootstrap Nodes
- chore: removing the bootstrapper 3 and 4 from lunar by @tty47 in #4302
- chore(bootstrapers): add 01node mainnet bootstrap node by @daemon2k3 in #4270
✨ New Features
API Enhancements
- feat(api): Celestia client lib by @walldiss in #4318
- feat(api): allow configurable CORS policy by @TheRealSibasishBehera in #4266
- feat(nodebuilder/core | state): Multi-core endpoint tx submission by @renaynay in #4380
Testing Infrastructure
- test: Tastora framework integration with test for blob module by @chatton in #4283
- test: tastora remove fullnode and rely on bridge and light nodes only by @gupadhyaya in #4441
- test: use tastora docker types instead of interface types by @gupadhyaya in #4421
🚀 Performance Improvements
- perf(share/eds): parallelise row nd collection in NamespaceData by @renaynay in #4420
- perf(api/da): request all blobs once in da.Get by @walldiss in #4431
🔧 Bug Fixes
- chore: fix incorrect logging in
updateHead
by @santamasa in #4191 - fix: fix lint by @vgonkivs in #4388
- fix(core/tests): fix core unit tests by @vgonkivs in #4366
- fix(test/blob): fix flaky blob test by @vgonkivs in #4429
- fix(nodebuilder): submit input validation by @cristaloleg in #3976
- fix: rename FuzzProofEqual to FuzzBlobUnmarshal by @GarmashAlex in #4414
- chore: update warning text on pruned -> archival conversion by @walldiss in #4471
- docs(api/da): doc and deprecate DA API by @walldiss in #4470
Test Fixes
- chore(node/tests): fix and cleanup swamp tests by @shipit in #4381
- chore(node/tests): fix a flaky nd test by @shipit in #4382
🧹 Chore & Maintenance
Go Version & Core Dependencies
- bump go version by @renaynay in #4312
- deps!: bump go-header v0.6.6 and go-fraud v0.2.3 by @cristaloleg in #4217
- deps(go.mod): bump libp2p dep by @walldiss in #4401
- deps(go.mod): bump tendermint replace by @walldiss in #4396
- chore(deps): upgrade to go-square v2.3.1 by @rootulp in #4402
Celestia App Updates (v3 → v5)
- deps(go.mod): bump app by @renaynay in #4275
- deps(go.mod): bump app arabica by @renaynay in #4293
- deps(go.mod): bump app to mocha by @renaynay in #4301
- deps(go.mod): Bump app by @renaynay in #4363
- deps(go.mod): Bump app mocha by @renaynay in #4368
- deps(go.mod): Bump app
arabica
by @renaynay in #4383 - deps(go.mod): bump app
mocha
by @renaynay in #4385 - chore(deps): upgrade to app v4.0.9-arabica by @rootulp in #4391
- deps(go.mod): bump app
mocha
by @renaynay in #4394 - deps(go.mod): bump app mainnet by @renaynay in #4408
- chore: bump to v5 of app by @evan in #4444
- deps(go.mod): bump app mocha by @renaynay in #4448
- chore(deps): upgrade to app v5.0.1 by @rootulp in #4450
Tastora Dependencies
- deps(nodebuilder/tests/tastora): mod tidy by @renaynay in #4405
- chore(lint): fmt to tidy tastora go.mod by @walldiss in #4447
Repo
- chore(CODEOWNERS): remove @cristaloleg by @cristaloleg in #4272
- Add Ganesh to CODEOWNERS by @walldiss in #430...
v0.24.1
v0.24.1-mocha
v0.24.1-arabica
v0.24.0-rc0
What's Changed
Full Changelog: v0.23.5...v0.24.0-rc0
v0.21.9-mammoth-v0.0.17
Full Changelog: v0.21.9-mammoth-v0.0.16...v0.21.9-mammoth-v0.0.17
v0.23.5
This release is the celestia-node release intended to be compatible with celestia-app
v4 release.
What's Changed
- fix(makefile): ensure correct semantic version is shown for branches by @Himess in #4230
- docs(README): add supported archs by @cristaloleg in #4253
- deps: Bump SDK to version 0.50 and Celestia App to V4 by @chatton in #4219
- chore(deps): upgrade to v4.0.0-arabica by @rootulp in #4268
- deps(go.mod): Bump app (#4363) --
arabica
by @renaynay in #4369 - feat(api): Celestia client lib (v4 migration) (#4318) by @renaynay in #4370
- deps(go.mod): roll back go-header release by @renaynay in #4371
- deps(go.mod): Bump app -->
mocha
by @renaynay in #4372 - fix(nodebuilder/header): Fix module_test after go-header rollback by @renaynay in #4373
- deps(go.mod): Bump app
arabica
(#4383) by @renaynay in #4384 - deps(go.mod): bump app
mocha
by @renaynay in #4386 - deps(go.mod): backport arabica app bump by @renaynay in #4392
- deps(go.mod): backport app bump
mocha
by @renaynay in #4395 - deps(go.mod): bump app dep and go-square by @renaynay in #4406
- deps(go.mod): Bump app to mainnet by @renaynay in #4410
New Contributors
Full Changelog: v0.22.3...v0.23.5