Installation
Lighthouse Validator client installation guide.
Create Aliases
echo "alias lighthouse-validator-log='journalctl -f -u lighthousevalidator.service -o cat | ccze -A'" >> ~/.bashrc
echo "alias lighthouse-validator-start='sudo systemctl start lighthousevalidator.service'" >> ~/.bashrc
echo "alias lighthouse-validator-stop='sudo systemctl stop lighthousevalidator.service'" >> ~/.bashrc
echo "alias lighthouse-validator-restart='sudo systemctl restart lighthousevalidator.service'" >> ~/.bashrc
echo "alias lighthouse-validator-status='sudo systemctl status lighthousevalidator.service'" >> ~/.bashrc
echo "alias lighthouse-validator-config='sudo vim /etc/systemd/system/lighthousevalidator.service'" >> ~/.bashrc
echo "alias lighthouse-validator-enable='sudo systemctl enable lighthousevalidator.service'" >> ~/.bashrc
echo "alias lighthouse-validator-disable='sudo systemctl disable lighthousevalidator.service'" >> ~/.bashrc
source ~/.bashrc
Lighthouse VC - Configure Service
Create lighthousevalidator
user and set permissions.
sudo useradd --no-create-home --shell /bin/false lighthousevalidator
sudo mkdir -p /var/lib/lighthouse/validators
sudo chown -R lighthousevalidator:lighthousevalidator /var/lib/lighthouse/validators
# <THIS IS NEEDED SO THE VALIDATOR CAN IMPORT THE KEYSTORES>
sudo chmod 700 /var/lib/lighthouse/validators
Configure lighthousevalidator
service using the command line flags.
sudo vim /etc/systemd/system/lighthousevalidator.service
[Unit]
Description=Lighthouse Ethereum Client - Validator Client
After=network-online.target
Wants=network-online.target
[Service]
User=lighthousevalidator
Group=lighthousevalidator
Type=simple
Restart=always
RestartSec=5
Environment=NETWORK= # E.g. mainnet or holesky
Environment=DATADIR= # Default: /var/lib/lighthouse
Environment=GRAFFITI= # E.g. For the merge!
Environment=METRICS_PORT= # Default: 5064
Environment=MONITORING_ENDPOINTS=
Environment=SUGGESTED_FEE_RECIPIENT=
Environment=BEACON_NODES=
ExecStart=/usr/local/bin/lighthouse vc \
--network ${NETWORK} \
--datadir ${DATADIR} \
--graffiti ${GRAFFITI} \
--metrics \
--metrics-port ${METRICS_PORT} \
--monitoring-endpoint ${MONITORING_ENDPOINTS} \
--enable-doppelganger-protection \
--suggested-fee-recipient ${SUGGESTED_FEE_RECIPIENT} \
--builder-proposals \
--beacon-nodes ${BEACON_NODES}
[Install]
WantedBy=multi-user.target
/usr/local/bin/lighthouse vc
Starts the validator node
--network
Name of the chain Lighthouse will sync and follow
Possible values:
mainnet
prater
gnosis
kiln
ropsten
--datadir
Used to specify a custom root data directory for lighthouse keys and databases
--graffiti
Specify your custom graffiti to be included in blocks
--monitoring-endpoint
--enable-doppelganger-protection
Protects from the chance of two instances of the validator starting on the same system
Not perfect, and does have a penalty of waiting for 2-3 epochs (approx. 6.4 minutes per epoch)
It's a bit annoying to miss a few attestations, and would be very sad to miss a block, but the chance of me being a block proposer during that downtime is very low, and the benefits of not getting slashed are much greater
--metrics
Enable the Prometheus metrics HTTP server
Disabled by default
--suggested-fee-recipient
The fallback address provided to the Beacon Node
if nothing suitable is found in the validator definitions or fee recipient file
Start the service and check it's working as expected.
Command Aliases
daemon-reload # Reload any changes made to the lighthousevalidator.service
lighthouse-validator-enable # Enable the lighthousevalidator.service
lighthouse-validator-start # Start the lighthousevalidator.service
lighthouse-validator-status # View the status of the lighthousevalidator.service
lighthouse-validator-log # View the lighthousevalidator.service logs
At this point, the lighthousevalidator.service
is running with no keystores.
So it will just show a message saying something like No validators present
which is fine.
Last updated