92d597ad23
## Proposed Changes Enable multiple database backends for the slasher, either MDBX (default) or LMDB. The backend can be selected using `--slasher-backend={lmdb,mdbx}`. ## Additional Info In order to abstract over the two library's different handling of database lifetimes I've used `Box::leak` to give the `Environment` type a `'static` lifetime. This was the only way I could think of using 100% safe code to construct a self-referential struct `SlasherDB`, where the `OpenDatabases` refers to the `Environment`. I think this is OK, as the `Environment` is expected to live for the life of the program, and both database engines leave the database in a consistent state after each write. The memory claimed for memory-mapping will be freed by the OS and appropriately flushed regardless of whether the `Environment` is actually dropped. We are depending on two `sigp` forks of `libmdbx-rs` and `lmdb-rs`, to give us greater control over MDBX OS support and LMDB's version. |
||
---|---|---|
.. | ||
src | ||
.gitignore | ||
book.toml | ||
README.md |
Lighthouse Book
Contains an mdBook that serves as the primary source of Lighthouse user documentation.
The book is hosted at lighthouse-book.sigmaprime.io
Usage
The mdBook docs are the best source of information for building the book.
Example
- Install mdBook:
$ cargo install mdbook
- Build the book, open it in a browser and build after file changes:
$ mdbook serve --open