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

:rotating_light: 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

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

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

Changes:

  • DataRootTupleRoot: String encoding changed from base64 to hex bytes
  • DataRootTupleInclusionProof: 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

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

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

:arrows_counterclockwise: Bootstrap Nodes

:sparkles: New Features

API Enhancements

Testing Infrastructure

:rocket: Performance Improvements

:wrench: Bug Fixes

Test Fixes

:broom: Chore & Maintenance

Go Version & Core Dependencies

Celestia App Updates (v3 → v5)

Tastora Dependencies

Repo

New Contributors


Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.24.1...v0.25-arabica