Add Prysm validator

One-page interactive guide to install Prysm client and configurate it for running on supported chain.

Disclaimer

This guide is for informational purposes only. The author nor website owner does not guarantee accuracy of the information in this guide and is not responsible for any damages or losses incurred by following the guide.

Prysm client can be used for staking on various supported chains. Client installation is always only one, used by services with an individual configuration (different service name, data path and ports in use).

Launch validator instance / validator(s)

  1. Do you want to create a new validation instance or extend exisiting instance for more validators?

    • Create a directory for validator instance data

      sudo mkdir -p /var/lib/prysm/vi1
    • Load keystores to /var/lib/prysm/vi1

      :
      sudo /usr/local/bin/validator accounts import --mainnet --keys-dir=$HOME/keystores/ddk_i1 --wallet-dir=/var/lib/prysm/vi1 
      Gnosis chain is not supported by Prysm client
      • Accept Terms of Use
      • Set a wallet password. This is different to the validator password you set during keys generation. Prysm will use this to decrypt the validator wallet. Back it up somewhere safe. You will need this later in this section and when configuring the validator.
      • Provide the validator keys password. This is the password you set when you created the keys during keys generation

      NOTE: If you have used different passwords for each of your validators you will get an error. Run the process multiple times, providing each of the different passwords until they are all imported. Use the accounts list command to verify.

    • Create a Wallet Password File

      Create a file to store the wallet password so the Prysm validator service can access the wallet without you having to supply the password.

      sudo nano /var/lib/prysm/vi1/password.txt

      Press CTRL + X then Y then ENTER to save and exit the config file.

    • Create a service user for the validator instance

      sudo useradd --system --no-create-home --shell /bin/false prysm-vi1
    • Set ownership of /var/lib/prysm/vi1 to validators-i1 user

      sudo chown -R prysm-vi1:prysm-vi1 /var/lib/prysm/vi1
    • Create configuration service file for prysm-vi1 service

      1. Open the configuration file

        sudo nano /etc/systemd/system/prysm-vi1.service
      2. Copy the configuration below into the file.

        [Unit]
        Description=Prysm Consensus Client VC (Mainnet)
        Wants=network-online.target
        After=network-online.target
        
        [Service]
        User=prysm-vi1
        Group=prysm-vi1
        Type=simple
        Restart=always
        RestartSec=5
        ExecStart=/usr/local/bin/validator \
          --datadir=/var/lib/prysm/vi1 \
          --wallet-dir=/var/lib/prysm/vi1 \
          --wallet-password-file=/var/lib/prysm/vi1/password.txt \
          --suggested-fee-recipient=0xXXXXXXXXXXXXXXXX \
          --graffiti="Nethermind+Prysm" \
          --accept-terms-of-use
        
        [Install]
        WantedBy=multi-user.target

        Gnosis chain is not supported

      3. Press CTRL + X then Y then ENTER to save and exit the config file.
    • Other configurations

      Nothing to do. You are ok.
      • Extend Staking manager clients.conf

        Insert prysm-vi1 into clients.conf file that is used by Staking Manager.
        sudo nano /usr/local/etc/staking/config/clients.conf
    • Stop running validator instance prysm-vi1

      sudo systemctl stop prysm-vi1
    • Extend /var/lib/prysm/vi1 for new keystores

      sudo /usr/local/bin/validator accounts import --mainnet --keys-dir=$HOME/keystores/ddk_i1 --wallet-dir=/var/lib/prysm/vi1 
      Gnosis chain is not supported by Prysm client
      • Accept Terms of Use
      • Set a wallet password. This is different to the validator password you set during keys generation. Prysm will use this to decrypt the validator wallet. Back it up somewhere safe. You will need this later in this section and when configuring the validator.
      • Provide the validator keys password. This is the password you set when you created the keys during keys generation

      NOTE: If you have used different passwords for each of your validators you will get an error. Run the process multiple times, providing each of the different passwords until they are all imported. Use the accounts list command to verify.

  2. Load processed changes to the system

    sudo systemctl daemon-reload
  3. Start the validator instance

    sudo systemctl start prysm-vi1
  4. Check the running validator instance

    systemctl status prysm-vi1
    journalctl -fu prysm-vi1
  5. Activate service to start automatically on OS startup

    $ sudo systemctl enable prysm-vi1