Skip to content

Binary

Just download the artifact for your OS and start optimizing your validator maintenance periods. The example commands are based on calls on the linux binary (don't forget to make it executable).

Examples

  1. Print the help:

    ./eth-duties --help
    
  2. Print upcoming duties for two validators while connecting to a local beacon client:

    ./eth-duties \
    --validators <VALIDATOR_INDEX_1> <VALIDATOR_INDEX_2> \
    --beacon-node http://localhost:5052
    
  3. Print upcoming duties for multiple validators using different identifiers while connecting to a local beacon client:

    # You can mix up indices and pubkeys as you like
    # You can add the flag '--validators' multiple times
    ./eth-duties \
    --validators <VALIDATOR_INDEX_1> <VALIDATOR_INDEX_2> \
    --validators <VALIDATOR_PUBKEY_3> <VALIDATOR_INDEX_4> \
    --beacon-node http://localhost:5052
    
  4. Print upcoming duties for multiple validators using an alias for some of the provided validators while connecting to a local beacon client:

    # If you want to set an alias for a validator pubkey or index you need to separate the index/pubkey from the alias with an ';'
    # Furthermore you need to put the expression in quotes or double quotes
    ./eth-duties \
    --validators "<VALIDATOR_INDEX_1>;VALIDATOR_1" <VALIDATOR_INDEX_2> \
    --validators "<VALIDATOR_PUBKEY_3>;VALIDATOR_3" <VALIDATOR_INDEX_4> \
    --beacon-node http://localhost:5052
    
  5. Print upcoming duties for validators which indices/pubkeys are located in a file:

    # Mixing indices and pubkeys and/or adding aliases is also supported in files
    # Note that you do not need to put '<INDEX_OR_PUBKEY>;<ALIAS>' in quotes or double quotes in your validators file
    ./eth-duties \
    --validators-file <PATH_TO_VALIDATOR_FILE> \
    --beacon-node http://localhost:5052
    
  6. Print upcoming validator duties but omit attestation duties:

    # Note: If you provide more than 50 validators, attestation related logs are omitted by default
    # This can be changed with '--max-attestation-duty-logs'
    ./eth-duties \
    --validators-file <PATH_TO_VALIDATOR_FILE> \
    --beacon-node http://localhost:5052 \
    --omit-attestation-duties
    

Compatibility

OS Tested Works
MacOS 11 ✅ ✅
MacOS 12 ✅ ✅
Ubuntu 20.04 ✅ ✅
Ubuntu 22.04 ✅ ✅
Windows 7 ❌ ❓
Windows 10 ✅ ✅
Windows 11 ❌ ❓

I would love to get feedback from the community, especially for the missing OS I couldn't test.

Build on your own

You can build the binary/executable on your own. This will work out of the box if you installed all dev dependencies (see installation).

Note: Pyinstaller uses the OS where it runs on to build the respective artefact. So if you are on a windows machine you will build an executable of eth-duties.

As always you need to navigate to the root folder of this repository first. Make sure you are in the correct virtual environment where you installed the dependencies.

  1. Build Windows executable

    poetry run pyinstaller --clean --onefile --copy-metadata eth-typing --add-data config;config --name eth-duties .\duties\main.py
    
  2. Build Linux or MacOS binary

    poetry run pyinstaller --clean --onefile --copy-metadata eth-typing --add-data config:config --name eth-duties ./duties/main.py