Pascal Berrang
Pascal Berrang
## What's in this pull request? Adds detailed metrics to the database crate – similarly to how `reth` is doing it. This currently uses the `metrics` crate, which is not...
Currently, we overuse very specific feature flags in our code. For example, we have flags for `validator`, `database-storage`, `zkp-prover`, but we don't have a `web`/`wasm` feature flag. We should generally...
The ZKP circuits require very specific serialization of the `MacroBlock`. In particular, it assumes the body is hashed as `hash(pk_tree_root || body_bytes)`, where `body_bytes` is 64 bytes long. The header...
Tables should ideally be typed, e.g., `TableProxy`. This removes the need of specifying types on database instructions and ensures type consistency.
Libmdbx supports [set_lowerbound](https://docs.rs/libmdbx/0.5.0/libmdbx/struct.Cursor.html#method.set_lowerbound) on cursors, which allows to seek to a specific duplicate data item **efficiently**. This is because duplicate items are represented as another B+Tree. We can thus also...
This depends on #2640 Afterwards, it would be good to add metrics for: - [ ] State Queue - [ ] Trie Diff Queue - [ ] Block Queue More...
libp2p offers a variety of metrics that we could tap into as well. Unfortunately, it builds on the `prometheus_client` crate, which would require us to initialise a `Registry` **before initialising...
Currently, we rely on `prometheus_client` to export our metrics, which requires the `metrics_server` crate to register all handlers. Switching to the `metrics` crate would allow us to add new metrics...
Not sure if this is of interest to the libmdbx crate, but this PR exposes the internal commit latency functionality via an additional function without breaking the current API.
This PR adds a post-validation hook to the blockchain and uses it to publish/validate blocks before the database commit is happening. This way, the blocks are forwarded to the network...