Prysm can be installed on GNU/Linux, MacOS, and Arm64 using our build tool, Bazel. This page includes instructions for performing this method.
NOTICE: The Prysm installation script is the easiest and most efficient way of installing the latest binaries. Instructions for using it can be found here.
Have questions? Stop by the #documentation channel on Discord and let us know.
These specifications must be met in order to successfully run the Prysm client.
- Operating System: 64-bit GNU/Linux, MacOS
- Processor: Intel Core i5–760 or AMD FX-8100 or better
- Memory: 8GB RAM
- Storage: 20GB available space SSD
- Internet: Broadband connection
These hardware specifications are recommended, but not required to run the Prysm client.
- Processor: Intel Core i7–4770 or AMD FX-8310 or better
- Memory: 16GB RAM
- Storage: 100GB available space SSD
- A modern UNIX operating system
- Bazel version 3.7.0 installed (Ensure you are using 3.7.0)
libprotocversion 3.14 installed
Instead of using the
Go tool to build Prysm, our team relies on the Bazel build system used by major companies to manage monorepositories. Bazel provides reproducible builds and a sandboxed environment that ensures everyone building Prysm has the same experience and can build our entire project from a single command. For more detailed rationale on why Bazel, how it works in Prysm, and all important information about how exactly building from source works, read our rationale here.
Building Prysm from source
- Open a terminal window. Ensure you are running the most recent version of Bazel by issuing the command:
- Clone Prysm's main repository, make sure you switch to the latest version (the latest version number can be found from the releases page), and enter the directory:
- Build both the beacon chain node and the validator client:
Bazel will automatically pull and install any dependencies as well, including Go and necessary compilers. Now that your installation is done, you can then read joining eth2.
Building Docker images
We use Bazel to build the Docker images for Prysm as well. This section outlines comprehensive instructions on how to build them by yourself, run them in Docker, and push to an image registry if desired. In particular, we use
bazel rules docker which provides us the ability to specify a base, barebones image, and essentially builds our binary and creates a Docker container as a simple wrapper over our binaries.
We do not write our own Dockerfiles, as Bazel provides us a more sandboxed, simple experience with all of its benefits. To see an example use of
bazel rules docker for how we build a particular package, see here.
- All specified dependencies for building with Bazel here
- Python installed and available in your computer
Regular Docker images
At the moment, Prysm docker images can only be built on Linux operating systems. The standard images are very thin wrappers around the Prysm beacon-chain and validator binaries, and do not contain any other typical components of Docker images such as a bash shell. These are the Docker images we ship to all users, and you can build them yourself as follows:
You can edit these in the links above to your liking.
Prysm also provides Alpine images built using:
Prysm also provides debug images built using:
You can load the images into your local Docker daemon by first building a
.tar file as follows for your desired image bundle:
Then, you can load it into Docker with:
For example, you may see output such as this:
Pushing to a container registry
To push the actual images, you do not need to build the image bundle beforehand. You can do a simple:
By default, this will deploy to Prysmatic Labs' Google Container Registry namespace:
gcr.io/prysmaticlabs/prysm, which you will not have authentication access to, so make sure you edit the image tags to your appropriate registry and authenticate as needed.