🦏
ETH Home Staking Collection
DVT Home Staking Curriculum
DVT Home Staking Curriculum
  • The DVT Home Staking Curriculum
  • Curriculum breakdown & timeline
  • Understanding ETH validators
    • Introduction to ETH Validators
    • Roles & Responsibilities of a node operator
    • Rewards and penalties
    • Importance of client diversity
    • Distributed Validator Technologies (DVTs)
    • Economics of using DVTs (WIP)
      • Diva Staking (WIP)
      • Obol (WIP)
      • SSV (WIP)
    • Bonded Validators
    • Economics of bonded validators (WIP)
  • Hardware & systems setup
    • Setup Overview
    • Hardware & system requirements
    • Procuring your hardware
    • Assemble your hardware
    • Practicing for free on Cloud VMs
      • Google Cloud
      • Alibaba Cloud
  • Linux OS, Networking, & Security
    • Install and prepare the OS
    • Networking & network security
    • Device level security setup
    • Verifying checksums
  • Installing & configuring your EL+CL clients
    • Set up and configure execution layer client
      • Nethermind
      • Besu
      • Geth
      • Erigon
      • Reth
    • Set up and configure consensus layer client
      • Teku BN
      • Nimbus BN
      • Lodestar BN
      • Lighthouse BN
      • Prysm BN
  • Keystore generation & MEV-Boost
    • Validator key generation
    • Set up and configure MEV-boost
  • Native Solo Staking Setup
    • Validator client setup
      • Teku VC
      • Nimbus VC
      • Lodestar VC
      • Lighthouse VC
      • Prysm VC
    • Depositing 32 ETH into your validator
    • Exiting your validator
  • Monitoring, Maintenance, and Updates
    • Set up monitoring suite
      • Installing & configuring Prometheus
      • Installing & configuring Node Exporter
      • Installing & configuring Grafana
      • Beaconcha.in App API
      • Client Uptime Check
    • Maintenance & Updates
      • Nethermind
      • Besu
      • Teku
      • Nimbus
      • Lodestar
      • Updating the monitoring suite
      • Preparing for Pectra
  • DVT Setup
    • Diva Staking
      • Diva Staking client setup
        • Default - All-in-one setup
        • Advanced - with standalone Lodestar VC
      • Registering your Diva node
      • Updating your Diva client
      • Monitoring your Diva Node
    • Obol
      • Techne Bronze Speedrun (Launchpad)
      • Obol + Bonded Validators (Techne Silver)
        • Obol + Lido CSM
    • SSV
      • SSV + Lido CSM (WIP)
      • SSV Operator
      • SSV Staker
  • Bonded Validators Setup
    • Lido CSM
      • Generating CSM keystores
      • Set Fee Recipient Address
        • Method 1: Configure on validator keys
        • Method 2: Configure on separate validator client
        • Verifying Fee Recipient Registered on MEV Relays
      • Upload/Remove/View validator keys
      • Rewards & bonds
      • Exiting CSM validators
        • "Lazy" exits (TESTNET ONLY)
        • Proper Exits
      • Role/Address management
      • Monitoring
      • Automations
        • CSM with ETHPillar
        • CSM with ETH Docker
        • CSM with Dappnode
    • Puffer
      • Non-Enclave: 2 ETH
    • Ether.fi
      • Receive distributed validator keyshares
    • Stader (WIP)
    • Rocketpool (WIP)
  • Liquid Staking Vaults
    • Stakewise V3
  • Mainnet
    • Mainnet Deployment
    • Heroglpyhs (WIP)
  • Best practices
    • Slashing prevention
    • Maximising uptime and performance
    • Optimising security
    • Managing your withdrawal wallet
  • Tips
    • Advanced networking
    • Downloading files from your node
  • Useful resources
    • General resources
    • Holesky Faucets
  • Automation/tools
    • ETHPillar
    • ETH Docker
    • Automated power on/off
      • Wake-on-LAN (WoL)
      • Network UPS Tools (NUT)
    • Validator Healthcheck Alerts
  • Solo Stakers Guild
    • Lido CSM+SSV+Obol (Testnet)
Powered by GitBook
On this page
  • Download Prysm
  • Create a new user account
  • Prepare the validator data directory
  • Configure the validator client service
  • Start the Prysm Validator Client service
  • Remove duplicates of validator keystores
  • Resources
  1. Native Solo Staking Setup
  2. Validator client setup

Prysm VC

PreviousLighthouse VCNextDepositing 32 ETH into your validator

Last updated 6 months ago

The Prysm validator client only works with a Prysm Consensus Client.

Download Prysm

the latest version of the Prysm validator client.

cd
curl -LO https://github.com/prysmaticlabs/prysm/releases/download/v5.1.2/validator-v5.1.2-linux-amd64
curl -LO https://github.com/prysmaticlabs/prysm/releases/download/v5.1.2/validator-v5.1.2-linux-amd64.sha256

Run the checksum verification process.

sha256sum --check validator-v5.1.2-linux-amd64.sha256

Each downloadable file comes with it's own checksum. Replace the actual checksum and URL of the download link in the code block above.

Make sure to choose the amd64 version. Right click on the linked text and select "copy link address" to get the URL of the download link to curl.

Expected output: Verify output of the checksum verification.

validator-v5.1.2-linux-amd64: OK

If checksum is verified, extract the files and move them into the (/usr/local/bin) directory for neatness and best practice. Then, clean up the duplicated copies.

mv validator-v5.1.2-linux-amd64 prysmvalidator #rename the binary file for easy reference
chmod +x prysmvalidator
sudo cp prysmvalidator /usr/local/bin
rm -r prysmvalidator validator-v5.1.2-linux-amd64.sha256

Create a new user account

sudo useradd --no-create-home --shell /bin/false prysmvalidator

Prepare the validator data directory

1) Create a new folders to store the validator client data, validator keystore, and the validator keystore password

sudo mkdir -p /var/lib/prysm_validator

2) Run the validator key import process.

sudo /usr/local/bin/prysmvalidator accounts import --keys-dir=$HOME/validator_keys --wallet-dir=/var/lib/prysm_validator --holesky

Note: You will be prompted to accept the terms of use, create a new password for the Prysm wallet, and enter the password of your validator keystore.

Expected output:

3) Create a plain text password file for the Prysm wallet

sudo nano /var/lib/prysm_validator/password.txt

Enter the password you set during the validator keystore import process. Then, save + exit with CTRL+O, ENTER, CTRL+C.

4) Change the owner of this new folder to the prysmvalidator user

5) Restrict permissions on this new folder such that only the owner is able to read, write, and execute files in this folder

sudo chown -R prysmvalidator:prysmvalidator /var/lib/prysm_validator
sudo chmod 700 /var/lib/prysm_validator

Configure the validator client service

Create a systemd configuration file for the Lighthouse Validator Client service to run in the background.

sudo nano /etc/systemd/system/prysmvalidator.service

Paste the configuration parameters below into the file:

[Unit]
Description=Prysm Validator Client (Holesky)
Wants=network-online.target
After=network-online.target

[Service]
User=prysmvalidator
Group=prysmvalidator
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/prysmvalidator \
  --accept-terms-of-use \
  --holesky \
  --datadir=/var/lib/prysm_validator \
  --enable-builder \
  --beacon-rpc-provider=<Internal_IP_address>:4000 \
  --beacon-rpc-gateway-provider=<Internal_IP_address>:5052 \
  --wallet-dir=/var/lib/prysm_validator \
  --wallet-password-file=/var/lib/prysm_validator/password.txt \
  --monitoring-port=8108 \
  --suggested-fee-recipient=<your_designated_ETH_wallet address> \
  --graffiti="<your_graffiti>" \
  --enable-doppelganger

[Install]
WantedBy=multi-user.target

Once you're done, save with Ctrl+O and Enter, then exit with Ctrl+X. Understand and review your configuration summary below, and amend if needed.

Lighthouse Validator Client configuration summary:

  1. --accept-terms-of-use: Accept the terms and conditions.

  2. --holesky: Run the validator client on the Holesky testnet

  3. --datadir: Specify the directory for Lighthouse to store the validator info

  4. --enable-builder: Required when using external builders to build blocks (e.g. MEV relays)

  5. --wallet-dir: Path to a wallet directory on-disk for Prysm validator accounts

  6. --wallet-password-file: Path to a plain-text, .txt file containing your wallet password

  7. --monitoring-port: Set the port for retrieving metrics

  8. --suggested-fee-recipient: ETH wallet address to receive rewards from block proposals and MEV bribes

  9. --graffiti: Optional text to display on-chain when your validator proposes a block

  10. --enable-doppelganger: Helps prevents slashing due to double signing by checking if your validator keys are already active on the network. Not a fool-proof solution.

Start the Prysm Validator Client service

Reload the systemd daemon to register the changes made, start the Prysm Validator Client, and check its status to make sure its running.

sudo systemctl daemon-reload
sudo systemctl start prysmvalidator.service
sudo systemctl status prysmvalidator.service

The output should say the Prysm Validator Client is “active (running)”. Press CTRL-C to exit and the Prysm Validator Client will continue to run.

Use the following command to check the logs for any warnings or errors:

sudo journalctl -fu prysmvalidator -o cat | ccze -A

Expected output:

You will see some warnings if your beacon node (consensus client) is not yet synced.

Press CTRL-C to exit.

If the Prysm Validator Client service is running smoothly, we can now enable it to fire up automatically when rebooting the system.

sudo systemctl enable prysmvalidator

Expected output:

Created symlink /etc/systemd/system/multi-user.target.wants/prysmvalidator.service → /etc/systemd/system/prysmvalidator.service.

Remove duplicates of validator keystores

To prevent configuration mistakes leading to double signing in the future, remove duplicate copies of the validator signing keystores once everything is running smoothly.

sudo rm -r ~/validator_keys

Resources

--beacon-rpc-provider/beacon-rpc-gateway-provider: URLs to connect to the main and backup Prysm consensus clients if any. This needs to be the same IP address set in your Prysm consensus client. Refer back if you don't remember it. Use multiple comma-separated endpoints here to configure fallback beacon nodes for your validator.

Releases:

Documentation:

Discord:

Download
here
https://github.com/prysmaticlabs/prysm/releases
https://docs.prylabs.network/docs/getting-started
https://discord.gg/prysmaticlabs