Prysm

Installing and configuring the Prysm Beacon Node.

Prysm

Prysm is the leading implementation of the Ethereum Consensus protocol, developed by Offchain Labs (formerly Prysmatic Labs). It is written in Go and is known for its user-friendly tooling and extensive documentation.


🛡️ Role: This service runs the Beacon Node. It connects to the Execution Client (Geth/Nethermind) to verify blocks and keeps your node synchronized with the Proof-of-Stake chain.


1. Download & Install

We will download the latest stable binary directly from the official repository.

A. Create the Application Directory

# Create a folder for the binary
sudo mkdir -p /usr/local/lib/prysm

# Download the latest Linux release (Check https://github.com/OffchainLabs/prysm/releases)
sudo curl -L https://github.com/OffchainLabs/prysm/releases/download/v7.1.2/beacon-chain-v7.1.2-linux-amd64 -o /usr/local/lib/prysm/beacon-chain

# Make it executable
sudo chmod +x /usr/local/lib/prysm/beacon-chain

⚠️ Note: The Prysm repository has moved from prysmaticlabs/prysm to OffchainLabs/prysm. Make sure to use the new URL for downloads.

B. Set Permissions

Ensure the ethereum user owns the binary.


2. Configure Systemd Service

We will configure Prysm to run as a background service.

Pro Tip: Checkpoint Sync

Syncing the Beacon Chain from Genesis can take days. We highly recommend using Checkpoint Sync to sync in minutes.

We added the --checkpoint-sync-url flag below using a public endpoint. You can find more endpoints at eth-clients.github.io/checkpoint-sync-endpointsarrow-up-right.

Create the service file:

Paste the following configuration:

🔍 Flag Explanation:

  • --execution-endpoint: The URL of your local Geth/Nethermind Engine API.

  • --jwt-secret: The shared token we generated in Step 2.

  • --checkpoint-sync-url: Tells Prysm to download a recent snapshot state instead of syncing from 2020.

  • --rpc-host: Enables the gRPC API for your local validator client (if you add one later).

  • --http-host / --http-port: The Beacon Node HTTP API endpoint (replaces the old --grpc-gateway-host / --grpc-gateway-port flags which were removed in v7).


3. Start the Service

Reload the systemd daemon and start the beacon node.


4. Verify Status

Check the logs to ensure Prysm is talking to your Execution Client.

Expected Output:

  • Connection: Connected to execution node (Success! It found Geth/Nethermind).

  • Syncing: If Checkpoint Sync worked, you should see Synced to head or Processing block... very quickly.

  • Peers: Peer count: 50... indicates P2P networking is working.

Common Error: If you see Execution client is unavailable or 401 Unauthorized:

  • Check that your Execution Client service is running (systemctl status geth).

  • Verify that the jwt.hex path is identical in both service files.

Last updated