ipfs / ipfs/kubo

Remove badger v1 datastore support

Open
#11,186 0 comments 0 reactions 0 assignees View on GitHub
kind/enhancement P1
Dominant language
Go
Stars
17.1k
Forks
3.2k
Avg merge
3d 18h
Merged PRs (30d)
11

Description

### Checklist

- [x] My issue is specific & actionable.
- [x] I am not suggesting a protocol enhancement.
- [x] I have searched on the [issue tracker](https://github.com/ipfs/kubo/issues?q=is%3Aissue) for my issue.

### Description

## Rationale

The `badgerds` datastore is based on [badger 1.x](https://github.com/dgraph-io/badger/tree/v1.6.2) 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

- [x] **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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.