EthCheck is a command-line tool for testing and verifying the Ethereum Consensus Specification using the ESBMC model checker. EthCheck runner includes:
- Automatically generating test cases for each detected issue;
- Executing these tests against eth2spec for confirmation;
- A comprehensive pip package with detailed documentation.
The figure illustrates the EthCheck architecture.
EthCheck is currently supported on Linux.
sudo apt update
sudo apt install -y python3-venv python3-pip git-lfs
./scripts/install_deps.sh
Activate the Python virtual environment created during the step above.
source ethcheck_env/bin/activate
pip install .
Important: Ensure the virtual environment is active by running the command source ethcheck_env/bin/activate
before using EthCheck. The terminal should display <ethcheck_env> if the environment is active.
ethcheck --file ethcheck/spec.py
ethcheck --deneb
Git hash: 1dffbe270c
Git tag: consensus-v1
MD5: 618f1fd89c399102865f9e366d164cb6
We thank the Ethereum Foundation for supporting our research team on this project.