EthCheck is a command-line tool for testing and verifying the Ethereum Consensus Specification using the ESBMC model checker. EthCheck includes:
- Verification of individual functions across all available forks;
- Automatic generation of test cases for each detected issue;
- Execution of these tests against eth2spec to confirm results;
- Availability as a pip package for easy installation.
The figure bellow 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 --list-forks
ethcheck --fork <fork-name>
Git hash: 1dffbe270c
Git tag: consensus-v1
MD5: 618f1fd89c399102865f9e366d164cb6
We thank the Ethereum Foundation for supporting our research team on this project.