This section assumes you've completed the previous tutorials which include more detailed description on how to setup and conigure the consensus clients. Further, this part will only walk you through the concepts and provide resources in case you'd like to try the setup yourself.
Validators have the following responsibilities:
- validating new blocks and making attestations
- proposing new blocks when selected at random from the validator pool
To disincentive misbehaviour, validators carry the risk of getting slashed (i.e. having ETH deducted from their deposit). Slashing is a mechanism built into blockchain protocols to discourage validator misbehavior and incentivize security, availability, and network participation.
Three ways of getting slashed:
- By proposing and signing two different blocks for the same slot
- By attesting to a block that "surrounds" another one (effectively changing history)
- By "double voting" by attesting to two candidates for the same block
Double signing occurs when a validator (private key) submits two signed messages for the same block. This can happen if a node operator or infrastructure provider optimizes their node configuration to prevent downtime by having a highly available backup entity running at the same time as a primary entity.
Further resources:
- Link to documentation on rewards & penalities
- Summary on slashing and other penalites
e.g. web3signer
- provides a slashing protection database which keeps track of each block and attestation signed by a validator.
- Execution client (e.g. Geth)
- Consensus client (e.g. Lighthouse/Teku/Prysm/Nimbus...) = Validator client + Beacon Node
- Remote Signer (e.g. web3signer) including a global slashing database
NOTE: Both Execution Client & Beacon Node can take a while to sync [..INSERT MORE INFO...]
- Setup global slashing database
- Start web3signer connecting to the global slashing database
- Configure lighthouse with web3signer & start client
- Configure teku with web3signer & start client