Skip to content

docs: add documentation for bridge node pruning changes (WIP)#2402

Draft
jcstein wants to merge 1 commit intomainfrom
docs/bridge-node-pruning-updates
Draft

docs: add documentation for bridge node pruning changes (WIP)#2402
jcstein wants to merge 1 commit intomainfrom
docs/bridge-node-pruning-updates

Conversation

@jcstein
Copy link
Member

@jcstein jcstein commented Feb 5, 2026

Overview

This PR adds comprehensive documentation for two important celestia-node changes:

  1. PR feat(pruning): allow pruning for Bridge Nodes celestia-node#4768: Bridge nodes now default to pruning mode with new --archival flag
  2. PR feat: implement routing exchange for bridge nodes celestia-node#4758: Routing exchange optimization for bridge nodes

⚠️ THIS IS A DRAFT - Version Numbers Need Updating

This PR contains placeholder TODOs that need to be updated once the release version is known. Search for [TODO: Add version from PR #4768] to find all locations.

Changes Made

Breaking Change Documentation

  • Added prominent warning about bridge nodes defaulting to pruning mode
  • Documented the new --archival flag requirement for full historical data
  • Added migration guide for existing bridge node operators

New Sections Added

  • Pruning vs Archival Modes: Comprehensive explanation of both modes and when to use each
  • Migration Guide: Step-by-step instructions for existing operators
  • Genesis Hash Requirements: Critical information for private network operators

Files Modified

  • app/operate/data-availability/bridge-node/page.mdx - Main documentation with all major changes
  • app/operate/data-availability/config-reference/page.mdx - New pruning configuration parameters
  • app/operate/data-availability/custom-networks/page.mdx - Genesis hash requirements for private networks
  • app/operate/getting-started/hardware-requirements/page.mdx - Storage specifications for pruned vs archival
  • app/operate/networks/mainnet-beta/page.mdx - Network-specific notes
  • app/operate/networks/mocha-testnet/page.mdx - Network-specific notes
  • app/operate/networks/arabica-devnet/page.mdx - Network-specific notes
  • app/operate/networks/local-devnet/page.mdx - Docker example with --archival flag

📝 TODO Before Merging

Version Placeholders to Update

Once celestiaorg/celestia-node#4768 is included in a release, update these locations:

  1. Bridge Node Page (app/operate/data-availability/bridge-node/page.mdx):

    • Line 12: Breaking change callout
    • Line 301: Migration guide section
  2. Config Reference (app/operate/data-availability/config-reference/page.mdx):

    • Line 72: Pruning configuration section
  3. Custom Networks (app/operate/data-availability/custom-networks/page.mdx):

    • Line 11: Important note for bridge nodes
  4. Hardware Requirements (app/operate/getting-started/hardware-requirements/page.mdx):

    • Line 18: Note about default pruning mode
  5. Network Pages:

    • Mainnet: Line 190 - Warning callout
    • Remove PR references from lines mentioning "PR #4768" once released

Additional Updates Needed

  • Confirm the actual release version number
  • Replace all [TODO: Add version from PR #4768] with the actual version
  • Update PR references to link to release notes instead
  • Test all command examples with the actual release
  • Verify genesis hash requirements behavior in the release

Context from Original PRs

PR #4768 - Pruning for Bridge Nodes

  • Bridge nodes now prune by default (breaking change)
  • --archival flag required for full historical data
  • Genesis hash requirement for private networks without archival mode

PR #4758 - Routing Exchange

  • Automatic optimization for header synchronization
  • No configuration needed (happens automatically)
  • Routes to core exchange within availability window, P2P exchange outside

Addresses Concerns

This documentation specifically addresses the concern raised about private networks:

"user will not be able to run a Bridge Node on private network without explicitly setting the genesis hash"

The docs now clearly explain that private network operators must either:

  1. Use --archival flag (simplest option)
  2. Configure genesis hash properly
  3. Use SyncFromHeight/SyncFromHash parameters

Review Checklist

  • Breaking changes are prominently displayed
  • Migration path is clear for existing operators
  • Private network requirements are documented
  • All node initialization examples updated
  • Hardware requirements distinguish pruned vs archival
  • Version numbers added (waiting for release)

cc @vgonkivs - for review once the version is finalized

Add comprehensive documentation updates for upcoming bridge node changes:
- Document new default pruning mode for bridge nodes (PR #4768)
- Add --archival flag documentation for full historical data retention
- Include routing exchange optimization notes (PR #4758)
- Update hardware requirements to clarify pruned vs archival modes
- Add migration guide for existing bridge node operators
- Update custom networks docs with genesis hash requirements
- Add breaking change warnings across all relevant pages

Note: Version placeholders (TODO) added pending release of PR #4768

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @jcstein, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the Celestia documentation to reflect significant changes in bridge node behavior, primarily the shift to default pruning mode and the introduction of an explicit archival mode. It provides crucial information for operators on how to manage their nodes, including a migration guide and specific considerations for private networks. The updates aim to clarify the new operational paradigms and ensure users can configure their bridge nodes appropriately for their specific needs, whether for reduced storage or full historical data access.

Highlights

  • Default Pruning for Bridge Nodes: Bridge nodes will now default to pruning mode, significantly reducing storage requirements by only storing recent blocks within the availability window. This is a breaking change for existing operators.
  • New Archival Mode and Flag: A new --archival flag has been introduced for bridge nodes that need to store all historical data from genesis. This mode is necessary for applications requiring full historical access or for serving data outside the availability window.
  • Migration Guide for Existing Operators: Comprehensive instructions are provided for existing bridge node operators to either adapt to the new default pruning mode or migrate to archival mode using the --archival flag.
  • Private Network Genesis Hash Requirements: Documentation clarifies that bridge nodes on private networks, when running in pruned mode, must explicitly provide a genesis hash configuration or use the --archival flag to start successfully.
  • Routing Exchange Optimization: The documentation includes details on an automatic routing exchange optimization for bridge nodes, which enhances header synchronization without requiring any configuration.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • app/operate/data-availability/bridge-node/page.mdx
    • Added a prominent warning callout about bridge nodes defaulting to pruning mode and the requirement for the --archival flag.
    • Introduced new sections detailing 'Pruning vs archival modes' and 'Choosing between modes', explaining their functionalities and use cases.
    • Included an informational callout about the 'Routing Exchange Optimization' for header synchronization.
    • Updated celestia bridge init and celestia bridge start command examples to include both default (pruned) and --archival options across different networks.
    • Added a new 'Migration guide for existing bridge nodes' section, providing step-by-step instructions for adapting to the pruning changes, including specific advice for private networks.
  • app/operate/data-availability/config-reference/page.mdx
    • Added a new subsection 'Pruning Configuration (Bridge Nodes)' detailing PruningWindow, SyncFromHeight, SyncFromHash, and the --archival flag.
    • Provided example TOML configuration for pruned bridge nodes and bash commands for archival bridge nodes.
  • app/operate/data-availability/custom-networks/page.mdx
    • Added an important note for bridge nodes on private networks, emphasizing the need for --archival or genesis hash configuration.
    • Updated the celestia <node-type> start command examples to differentiate between pruned (default) and archival bridge nodes.
    • Introduced a new 'Bridge node specific configuration' section outlining three options for private network operators: archival mode, genesis hash configuration, or syncing from a specific height/hash.
  • app/operate/getting-started/hardware-requirements/page.mdx
    • Renamed 'Non-archival data availability nodes' to 'Non-archival data availability nodes (pruned)'.
    • Added a note indicating that bridge nodes now default to pruning mode and that the listed specifications are for pruned nodes.
    • Updated the 'Bridge node' entry in the archival table to 'Bridge node (--archival flag)'.
    • Added an important note clarifying that the --archival flag is required to run an archival bridge node.
  • app/operate/networks/arabica-devnet/page.mdx
    • Added a note to the 'Running Bridge Nodes' bullet point, indicating that bridge nodes will default to pruning mode in an upcoming release.
  • app/operate/networks/local-devnet/page.mdx
    • Added a note above the docker-compose.yml example explaining that the bridge node uses --archival mode to simplify private network setup.
    • Added the --archival flag to the celestia-bridge service in the docker-compose.yml example.
  • app/operate/networks/mainnet-beta/page.mdx
    • Added a note to the 'Running Bridge Nodes' bullet point, indicating the upcoming default pruning mode and the use of --archival for full history.
    • Introduced a warning callout in the 'Bridge node requirements' section about the default pruning change.
    • Expanded the 'Bridge node requirements' section to clearly distinguish between requirements for archival bridge nodes (using --archival) and pruned bridge nodes (default).
  • app/operate/networks/mocha-testnet/page.mdx
    • Added a note to the 'Bridge node' bullet point, indicating that bridge nodes will default to pruning mode in an upcoming release.
Activity
  • The pull request is currently a Work In Progress (WIP), as indicated by the title and description.
  • There are several placeholder [TODO: Add version from PR #4768] entries that need to be updated once the relevant celestia-node release version is known.
  • The author has provided a detailed 'TODO Before Merging' list, outlining remaining tasks such as confirming release versions, replacing placeholders, updating PR references, testing command examples, and verifying genesis hash behavior.
  • The pull request includes a review checklist, with most items marked as complete, but version number addition is pending the release.
  • The author has requested a review from @vgonkivs once the version is finalized.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request provides comprehensive and much-needed documentation for the recent changes to bridge node pruning. The explanations of pruned vs. archival modes, the new --archival flag, and the migration guide are clear and well-structured. The changes are consistently applied across all relevant documentation files, which will be very helpful for users.

I've left a few minor suggestions to improve clarity and consistency in the configuration reference and custom networks documentation. Overall, this is an excellent documentation update.


Starting from [TODO: Add version from PR #4768], bridge nodes support pruning configuration:

- `PruningWindow`: Defines how many blocks to keep (0 = keep all, default for non-archival nodes)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The description for PruningWindow is a bit confusing. The phrase (0 = keep all, default for non-archival nodes) could be misinterpreted as the default for pruned (non-archival) nodes is 0, which would mean they keep all data, contradicting the purpose of pruning. Please clarify this. For instance, you could specify the default pruning window for non-archival nodes and state that 0 is for disabling pruning.

```

For archival bridge nodes, use the `--archival` flag when initializing and starting:
```bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency with other code blocks in this pull request, please use sh instead of bash as the language identifier for this shell script block.

```sh

```

3. **Sync from a specific height or hash**:
```bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This code block contains TOML configuration, but it's marked as bash. Using toml would be more accurate for syntax highlighting and clarity.

   ```toml

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

🚀 Preview Deployment

Your preview is ready: https://celestiaorg.github.io/docs-preview/pr-2402/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant