Parallel Universe
  • Learn
    • Introduction to PUT
    • Getting started with PUT
  • Architecture
    • What is a PUT Cluster?
    • Clusters
      • PUT Clusters
      • RPC Endpoints
      • Benchmark a Cluster
      • Performance Metrics
    • Consensus
      • Synchronization
      • Leader Rotation
      • Fork Generation
      • Managing Forks
      • Turbine Block Propagation
      • Commitment Status
      • Secure Vote Signing
      • Stake Delegation and Rewards
    • Validators
      • Overview
      • TPU
      • TVU
      • Blockstore
      • Gossip Service
      • The Runtime
  • CLI
    • Command-line Guide
    • Install the PUT Tool Suite
    • Command-line Wallets
      • Command Line Wallets
      • Paper Wallet
      • File System Wallet
      • Support / Troubleshooting
    • Using PUT CLI
    • Connecting to a Cluster
    • Send and Receive Tokens
    • Staking
    • Deploy a Program
    • Offline Transaction Signing
    • Durable Transaction Nonces
    • CLI Usage Reference
  • Developers
    • Get Started
      • Hello World
      • Local development
      • Rust program
    • Core Concepts
      • Accounts
      • Transactions
        • Overview
        • Versioned Transactions
        • Address Lookup Tables
      • Programs
      • Rent
      • Calling between programs
      • Runtime
    • Clients
      • JSON RPC API -1
      • JSON RPC API -2
      • JSON RPC API -3
      • Web3 JavaScript API
      • Web3 API Reference
      • Rust API
    • Writing Programs
      • Overview
      • Developing with Rust
      • Deploying
      • Debugging
      • Program Examples
      • FAQ
    • Native Programs
      • Overview
      • Sysvar Cluster Data
    • Local Development
      • PUT Test Validator
    • Backward Compatibility Policy
  • Validators
    • Running a Validator
    • Getting Started
      • Validator Requirements
    • Voting Setup
      • Starting a Validator
      • Vote Account Management
      • Staking
      • Monitoring a Validator
      • Publishing Validator Info
      • Failover Setup
      • Troubleshooting
    • Geyser
      • Geyser Plugins
  • Staking
    • Staking on PUT
    • Stake Account Structure
  • Integrations
    • Add PUT to Your Exchange
    • Retrying Transactions
  • Library
    • Introduction
    • Token Program
    • Associated Token Account Program
    • Memo Program
    • Name Service
    • Feature Proposal Program
    • NFT Program
      • Overview
      • Interface
      • Usage Guidelines
        • Create a new NFT-Mint
        • Cast NFT
        • Transfer an NFT
        • Change account status
        • Permission settings
        • Query Interface
        • Continuous casting
        • Change the Mint attribute
      • Operation Overview
        • Create a new NFT-Mint
        • Transfer NFT
        • Destroy
        • Freeze NFT accounts
        • Update
    • PUT multi-sign program
      • Overview
      • Interface
      • Usage Guidelines
        • Create a multi-signature account
        • Create a proposal account
        • Vote proposal
        • Verify Proposal
        • Add-singer
        • Remove-signer
      • Operation Overview
        • Create a multi-signature account
        • Create a proposal account
        • Vote
        • Verify
        • Add-singer
        • Remove-signer
  • PUT Privacy Policy
Powered by GitBook
On this page
  • Minimum PUT requirements
  • Hardware Recommendations
  • RPC Node Recommendations
  • Virtual machines on Cloud Platforms
  • Software
  • Networking
  • Port Forwarding
  • Required
  • Optional
  • GPU Requirements
  1. Validators
  2. Getting Started

Validator Requirements

Validator Requirements

Minimum PUT requirements

There is no strict minimum amount of PUT required to run a validator on PUT.

However in order to participate in consensus, a vote account is required which has a rent-exempt reserve of 0.02685864 PUT.

Voting also requires sending a vote transaction for each block the validator agrees with, which can cost up to 1.1 PUT per day.

Hardware Recommendations

CPU
    12 cores / 24 threads, or more
    2.8GHz, or faster
    AVX2 instruction support (to use official release binaries, self-compile otherwise)
    Support for AVX512f and/or SHA-NI instructions is helpful
    The AMD Zen3 series is popular with the validator community
RAM
    256GB, or more
    Motherboard with 256GB capacity suggested
Disk
    PCIe Gen3 x4 NVME SSD, or better
    Accounts: 500GB, or larger. High TBW (Total Bytes Written)
    Ledger: 1TB or larger. High TBW suggested
    OS: (Optional) 500GB, or larger. SATA OK
    The OS may be installed on the ledger disk, though testing has shown better performance with the ledger on its own disk
    Accounts and ledger can be stored on the same disk, however due to high IOPS, this is not recommended
    The Samsung 970 and 980 Pro series SSDs are popular with the validator community
GPUs
    Not strictly necessary at this time
    Motherboard and power supply speced to add one or more high-end GPUs in the future suggested

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

While you can run a validator on a cloud computing platform, it may not be cost-efficient over the long term.

However, it may be convenient to run non-voting api nodes on VM instances for your own internal usage. This use case includes exchanges and services built on PUT.

In fact, the mainnet-beta validators operated by the team are currently (Mar. 2021) run on GCE n2-standard-32 (32 vCPUs, 128 GB memory) instances with 2048 GB SSD for operational convenience.

For other cloud platforms, select instance types with similar specs.

Also note that egress internet traffic usage may turn out to be high, especially for the case of running staked validators.

Software

We build and run on Ubuntu 20.04.
See Installing PUT for the current PUT 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 PUT 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.

PreviousGetting StartedNextVoting Setup

Last updated 2 years ago