Intermediate

 

Validator Requirements on Solana blockchain

This tutorial provides an overview of the requirements for running a validator on the Solana blockchain. It covers the minimum SOL required to participate in consensus, hardware recommendations for running a validator, software requirements, networking needs, and port forwarding requirements. It also discusses considerations for running a validator on cloud computing platforms and using Docker. Additionally, it provides information on GPU requirements for running a Solana validator.

Minimum SOL requirements

To run a validator on Solana, no specific minimum amount of SOL is required. However, to participate in consensus, a vote account must be set up with a rent-exempt reserve of 0.02685864 SOL. This vote account must also send a vote transaction for each block it supports, which may cost up to 1.1 SOL per day.

Hardware Recommendations

CPU:

  • 12 or more cores/threads

  • Clock speed of 2.8GHz or faster

  • AVX2 instruction support, AVX512f and/or SHA-NI support is a plus

  • AMD Zen3 series is popular among validators

RAM:

  • At least 128GB

  • Motherboard with 256GB capacity is recommended

Disk:

  • PCIe Gen3 x4 NVME SSD or better for Accounts (with a capacity of 500GB or larger, high TBW preferred)

  • Ledger: 1TB or larger with high TBW

  • OS (Optional): 500GB or larger (SATA OK, better performance with separate disk)

  • Accounts and Ledger should not be stored on the same disk due to high IOPS.

  • Samsung 970 and 980 Pro series SSDs are popular among validators.

GPU:

  • Not currently necessary

  • Motherboard and power supply that can support high-end GPUs in the future is recommended.

RPC Node Recommendations

The hardware recommendations above should be considered bare minimums if the validator is intended to be employed as an RPC node. To provide full functionality and improved reliability, the following adjustments should be made.

  • CPU

    16 cores / 32 threads, or more

  • RAM

    256 GB, or more

  • Disk

    Consider a larger ledger disk if longer transaction history is required .   Accounts and ledger should not be stored on the same disk

Virtual machines on Cloud Platforms

Operating a validator on a cloud computing platform may not be cost-effective in the long run. However, non-voting API nodes can be run on virtual machine instances for convenient internal use, such as by exchanges and Solana-based services. The Solana team’s mainnet-beta validators, as of March 2021, are run on GCE n2-standard-32 instances (32 vCPUs, 128GB memory) with a 2048GB SSD for ease of operation. For other cloud platforms, choose instances with comparable specifications. It’s important to keep in mind that egress internet traffic usage may be significant, especially for staked validators.

Docker

Running validator for live clusters (including mainnet-beta) inside Docker is not recommended and generally not supported. This is due to concerns of general Docker’s containerzation overhead and resultant performance degradation unless specially configured.

We use Docker only for development purposes. Docker Hub contains images for all releases at solanalabs/solana.

Software

  • We build and run on Ubuntu 20.04.

  • See Installing Solana for the current Solana software release.

Prebuilt binaries are available for Linux x86_64 on CPUs supporting AVX2 (Ubuntu 20.04 recommended). MacOS or WSL users may build from source.

Networking

Internet service should be at least 300Mbit/s symmetric, commercial. 1GBit/s preferred

Port Forwarding

The following ports need to be open to the internet for both inbound and outbound

It is not recommended to run a validator behind a NAT. Operators who choose to do so should be comfortable configuring their networking equipment and debugging any traversal issues on their own.

Required

  • 8000-10000 TCP/UDP – P2P protocols (gossip, turbine, repair, etc). This can be limited to any free 13 port range with --dynamic-port-range

Optional

For security purposes, it is not suggested that the following ports be open to the internet on staked, mainnet-beta validators.

  • 8899 TCP – JSONRPC over HTTP. Change with `–rpc-port RPC_PORT“

  • 8900 TCP – JSONRPC over Websockets. Derived. Uses RPC_PORT + 1

GPU Requirements

CUDA is required to make use of the GPU on your system. The provided Solana release binaries are built on Ubuntu 20.04 with CUDA Toolkit 10.1 update 1. If your machine is using a different CUDA version then you will need to rebuild from source.