Skip to content

Remove badger v1 datastore support #11186

@lidel

Description

@lidel

Checklist

  • My issue is specific & actionable.
  • I am not suggesting a protocol enhancement.
  • I have searched on the issue tracker for my issue.

Description

Rationale

The badgerds datastore is based on badger 1.x which has not been maintained by its upstream maintainers for years. It has 15+ open issues with known bugs
including startup timeouts, shutdown hangs, file descriptor exhaustion, and stdout pollution. Kubo never moved to badger v2 nor v3, and there is no path forward with this dependency.

Modern alternatives (flatfs, pebbleds) are available and actively maintained.

Related: #10347, #4279, #6818

Removal plan

  • Kubo v0.40 : loud deprecation error printed on every daemon start when a badger-based repository is detected. Updated profile descriptions, datastore docs, and config docs to mark badgerds as deprecated with migration guidance.

  • Later in 2026: remove go-ds-badger dependency and all badgerds plugin/profile code. Kubo will refuse to start if it detects a badger-based datastore config and print instructions to migrate.

Migration path

It has been deprecated for years. Everyone sane migrated already.
There will be no automated migration as we know its not feasible. The way to go is to create new node and transfer data:

  1. Create a new IPFS_PATH with flatfs (or experimental pebbleds if flatfs does not serve your use case):
    export IPFS_PATH=/path/to/new/repo
    ipfs init --profile=flatfs
    
  2. Move pinned data via ipfs dag export/import or ipfs pin ls -t recursive/ipfs pin add
  3. Decommission the old badger-based node

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: Likely tackled by core team if no one steps upkind/enhancementA net-new feature or improvement to an existing feature

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions