Skip to content

RocksDB Replacement in CBF Blockchain #480

@rajarshimaitra

Description

@rajarshimaitra

Description

Currently the Compact Block Filters (BIP157) blockchain backend implementation for BDK, uses RocksDB as the database to store the compact block filter data. RocksDB is quite a large dependency and it takes a significant amount of building time, while compiling bdk with compact_filters feature. Also RocksDB crate is not native rust, its a wrapper over rocksdb, which increases its compilation time even more. Thus it is desirable to replace RocksDB with a more smaller and compact DB implementation.

The required feature for a candidate DB for CBF would be

  • Simple Key-Value storage.
  • Automated disk flushing.
  • Smaller build time than RocksDB.
  • Preferably having its own rust implementation.

Expected Outcomes

  • General understanding of BIP157, BIP158 and BDK CBF syncing mechanism.
  • Literature survey and comparative study between different DB implementation.
  • Complete replacement of RocksDB.
  • Faster build and run time with new DB, demonstrated via benchmarking.

Resources

Skills Required

Mentor(s)
@rajarshimaitra

Difficulty: Hard

Competency Test (optional)

  • Install rust, compile and run all bdk examples and tests.
  • Read through the BDK docs.
  • Familiarity with basic rust, should be able to write basic custom trait implementations on foreign structures.

Metadata

Metadata

Labels

summer-of-bitcoinSummer of Bitcoin Project Proposal

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions