Sign inSign up

fiftysix/prysm

By fiftysix

•Updated 5 days ago

Prysm (Offchain Labs) consensus client for Ethereum nodes written in Go.

Image
0

248

fiftysix/prysm repository overview

⁠Fiftysix Prysm Docker Image

Maintainer: [email protected]⁠

⁠Overview

This Docker image provides a fully functional Prysm client built using the Fiftysix base image. Prysm is an Ethereum consensus (beacon) client maintained by Offchain Labs. It connects to the Ethereum P2P network, tracks the beacon chain, and works together with a paired execution client to keep a full Ethereum node in sync. It is ideal for developers, blockchain enthusiasts, and institutions looking to participate in the Ethereum network. The code can be viewed on the Fiftysix Github⁠.

⁠Tags

  • latest: Points to the latest version of Prysm.
  • <version>: Points to a specific version of Prysm. For example, 7.1.8.

⁠What is Prysm?

Prysm is an Ethereum consensus client implemented in Go, built and maintained by Offchain Labs. It operates as a beacon node in Ethereum's Proof of Stake (PoS) network, implementing the consensus protocol, tracking validator duties, and communicating with a paired execution client over the authenticated Engine API. Following the merge⁠, a consensus client like Prysm is required alongside an execution client (such as Reth, Geth, Erigon, Besu, or Nethermind) to run a complete Ethereum node.

⁠Usage

⁠Prerequisites

Prysm cannot run standalone. To run Prysm effectively, you'll need a paired Ethereum execution client (such as Reth, Geth, Erigon, Besu, or Nethermind) already running, and the exact same JWT secret the execution client generated (at <execution client's data dir>/jwt.hex) shared into the Prysm container - Prysm must never generate its own. See the execution/consensus pairing notes⁠ for the full mechanism.

⁠Basic Usage

To run a Prysm node paired with an execution client already running on the same Docker network as reth-node:

docker pull fiftysix/prysm
docker run --name prysm -d \
  -v /path/to/execution-client/data:/node/prysm/exec-jwt:ro \
  fiftysix/prysm \
  beacon-chain --execution-endpoint http://reth-node:8551 --jwt-secret /node/prysm/exec-jwt/jwt.hex

This command starts the Prysm container, pointed at the paired execution client's Engine API and shared JWT secret, exposing the default REST API and P2P ports. Prysm's terms of use are automatically accepted non-interactively by this image's entrypoint.

⁠Directory Structure

In this Docker image, the following directories are used:

  • Data Directory (/node/prysm/data): This is where Prysm stores the beacon chain database and other related files. This directory is specified in the Dockerfile and should be mounted if you want to persist data across container restarts.
  • Scripts Directory (/node/prysm/scripts): This directory contains the entrypoint script (prysm-entrypoint.sh) and any other scripts that may be needed for starting or managing Prysm.

⁠Mounting Directories

You can mount host directories to the container's data and scripts directories to customize the behavior of the Prysm software.

Mounting the Data Directory: To persist Prysm data across container restarts, you can mount a host directory to the container's data directory:

docker run --name prysm -v /path/to/local/data:/node/prysm/data -d fiftysix/prysm ...

Mounting the Scripts Directory: If you have custom scripts you want to include, you can mount them to the scripts directory. For example, to replace the entrypoint script:

docker run --name prysm -v /path/to/local/scripts:/node/prysm/scripts -d fiftysix/prysm ...

⁠Logging Prysm

docker logs prysm --tail 100

⁠Using Prysm

⁠Starting Prysm with Custom Options

To start Prysm with custom options, such as a different HTTP port, pass additional flags after beacon-chain:

docker run --name prysm -d \
  -p 3500:3500 -p 13000:13000 -p 12000:12000/udp \
  -v /path/to/execution-client/data:/node/prysm/exec-jwt:ro \
  fiftysix/prysm \
  beacon-chain --execution-endpoint http://reth-node:8551 --jwt-secret /node/prysm/exec-jwt/jwt.hex \
  --http-port 3500

⁠Exposing Ports

The following ports are commonly used by Prysm and are exposed in this Docker image:

  • 3500: HTTP (REST) API server
  • 13000: P2P communication (TCP)
  • 12000: P2P discovery (UDP)

⁠Docker Compose

Prysm can also be run using Docker Compose, paired with any Fiftysix Ethereum execution client (Reth, Geth, Erigon, Besu, or Nethermind) to form a complete Ethereum node, with Prysm handling consensus. Examples of these Docker Compose files can be found on the Fiftysix Github⁠.

⁠Support

For support, please contact [email protected]⁠.

⁠About Fiftysix

Fiftysix is committed to making blockchain technology accessible, efficient, and reliable through robust decentralization. Learn more at fiftysix.tech⁠.

Tag summary

Content type

Image

Digest

sha256:354c5e788…

Size

145.5 MB

Last updated

5 days ago

docker pull fiftysix/prysm