๐พ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
| Starts the validator node |
| Name of the chain Lighthouse will sync and follow
|
| Used to specify a custom root data directory for lighthouse keys and databases |
| Specify your custom graffiti to be included in blocks |
| Set to a monitoring service e.g. https://beaconcha.in |
| Protects from the chance of two instances of the validator starting on the same system https://lighthouse-book.sigmaprime.io/validator-doppelganger.html 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 |
| Enable the Prometheus metrics HTTP server
|
| The fallback address provided to the |
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