ESD

esd is a process that watches for slashing events included on the Ethereum beacon chain and runs a script when found.
Table of Contents
Install
Binaries
Binaries for the latest version of esd can be obtained from the releases page.
Docker
You can obtain the latest version of esd using docker with:
docker pull attestantio/esd
Source
esd is a standard Go binary which can be installed with:
go get github.com/attestantio/esd
Usage
Requirements to run esd
Beacon node
esd supports all beacon nodes that support the beacon API.
Configuring esd
The minimal requirements for esd are references to the beacon node, for example:
esd --eth2client.address=localhost:5051
Here, 'eth2client.address' is the address of a supported beacon client node (gRPC for Prysm, HTTP for Teku and Lighthouse).
To be useful, esd should be supplied with the names of scripts to run when slashings are detected. A configuration file containing this is shown below:
eth2client:
address: 'localhost:5051'
slashings:
attester-slashed-script: '/home/esd/scripts/attester-slashed.sh'
proposer-slashed-script: '/home/esd/scripts/proposer-slashed.sh'
These scripts are called when attester and proposer slashings are found on the beacon chain. The scripts are passed a single argument, which is the index of the validator for which the slashing has been obtained.
Testing esd scripts
Because slashing are relatively rare it can be hard to test the scripts. esd provides two startup options to help.
If esd is started with --test-scripts then it will run both supplied scripts with the validator index 12345, and then exit.
If esd is started with --test-block 23456 then it will process the supplied block and run scripts if slashings are found.
Maintainers
Chris Berry: @bez625.
Contribute
Contributions welcome. Please check out the issues.
License
Apache-2.0 © 2021 - 2023 Attestant Limited.