This is a minimal, reproducible set of steps to run a baseline vs RL comparison for Lighthouse using Honggfuzz, and inspect the outputs you care about.
- OS: Linux or macOS (x86_64 or Apple Silicon). On macOS, use Docker Desktop or Colima.
- Docker: Engine 20+ with BuildKit; able to run
docker buildanddocker run.- Resources: 4+ CPU, 8–16 GB RAM, 20+ GB free disk (images + corpora + logs).
- Make + Bash available on host.
- Network: Access to GitHub, Docker registries, and crates.io (prefetch steps will pull crates inside the container).
Repository context: https://github.com/RiemaLabs/alma
Build the Lighthouse image and prefetch dependencies (Docker‑based runs):
cd eth2fuzz
make lighthouse
make prefetch-lighthouseRun a 60s baseline vs RL comparison (2 threads, 10s segments):
make cov-attestation fuzzer=honggfuzz T=60 RT=60 S=10 n=2 tag=demoShow detailed fields (new_units / mutated_new):
SHOW_VERBOSE=1 make cov-attestation fuzzer=honggfuzz T=60 RT=60 S=10 n=2 tag=demoAfter running the command, you will see a summary like this:
--- SUMMARY (target=lighthouse_attestation) ---
Baseline: mutated_new_cov +35, cov: 6%
RL: mutated_new_cov +48, cov: 7%
- Baseline kept samples:
eth2fuzz/workspace/logs/demo/base/libfuzzer_corpus/lighthouse_attestation
- RL kept samples:
eth2fuzz/workspace/logs/demo/rl/libfuzzer_corpus/lighthouse_attestation
- Honggfuzz logs (coverage%, new_units):
- Baseline:
eth2fuzz/workspace/logs/demo_base/rl/hfuzz/logs/lighthouse_attestation.log - RL:
eth2fuzz/workspace/logs/demo/rl/hfuzz/logs/lighthouse_attestation.log
- Baseline:
- Focus on
mutated_new_cov(coverage‑contributing samples). This is the most reliable indicator of persistent improvement. - Equal coverage% is common on mature corpora; RL gains often appear as a few extra kept samples rather than large % jumps.
Remove all logs:
make clean-logsRemove logs for a specific tag:
make clean-tag TAG=demoRemove temp only (merge_tmp, rl_input, etc.):
make clean-tmpMIT — see LICENSE
This repository builds upon the open‑source beacon‑fuzz/eth2fuzz work led by Sigma Prime (and contributors), and the broader Ethereum community. Thank you for the foundations and prior art.