Background
The current LevelDB stack uses the deprecated levelup + leveldown + subleveldown packages. These have been superseded by classic-level (or level) with built-in .sublevel() support.
Current State
The persistent command queue (queue.mjs) uses the levelup API:
createReadStream() for iterating entries
- Callback-based
batch() and del()
subleveldown for namespace isolation
Target State
Migrate to the abstract-level API:
iterator().all() instead of createReadStream()
- Promise-based
batch(), del(), get(), put()
- Built-in
.sublevel() instead of subleveldown
Notes
- The on-disk format is identical between old and new APIs (same LevelDB C++ engine). User data requires no migration.
- This should be coordinated with the corresponding migration in ODINv2 (see syncpoint/ODINv2 issue).
- Tests currently use
memdown + levelup + subleveldown — migrate to memory-level.
Background
The current LevelDB stack uses the deprecated
levelup+leveldown+subleveldownpackages. These have been superseded byclassic-level(orlevel) with built-in.sublevel()support.Current State
The persistent command queue (
queue.mjs) uses thelevelupAPI:createReadStream()for iterating entriesbatch()anddel()subleveldownfor namespace isolationTarget State
Migrate to the
abstract-levelAPI:iterator().all()instead ofcreateReadStream()batch(),del(),get(),put().sublevel()instead ofsubleveldownNotes
memdown+levelup+subleveldown— migrate tomemory-level.