On-page actions for Prysm client
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).
One-page interactive complete guide to configurate and operate Prysm client.
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).
This will update the url links in the guide below.
cd ~/downloads && curl -LO https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-modern-linux-amd64
cd ~/downloads && curl -LO https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/validator-v5.2.0-linux-amd64
mv beacon-chain-v5.2.0-modern-linux-amd64 beacon-chain && mv validator-v5.2.0-linux-amd64 validator
chmod +x beacon-chain && chmod +x validator
/usr/local/bin
sudo cp ~/downloads/beacon-chain /usr/local/bin
sudo cp ~/downloads/validator /usr/local/bin
// Start all validator instances using Prysm clients on all chains
// sudo systemctl start prysmvalidator1
// sudo systemctl start prysmvalidator2
// sudo systemctl start prysmRocketpoolValidator
// sudo systemctl start prysmStakewiseValidator
// ...
// Start beaconchain clients using PrysmBeacon client on all chains
sudo systemctl start prysmbeacon
/usr/local/bin/staking.sh start consensus
Check the services status
/usr/local/bin/staking.sh check
journalctl -fu prysmbeacon.service
journalctl -f -u prysmvalidator.service -u prysmvalidator2.service
...
/usr/local/bin/staking.sh check consensus
/usr/local/bin/staking.sh monitor consensus
cd ~/downloads && rm beacon-chain && rm validator
sudo useradd --system --no-create-home --shell /bin/false prysmbeacon
sudo mkdir -p /var/lib/prysm/beacon
sudo chown -R prysmbeacon:prysmbeacon /var/lib/prysm/beacon
Each service on the server needs a custom port for communication. Through ports, consensus client communicates with other peers in the network as well as other services running on the server, such as validator clients. There is an IPv4 and IPv6 variant, depending on the ISP support / preference. Each protocol version needs custom port. If you are not sure what to select, continue with default IPv4 port.
9000
ss -tuln | grep ':9000'
If it returns empty response, the port 9000
is free and can be used.
$ sudo ufw allow 9000
sudo ufw status numbered
9000 (V6)
and
remove it with the following line
sudo ufw delete <Number>
9001
ss -tuln | grep ':9001'
If it returns empty response, the port 9001
is free and can be used.
5052
ss -tuln | grep ':5052'
If it returns empty response, the port 5052
is free and can be used.
9090
ss -tuln | grep ':9090'
If it returns empty response, the port 9090
is free and can be used.
$ sudo ufw allow 9090
sudo ufw status numbered
9090
and
remove it with the following line
sudo ufw delete <Number>
9091
ss -tuln | grep ':9091'
If it returns empty response, the port 9091
is free and can be used.
Open PrysmBeacon configuration file
sudo nano /etc/systemd/system/prysmbeacon.service
Copy configuration
[Unit]
Description=Prysm Consensus Client BN (Mainnet)
Wants=network-online.target
After=network-online.target
[Service]
User=prysmbeacon
Group=prysmbeacon
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/beacon-chain \
--mainnet \
--datadir=/var/lib/prysm/beacon \
--execution-endpoint=http://127.0.0.1:8551 \
--jwt-secret=/var/lib/jwtsecret/ethereum.hex \
--suggested-fee-recipient=FeeRecipientAddress \
--checkpoint-sync-url=CheckpointSyncURL \
--genesis-beacon-api-url=CheckpointSyncURL \
--accept-terms-of-use
[Install]
WantedBy=multi-user.target
NOTE: Be sure to set the FeeRecipientAddress above to a valid Ethereum address within your control to receive the validator fees. For example: --suggested-fee-recipient=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
NOTE: Be sure to set the CheckpointSyncURL above (both occurrences) to a valid checkpoint sync URL. --checkpoint-sync-url
and --genesis-beacon-api-url
Enables the Checkpoint Sync feature to greatly speed up the Beacon Chain Node sync. More information here. Provide a URL to a synced Beacon Chain Node for the sync. You can get one here.
jwt-secret-file
, if you use different
CTRL
+ X
then Y
then ENTER
to save and exit the config
file.
sudo systemctl daemon-reload
sudo systemctl start prysmbeacon
systemctl status prysmbeacon
journalctl -fu prysmbeacon
sudo systemctl enable prysmbeacon
sudo nano /usr/local/bin/delayed-start.sh
Configurate service start inside it
systemctl start prysmbeacon.service
delayed-start.service
service controlling delayed-start.sh
is enabled for auto start with system startup
sudo systemctl enable delayed-start.service
sudo nano /usr/local/etc/staking/config/clients.conf
If the file is empty, generate it with command sudo /usr/local/bin/staking.sh init
beaconServices="prysmbeacon.service"
sudo nano /usr/local/bin/delayed-start.sh
/usr/local/bin/staking.sh start beacon
sudo systemctl enable delayed-start.service
Do you want to create a new validation instance or extend exisiting instance for more validators?
sudo mkdir -p /var/lib/prysm/vi1
/var/lib/prysm/vi1
sudo /usr/local/bin/validator accounts import --mainnet --keys-dir=$HOME/keystores/ddk_i1 --wallet-dir=/var/lib/prysm/vi1
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 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.
sudo useradd --system --no-create-home --shell /bin/false prysm-vi1
/var/lib/prysm/vi1
to validators-i1
usersudo chown -R prysm-vi1:prysm-vi1 /var/lib/prysm/vi1
prysm-vi1
serviceOpen the configuration file
sudo nano /etc/systemd/system/prysm-vi1.service
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
CTRL
+ X
then Y
then ENTER
to save and exit the config file.
prysm-vi1
into clients.conf file that is used by Staking Manager.
sudo nano /usr/local/etc/staking/config/clients.conf
prysm-vi1
sudo systemctl stop prysm-vi1
/var/lib/prysm/vi1
for new keystoressudo /usr/local/bin/validator accounts import --mainnet --keys-dir=$HOME/keystores/ddk_i1 --wallet-dir=/var/lib/prysm/vi1
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.
sudo systemctl daemon-reload
sudo systemctl start prysm-vi1
systemctl status prysm-vi1
journalctl -fu prysm-vi1
$ sudo systemctl enable prysm-vi1
prysmctl validator exit --wallet-dir=<path/to/wallet> --beacon-rpc-provider=<127.0.0.1:4000>
See more at official documentation, if needed.
cd /usr/local/bin
Beacon chain: ./beacon-chain --version
Validator: ./validator --version
This will update the url links in the guide below.
cd ~/downloads && curl -LO https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-modern-linux-amd64
cd ~/downloads && curl -LO https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/validator-v5.2.0-linux-amd64
mv beacon-chain-v5.2.0-modern-linux-amd64 beacon-chain && mv validator-v5.2.0-linux-amd64 validator
chmod +x beacon-chain && chmod +x validator
You can time this based on validator duties either from validator instances log(s) or for Ethereum also from sources such as WenMerge.com or ETHStakers.
// Stop all validator instances using Prysm clients on all chains
// sudo systemctl stop prysmvalidator1
// sudo systemctl stop prysmvalidator2
// sudo systemctl stop prysmRocketpoolValidator
// sudo systemctl stop prysmStakewiseValidator
// ...
// Stop beaconchain clients using PrysmBeacon client on all chains
sudo systemctl stop prysmbeacon
/usr/local/bin/staking.sh stop consensus
Check the services
/usr/local/bin/staking.sh check
/usr/local/bin
sudo cp ~/downloads/beacon-chain /usr/local/bin
sudo cp ~/downloads/validator /usr/local/bin
// Start all validator instances using Prysm clients on all chains
// sudo systemctl start prysmvalidator1
// sudo systemctl start prysmvalidator2
// sudo systemctl start prysmRocketpoolValidator
// sudo systemctl start prysmStakewiseValidator
// ...
// Start beaconchain clients using PrysmBeacon client on all chains
sudo systemctl start prysmbeacon
/usr/local/bin/staking.sh start consensus
Check the services status
/usr/local/bin/staking.sh check
journalctl -fu prysmbeacon.service
journalctl -f -u prysmvalidator.service -u prysmvalidator2.service
...
/usr/local/bin/staking.sh check consensus
/usr/local/bin/staking.sh monitor consensus
cd ~/downloads && rm beacon-chain && rm validator