Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 2.03 KB

README.md

File metadata and controls

62 lines (41 loc) · 2.03 KB

stethoscope

Stethoscope is an Eth 2.0 scenario runner that works with real, running clients.

Right now it's used for single-client regression tests. In the future, we hope to also use it to run multi-client scenarios as a tool for bug discovery.

Background

If we're to have a mutli-client Eth 2.0 mainnet, we're going to need to do multi-client testing. Even though individual clients adhere to the spec and are rigorously tested internally, there are likely to be divergent assumptions in client implementation that only show up when multiple clients talk to each other.

Testnets will capture much of this, but they aren't the best tool for closely examining specific multi-client scenarios (called 'suites' in this project). Stethoscope aims to fill that gap.

Suites are defined by:

  1. the client instances involved
  2. the rumor-driven scripts to run

and are defined in yaml, as seen here.

Suites can refer to specific scripts to run, such as this.

Single-client tests

This section will outline how to run the single-client tests in stethoscope.

Usage

Prereqs

Install:

Run locally

Clone the repo and install requirements:

$ git clone https://github.com/lsankar4033/stethoscope.git && cd stethoscope
...
$ pip install -r requirements.txt

Then, run a single test suite (in this case single_client_genesis:

$ ./steth.py -s single_client_genesis

Or run all tests:

$ ./steth.py

Tests

See here

Multi-client scenarios

TODO!

Contributions

Contributions extremely welcome! Especially in the realm of test scenarios to examine