https://github.com/sigp/blockdreamer
Ethereum block hallucinator
https://github.com/sigp/blockdreamer
eth2 ethereum lighthouse
Last synced: 9 months ago
JSON representation
Ethereum block hallucinator
- Host: GitHub
- URL: https://github.com/sigp/blockdreamer
- Owner: sigp
- Created: 2022-03-21T01:06:32.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-10-01T23:53:38.000Z (9 months ago)
- Last Synced: 2025-10-02T01:22:50.207Z (9 months ago)
- Topics: eth2, ethereum, lighthouse
- Language: Rust
- Homepage:
- Size: 390 KB
- Stars: 9
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
`blockdreamer`
=============
Blockdreamer is a microservice for triggering block production on Ethereum consensus clients.
Each slot it hits the `/eth/v2/validator/blocks/slot` endpoint for each node in its `config.toml`.
This is useful for several tasks:
- Benchmarking/stress testing
- Generating training data for [blockprint](https://github.com/sigp/blockprint)
- Computing similarity scores for blocks (an alternative to blockprint, see `src/distance.rs`)
## Installation
A Docker image is available on the GitHub container registry:
```
docker pull ghcr.io/sigp/blockdreamer
```
Or you can build from source:
```
cargo build --release
```
## Configuration
Blockdreamer is configured by a `config.toml` provided to the `--config` flag.
```
Ethereum block hallucinator.
Usage: blockdreamer --config
Options:
--config Path to a TOML configuration file. See docs for examples
-h, --help Print help
-V, --version Print version
```
An example configuration file can be found at [`example.toml`](./example.toml).
A full list of configuration options can be found in the source: [`src/config.rs`](./src/config.rs).
## Consensus Node Configuration
Ensure that all the consensus nodes configured with blockdreamer have a fee recipient set.
Block proposals may fail if the fee recipient is not set. A dummy value is usually sufficient,
e.g. for Lighthouse:
```
lighthouse bn \
--suggested-fee-recipient 0xffffffffffffffffffffffffffffffffffffffff
```
## Execution Node Configuration
Blockdreamer is often used in conjunction with [Eleel][], which both simplifies the maintenance
of the consensus node swarm and streamlines block building. Unlike execution nodes which may take
significant time to build an execution payload, Eleel can build a dummy payload in milliseconds,
and isn't fussy about how the consensus node asks for that payload.
[Eleel]: https://github.com/sigp/eleel