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.
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_filtersfeature. 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
Expected Outcomes
Resources
Skills Required
Mentor(s)
@rajarshimaitra
Difficulty: Hard
Competency Test (optional)