7.1 Slasher Configuration
Running a slasher service helps monitor and report malicious validator behavior, contributing to the overall health and security of the network. This guide explains how to enable or disable the slasher for regular nodes and validators.
Further details can be found on the Slashing and Panelties and Slasher Service pages in the 🧠Theory section.
The following steps are performed on your 📟 node server.
1. Stop Node Operation​
Depending on your setup method, there are different ways to stop your node before applying updates.
- LUKSO CLI
- Service Automation
cd <lukso-working-directory>
lukso stop
Exchange <lukso-working-directory>
with the path of the node folder.
sudo systemctl stop lukso-validator
Force Client Shutdown
- Geth
- Erigon
- Nethermind
- Besu
- Teku
- Nimbus-Eth2
- Lighthouse
- Prysm
sudo pkill geth
sudo pkill erigon
sudo pkill nethermind
sudo pkill besu
sudo pkill teku
sudo pkill nimbus_beacon_node
sudo pkill nimbus_validator_client
sudo pkill lighthouse
The Lighthouse client uses a single binary for both the consensus and validator processes.
sudo pkill prysm
sudo pkill validator
2. Configure Slasher Service​
If you are running a validator node using the LUKSO CLI setup, the slasher is activated by default to increase watchers for malicious events during network downtimes of bigger services. For regular nodes or custom setups, the slasher service is disabled.
If you are runnning on lower end hardware or prefer to safe disk space, you can disable it. Regular nodes can use the similar process to activate the additional service without participating in the consensus.
The Teku and Nimbus-Eth2 clients do not have separate slasher services that create a database and keep track of the historical misbehaviours. Instead, they only come with validator precautions such as slashing-protection
or doppelganger-detection
that check against their own keys before committing validator duties.
- Disable Slasher for Validator Node
- Activate Slasher for Regular Node
Depending on your setup method, there are different ways to start your staking node without the slasher service.
- LUKSO CLI
- Service Automation
cd <lukso-working-directory>
# Start Mainnet Validator without Slasher
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync -no-slasher
# Start Testnet Validator without Slasher
lukso start --testnet --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync -no-slasher
The following properties need to be exchanged:
<lukso-working-directory>
with the path of the node folder<your-fee-recipient-address>
with the wallet address receiving staking profits
Open the startup script within your node directory with your preferred text editor.
- Vim
- Nano
sudo vim <lukso-working-directory>/static/lukso_startup.sh
sudo nano <lukso-working-directory>/static/lukso_startup.sh
Exchange <lukso-working-directory>
with the path to the node folder.
Add the flag to disable the slasher service as a new line to the start command, then save and exit the file.
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--no-slasher
After the startup script was updated, you can restart the node by executing the related service.
sudo systemctl start lukso-validator
Depending on your setup method, there are different ways to start your regular node with the slasher service flags. The custom flags provided during startup will be passed down from the LUKSO CLI to the consensus clients.
- LUKSO CLI
- Service Automation
cd <lukso-working-directory>
Exchange <lukso-working-directory>
with the path to the node folder.
- Lighthouse
- Prysm
# Start Mainnet Slasher Node
lukso start --checkpoint-sync --lighthouse-slasher
# Start Testnet Slasher Node
lukso start --testnet --checkpoint-sync --lighthouse-slasher
# Start Mainnet Slasher Node
lukso start --checkpoint-sync --prysm-slasher
# Start Testnet Slasher Node
lukso start --testnet --checkpoint-sync --prysm-slasher
Open the startup script within your node directory with your preferred text editor.
- Vim
- Nano
cd <lukso-working-directory>/static
vim lukso_startup.sh
cd <lukso-working-directory>/static
nano lukso_startup.sh
Exchange <lukso-working-directory>
with the path to the node folder.
Add the flag to activate the slasher service as a new line to the start command, then save and exit the file.
- Lighthouse
- Prysm
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--lighthouse-slasher
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--prysm-slasher
After the startup script was updated, you can restart the node by executing the related service.
sudo systemctl start lukso-validator
After the clients were started, verify that their services are still up.
sudo lukso status
4. Remove Slasher Data​
If you previously ran a slasher service, you can delete the unused database from your node directory and free storage space.
cd <lukso-working-directory>
# Remove Slasher Database for Mainnet Node
rm -rf /mainnet-data/consensus/beaconchaindata/slasher.db
# Remove Slasher Database for Testnet Node
rm -rf /testnet-data/consensus/beaconchaindata/slasher.db
Exchange <lukso-working-directory>
with the path to the node folder.
🎨 DAppNode​
On a DAppNode setup, the Prysm client can be adjusted from the user interface.
1. Stop Node Operation: Stop the execution and consensus client within the Node Operation View.
2. Navigate to Staker Menu: Open the LUKSO Stakers menu and move into the Lukso Prysm Package.
3. Adjust Slasher Value: Navigate to the Configs window and add the slasher flag in the EXTRA_OPTS field.
- Disable Slasher for Validator Node
- Activate Slasher for Regular Node
--no-slasher
--slasher
4. Restart the Node: Restart the execution and consensus client within the Node Operation View.