Skip to main content

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 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;

Architecture

The figure bellow illustrates the EthCheck architecture.

image

Installation

EthCheck is currently supported on Linux.

sudo apt update
sudo apt install -y python3-venv python3-pip git-lfs
pip install eth2spec
pip install ethcheck

Usage

Important: Ensure the virtual environment is active by running the command below:

python3 -m venv ethcheck_env
source ethcheck_env/bin/activate

The terminal should display <ethcheck_env> if the environment is active.

Verify a specific file

ethcheck --file ethcheck/spec.py

List available forks

ethcheck --list-forks

Verify a specific fork

ethcheck --fork <fork-name>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ethcheck-0.1.4.tar.gz (70.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ethcheck-0.1.4-py3-none-any.whl (70.4 MB view details)

Uploaded Python 3

File details

Details for the file ethcheck-0.1.4.tar.gz.

File metadata

  • Download URL: ethcheck-0.1.4.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

Hashes for ethcheck-0.1.4.tar.gz
Algorithm Hash digest
SHA256 dc7462f94d6f44fe94cec8876c74488d38074e12666df3786e26bd68fb1693b1
MD5 0c0728c7492b19145855589cb9d8a9e6
BLAKE2b-256 f5fc6228c86d57d802cf15a3ba7bb24f516d98d21599388083076bc782d6421f

See more details on using hashes here.

File details

Details for the file ethcheck-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: ethcheck-0.1.4-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

Hashes for ethcheck-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b3714a6c9134c5efc616c40d656a7a822531d6a454584f365a9e284b93bd2990
MD5 780293b89d7328c1e471f894f82e5e2b
BLAKE2b-256 5656832e7a1c5c9bbbbf902bda4e5200ac16669969e478fba9e4c2035c601463

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page