esd is a process that watches for slashing events included on the Ethereum beacon chain and runs a script when found.
Binaries for the latest version of esd can be obtained from the releases page.
You can obtain the latest version of esd using docker with:
docker pull attestantio/esd
esd is a standard Go binary which can be installed with:
go get github.com/attestantio/esdesd supports all beacon nodes that support the beacon API.
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.
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.
Chris Berry: @bez625.
Contributions welcome. Please check out the issues.
Apache-2.0 © 2021 - 2023 Attestant Limited.