A Python tool for verifying Ethereum Consensus Specification using ESBMC
Project description
EthCheck
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.
Architecture
The figure illustrates the EthCheck architecture.
Installation
EthCheck is currently supported on Linux.
1. Install dependencies
sudo apt update
sudo apt install -y python3-venv python3-pip git-lfs
./scripts/install_deps.sh
2. Activate the Virtual Environment
Activate the Python virtual environment created during the step above.
source ethcheck_env/bin/activate
3. Install EthCheck
pip install .
Usage
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.
Verify a specific file
ethcheck --file ethcheck/spec.py
Verify the Deneb fork specification
ethcheck --deneb
ESBMC version
Git hash: 1dffbe270c
Git tag: consensus-v1
MD5: 618f1fd89c399102865f9e366d164cb6
Acknowledgment
We thank the Ethereum Foundation for supporting our research team on this project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ethcheck-0.1.2.tar.gz.
File metadata
- Download URL: ethcheck-0.1.2.tar.gz
- Upload date:
- Size: 70.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cf5260228f04d6f87a0a010241818ed25570106449069a3bbd012118d692db6
|
|
| MD5 |
7878cdf22bd51eb539f051ebdfedef58
|
|
| BLAKE2b-256 |
040e2c2fdd1bc13bf7b1483d029c80a8dae835bebad1621b77b0e9d33ed5e45f
|
File details
Details for the file ethcheck-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ethcheck-0.1.2-py3-none-any.whl
- Upload date:
- Size: 70.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4905f28ccdfe7cdc76a76b8a6cbbdff38af279b60626d3922782bccc1d0be4c0
|
|
| MD5 |
10a8ddf3c56284fb944a5a3609f0cf29
|
|
| BLAKE2b-256 |
6976c52609c5f0aafdfe3e1abe6a53e5a93e7e6e33509116ee59dbb1378ebca2
|