Remove badger v1 datastore support
- 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
Assessment
This issue has not been assessed yet.