NodeBridgeAfrica
  • 😌Home
  • About Us
  • 🔔Community Code of Conduct
  • 🚀Support Nodebridge Africa
  • 🚫Disclaimer
  • Understanding Blockchain
  • Consensus Mechanism in Blockchain
  • Understanding Staking and Node
  • Node Operator vs. Validator: Understanding the Differences
    • Node Operator and Validator
    • Roles & Responsibilities of an Ethereum node operator
    • Skillset Required
    • Understanding the Ethereum Validator Process
  • Rewards and Penalties for Ethereum Validators
  • Client Diversity
  • Bonded Validators
  • Node Setup and Configuration Guide
  • Hardware & System Requirements
    • Initial Setup
      • Hardware Requirements
      • Internet Requirement
      • Configure time sync
    • Practicing on Cloud VMs
    • Install and prepare the OS
    • Node Security: Root, Networking & Network Security
    • Advanced networking
  • Introduction to ETH Validators
  • NodeBridge Africa Community
    • Setting Up an Ethereum Validator Node In Africa
  • Staking Guide
    • Ethereum Staking Guide
      • Ethereum Guide
        • Guide: How to Setup a validator on Holesky Testnet
          • Overview - Manual Installation
          • Step 1: Prerequisites
          • Step 2: Configuring Node
          • Step 3: Installing execution client
            • Besu
            • Erigon
            • Geth
            • Nethermind
            • Reth
          • Step 4: Installing consensus client
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Step 5: Installing Validator
            • Installing Validator
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Setting up Validator Keys
            • Next Steps
          • Maintenance
            • Updating Execution Client
            • Updating Consensus Client
            • Uninstalling Staking Node
            • Backups Checklist: Critical Staking Node Data
        • Guide | How to setup a validator for Ethereum staking on mainnet
          • Overview - Manual Installation
          • PART I - INSTALLATION
          • PART I - INSTALLATION
            • Step 1: Prerequisites
            • Step 2: Configuring Node
            • Step 3: Installing execution client
              • Besu
              • Erigon
              • Geth
              • Nethermind
              • Reth
            • Step 4: Installing consensus client
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Step 5: Installing Validator
              • Installing Validator
                • Lighthouse
                • Lodestar
                • Nimbus
                • Prysm
                • Teku
              • Setting up Validator Keys
              • Next Steps
            • Synchronizing time with Chrony
            • Monitoring with Uptime Check by Google Cloud
            • Mobile App Node Monitoring by beaconcha.in
            • Monitoring your validator with Grafana and Prometheus
            • Security Best Practices for your ETH staking validator node
          • PART II - MAINTENANCE
          • PART II - MAINTENANCE
            • Updating Consensus Client
            • Updating Execution Client
            • Finding the longest attestation slot gap
            • Backups Checklist: Critical Staking Node Data
            • Checking my eth validator's sync committee duties
            • Checklist | Confirming a healthy functional ETH staking node
            • Uninstalling Staking Node
          • PART III - TIPS
          • PART III - TIPS
            • Voluntary Exiting a Validator
            • Verifying Your Mnemonic Phrase
            • Adding a New Validator to an Existing Setup with Existing Seed Words
            • How to re-sync using checkpoint sync
            • Dealing with Storage Issues on the Execution Client
            • Disk Usage by Execution / Consensus Client
            • EIP2333 Key Generator by iancoleman.io
            • Geth - Enabling path-based state storage
            • Important Directory Locations
            • Improving Validator Attestation Effectiveness
            • Reducing Network Bandwidth Usage
            • Running a slasher
            • Setting up dynamic DNS (DDNS)
            • Switching / Migrating Execution Client
            • Switching / Migrating Consensus Client
            • Using All Available LVM Disk Space
            • Using Node as RPC URL endpoint
        • Guide: How to stake on ETH 2.0 Altona Testnet with Lighthouse on Ubuntu
        • Guide | How to setup a validator on ETH2 mainnet
        • Guide | MEV-boost for Ethereum Staking
          • MEV Relay List
        • Security Best Practices for your ETH staking validator node
        • Guide | Recover Ethereum Validator Mnemonic Seed
        • Update Withdrawal Keys for Ethereum Validator (BLS to Execution Change or 0x00 to 0x01) with ETHDO
        • Downloading files from your node
      • TIPS
    • Gnosis Staking Guide
      • Guide: How to Setup a validator on Chiado Testnet
        • Overview - Manual Installation
        • Step 1: Prerequisites
        • Step 2: Configuring Node
        • Step 3: Installing execution client
          • Besu
          • Erigon
          • Geth
          • Nethermind
          • Reth
        • Step 4: Installing consensus client
          • Lighthouse
          • Lodestar
          • Nimbus
          • Teku
        • Step 5: Installing Validator
          • Installing Validator
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Setting up Validator Keys
          • Next Steps
        • Maintenance
          • Updating Execution Client
          • Updating Consensus Client
          • Uninstalling Staking Node
          • Backups Checklist: Critical Staking Node Data
      • Guide | How to setup a validator for Gnosis staking on mainnet
        • Overview - Manual Installation
        • PART I - INSTALLATION
        • PART I - INSTALLATION
          • Step 1: Prerequisites
          • Step 2: Configuring Node
          • Step 3: Installing execution client
            • Besu
            • Erigon
            • Geth
            • Nethermind
            • Reth
          • Step 4: Installing consensus client
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Step 5: Installing Validator
            • Installing Validator
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Setting up Validator Keys
            • Next Steps
          • Synchronizing time with Chrony
          • Monitoring with Uptime Check by Google Cloud
          • Mobile App Node Monitoring by beaconcha.in
          • Monitoring your validator with Grafana and Prometheus
          • Security Best Practices for your ETH staking validator node
        • PART II - MAINTENANCE
        • PART II - MAINTENANCE
          • Updating Consensus Client
          • Updating Execution Client
          • Finding the longest attestation slot gap
          • Backups Checklist: Critical Staking Node Data
          • Checking my eth validator's sync committee duties
          • Checklist | Confirming a healthy functional ETH staking node
          • Uninstalling Staking Node
        • PART III - TIPS
        • PART III - TIPS
          • Voluntary Exiting a Validator
          • Verifying Your Mnemonic Phrase
          • Adding a New Validator to an Existing Setup with Existing Seed Words
          • How to re-sync using checkpoint sync
          • Dealing with Storage Issues on the Execution Client
          • Disk Usage by Execution / Consensus Client
          • EIP2333 Key Generator by iancoleman.io
          • Geth - Enabling path-based state storage
          • Important Directory Locations
          • Improving Validator Attestation Effectiveness
          • Reducing Network Bandwidth Usage
          • Running a slasher
          • Setting up dynamic DNS (DDNS)
          • Switching / Migrating Execution Client
          • Switching / Migrating Consensus Client
          • Using All Available LVM Disk Space
          • Using Node as RPC URL endpoint
      • Security Best Practices for your ETH staking validator node
    • Lido Community Staking Module(CSM) and Obol DVT Guide
      • Guide: How to Setup a validator on Chiado Testnet
        • Overview - Manual Installation
        • Step 1: Prerequisites
        • Step 2: Configuring Node
        • Step 3: Installing execution client
          • Besu
          • Erigon
          • Geth
          • Nethermind
          • Reth
        • Step 4: Installing consensus client
          • Lighthouse
          • Lodestar
          • Nimbus
          • Teku
        • Step 5: Installing Validator
          • Installing Validator
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Setting up Validator Keys
          • Next Steps
        • Maintenance
          • Updating Execution Client
          • Updating Consensus Client
          • Uninstalling Staking Node
          • Backups Checklist: Critical Staking Node Data
      • Guide | How to setup a validator for Gnosis staking on mainnet
        • Overview - Manual Installation
        • PART I - INSTALLATION
        • PART I - INSTALLATION
          • Step 1: Prerequisites
          • Step 2: Configuring Node
          • Step 3: Installing execution client
            • Besu
            • Erigon
            • Geth
            • Nethermind
            • Reth
          • Step 4: Installing consensus client
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Step 5: Installing Validator
            • Installing Validator
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Setting up Validator Keys
            • Next Steps
          • Synchronizing time with Chrony
          • Monitoring with Uptime Check by Google Cloud
          • Mobile App Node Monitoring by beaconcha.in
          • Monitoring your validator with Grafana and Prometheus
          • Security Best Practices for your ETH staking validator node
        • PART II - MAINTENANCE
        • PART II - MAINTENANCE
          • Updating Consensus Client
          • Updating Execution Client
          • Finding the longest attestation slot gap
          • Backups Checklist: Critical Staking Node Data
          • Checking my eth validator's sync committee duties
          • Checklist | Confirming a healthy functional ETH staking node
          • Uninstalling Staking Node
        • PART III - TIPS
        • PART III - TIPS
          • Voluntary Exiting a Validator
          • Verifying Your Mnemonic Phrase
          • Adding a New Validator to an Existing Setup with Existing Seed Words
          • How to re-sync using checkpoint sync
          • Dealing with Storage Issues on the Execution Client
          • Disk Usage by Execution / Consensus Client
          • EIP2333 Key Generator by iancoleman.io
          • Geth - Enabling path-based state storage
          • Important Directory Locations
          • Improving Validator Attestation Effectiveness
          • Reducing Network Bandwidth Usage
          • Running a slasher
          • Setting up dynamic DNS (DDNS)
          • Switching / Migrating Execution Client
          • Switching / Migrating Consensus Client
          • Using All Available LVM Disk Space
          • Using Node as RPC URL endpoint
      • Security Best Practices for your ETH staking validator node
  • Introduction to SSV.Network
  • Awesome Resources
Powered by GitBook
On this page
  • Overview
  • 1. Initial configuration
  • 2. Install Binaries
  • 3. Setup and configure systemd
  • 4. Helpful consensus client commands
  1. Staking Guide
  2. Lido Community Staking Module(CSM) and Obol DVT Guide
  3. Guide | How to setup a validator for Gnosis staking on mainnet
  4. PART I - INSTALLATION
  5. Step 4: Installing consensus client

Prysm

PreviousNimbusNextTeku

Last updated 9 months ago

Overview

is a Go implementation of Ethereum protocol with a focus on usability, security, and reliability. Prysm is developed by , a company with the sole focus on the development of their client. Prysm is written in Go and released under a GPL-3.0 license.

Official Links

Subject
Links

Releases

Documentation

Website

1. Initial configuration

Create a service user for the consensus service, create data directory and assign ownership.

sudo adduser --system --no-create-home --group consensus
sudo mkdir -p /var/lib/prysm/beacon
sudo chown -R consensus:consensus /var/lib/prysm/beacon

Install dependencies.

sudo apt install curl jq git ccze -y

2. Install Binaries

  • Downloading binaries is often faster and more convenient.

  • Building from source code can offer better compatibility and is more aligned with the spirit of FOSS (free open source software).

Option 1 - Download binaries

Run the following to automatically download the latest binaries.

cd $HOME
prysm_version=$(curl -f -s https://prysmaticlabs.com/releases/latest)
file_beacon=beacon-chain-${prysm_version}-linux-amd64
file_validator=validator-${prysm_version}-linux-amd64
curl -f -L "https://prysmaticlabs.com/releases/${file_beacon}" -o beacon-chain
curl -f -L "https://prysmaticlabs.com/releases/${file_validator}" -o validator
chmod +x beacon-chain validator

Install the binaries.

sudo mv beacon-chain validator /usr/local/bin
Option 2 - Build from source code

Install Go dependencies

wget -O go.tar.gz https://go.dev/dl/go1.22.2.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go.tar.gz
echo export PATH=$PATH:/usr/local/go/bin >> $HOME/.bashrc
source $HOME/.bashrc

Verify Go is properly installed by checking the version and cleanup files.

go version
rm go.tar.gz

Install build dependencies.

sudo apt-get update
sudo apt install build-essential git

Build the binaries.

mkdir -p ~/git
cd ~/git
git clone https://github.com/prysmaticlabs/prysm.git
cd prysm
git fetch --tags
RELEASETAG=$(curl -s https://api.github.com/repos/prysmaticlabs/prysm/releases/latest | jq -r .tag_name)
git checkout tags/$RELEASETAG
go build -o=./build/beacon-chain ./cmd/beacon-chain
go build -o=./build/validator ./cmd/validator

Install the binaries.

sudo cp $HOME/git/prysm/build/beacon-chain /usr/local/bin
sudo cp $HOME/git/prysm/build/validator /usr/local/bin

3. Setup and configure systemd

Create a systemd unit file to define your consensus.service configuration.

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

Paste the following configuration into the file.

[Unit]
Description=Prysm Consensus Layer Client service for Mainnet
Wants=network-online.target
After=network-online.target
Documentation=https://www.nodebridgeafrica.com

[Service]
Type=simple
User=consensus
Group=consensus
Restart=on-failure
RestartSec=3
KillSignal=SIGINT
TimeoutStopSec=900
ExecStart=/usr/local/bin/beacon-chain \
  --mainnet \
  --datadir=/var/lib/prysm/beacon \
  --grpc-gateway-port 5052 \
  --p2p-tcp-port 13000 \
  --p2p-udp-port 12000 \
  --p2p-max-peers 80 \
  --monitoring-port 8008 \
  --checkpoint-sync-url=https://beaconstate.info \
  --execution-endpoint=http://localhost:8551 \
  --jwt-secret=/secrets/jwtsecret \
  --accept-terms-of-use=true \
  --suggested-fee-recipient=<0x_CHANGE_THIS_TO_MY_ETH_FEE_RECIPIENT_ADDRESS>

[Install]
WantedBy=multi-user.target
  • Replace**<0x_CHANGE_THIS_TO_MY_ETH_FEE_RECIPIENT_ADDRESS>** with your own Ethereum address that you control. Tips are sent to this address and are immediately spendable.

  • Not staking? If you only want a full node, delete the whole lines beginning with

--suggested-fee-recipient

To exit and save, press Ctrl + X, then Y, then Enter.

Run the following to enable auto-start at boot time.

sudo systemctl daemon-reload
sudo systemctl enable consensus

Finally, start your consensus layer client and check it's status.

sudo systemctl start consensus
sudo systemctl status consensus

Press Ctrl + C to exit the status.

Check your logs to confirm that the consensus clients are up and syncing.

sudo journalctl -fu consensus | ccze

Example of Synced Consensus Client Logs

"Peer summary" activePeers=69 inbound=0 outbound=69 prefix=p2p
"Synced new block" block=0xb5ccb2f85... epoch=1837 finalizedEpoch=1838 finalizedRoot=0x1dce0... prefix=blockchain slot=21338 "Finished applying state transition" attestations=128 payloadHash=0x000000000000 prefix=blockchain slot=2138 syncBitsCount=213 txCount=0"terminal difficulty has not been reached yet" latestDifficulty=10000000 prefix=powchain terminalDifficulty=10000000

4. Helpful consensus client commands

sudo journalctl -fu consensus | ccze

Example of Synced Prysm Consensus Client Logs

time="2023-02-02 11:21:00" level=info msg="Peer summary" activePeers=35 inbound=10 outbound=25 prefix=p2p
time="2023-02-02 11:21:00" level=info msg="Synced new block" block=0xd9ddeza1289... epoch=11795 finalizedEpoch=111794 finalizedRoot=0x462e3275... prefix=blockchain slot=31205
time="2023-02-02 11:21:00" level=info msg="Finished applying state transition" attestations=64 payloadHash=0x000000000000 prefix=blockchain slot=31205 syncBitsCount=209 txCount=0
sudo systemctl stop consensus
sudo systemctl start consensus
sudo systemctl status consensus

Common reasons to reset the database can include:

  • To reduce disk space usage

  • To recover from a corrupted database due to power outage or hardware failure

  • To upgrade to a new storage format

sudo systemctl stop consensus
sudo rm -rf /var/lib/prysm/beacon/beaconchaindata
sudo systemctl restart consensus

With checkpoint sync enabled, time to re-sync the consensus client should take only a minute or two.

Now that your consensus client is configured and started, you have a full node.

Proceed to the next step on setting up your validator client, which turns a full node into a staking node.

If you wanted to setup a full node, not a staking node, stop here! Congrats on running your own full node!

🎉
Prysm
Prysmatic Labs
https://github.com/prysmaticlabs/prysm/releases
https://docs.prylabs.network
https://prysmaticlabs.com