Skip to content

marcoh00/eth2sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to install & use

  • Clone Ethereum 2.0 repository at tag v1.0.1:
git clone https://github.com/ethereum/eth2.0-specs.git -b v1.0.1
  • Create a virtualenv or use pipenv to be able to install packages without polluting Python's global packages. E.g.:
cd eth2.0-specs
pipenv shell
  • Install dependencies:
pipenv install -e .
install_requires=[
    # ...
    "milagro_bls_binding==1.6.3",
    # ...
]
  • If neccessary, try to install the eth2.0-specs package again (see above)
  • Install graphviz package for graph creation:
pipenv install graphviz
  • Clone the simulator project into build/lib subdirectory:
mkdir build
git clone https://github.com/marcoh00/eth2sim.git build/lib
  • Extract the Ethereum 2.0 specification python code into the build/lib directory
python setup.py pyspec
python setup.py build_py
  • A new directory called eth2spec should show up inside build/lib.

  • If needed: Copy directories with configuration files like mainnet-minimized to configs.

  • Run simulator code, for example a minimal simulation:

cd build/lib
python run_official_sim.py 0

Simulations inside "Simulating an Ethereum 2.0 Beacon Chain Network" paper

Simulations conducted for the paper can be run using the run_official_sim.py script, too. They have the following numbers:

  • 10 (latency x2)
  • 11 (latency x8)
  • 12 (block slashing)
  • 13 (attester slashing)
  • 15 (time attack)
  • 16 (balancing attack)
  • 17 (based on measurements)

About

Ethereum 2.0 Beacon Chain Simulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published