Installation

Guide for downloading and using Fermah Prover Node binary.

Make sure you have your ECDSA private key ready, it can be placed into PRIVATE_KEY env var before running the install script.

During installation, you need to provide your assigned prover node name, so it fetches the right configuration file.

Prepare the server

Install Docker

Install Docker with apt (see official documentation)

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  sudo apt-get update
  sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  sudo adduser $USER docker

Install CUDA drivers

Our binaries are built for CUDA 12.2 on Ubuntu 22.04. Both the CUDA drivers and toolkit are required.

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
rm cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y cuda-drivers cuda-toolkit-12-2

Install CUDA containers toolkit

Below are the steps to install it with apt. For alternative installation methods, refer to the NVIDIA documentation.

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Check if the installation works by running a sample CUDA container:

docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

Your output should resemble the following output:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10    Driver Version: 535.86.10    CUDA Version: 12.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            On   | 00000000:00:1E.0 Off |                    0 |
| N/A   34C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Install the Fermah Prover Node

We provide an Install Script for obtaining fpn (Fermah Prover Node) pre-built binaries.

The script is able to:

  • Install or update latest release

  • Download the default prover (ZkSync)

  • Install configuration files

  • Setup telemetry collector (requires Docker)

  • Onboard into Fermah Network (requires Whitelist Keys)

bash <(curl -s https://storage.googleapis.com/fermah-releases/install.sh)

Script will run in interactive mode by default. You may pass in --help to see what arguments are available.

Then you need to run fpn as a daemon. We recommend using systemd (see Starting a Node for more details).


Supported OS/Arch

OS
Arch

ubuntu-latest (22.04 LTS)

amd64

Please contact us if you need other prebuilt binaries.

Note that ubuntu-latest also applies to most linux distros, as long as the system's GLIBC version is 2.34+ and CUDA version is 12.2.

Last updated

Was this helpful?