Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
LABS
Guides

Setting Up Nodes on Bare Metal

A technical guide for developers deploying production-grade blockchain nodes on physical servers. Covers hardware selection, OS configuration, and client software installation for major networks.
Chainscore © 2026
introduction
FOUNDATIONS

Introduction to Bare Metal Node Deployment

Deploying blockchain nodes on dedicated physical hardware provides maximum performance, control, and security for demanding Web3 applications.

Bare metal deployment involves running a node directly on a dedicated physical server, bypassing virtualization layers like those used in cloud VPS services. This approach is critical for high-performance validators, RPC providers, and indexers where consistent low-latency and predictable resource allocation are non-negotiable. Unlike shared virtualized environments, bare metal gives you exclusive access to the CPU, RAM, and storage, eliminating "noisy neighbor" performance issues that can cause missed blocks or sync delays. For chains like Solana, Sui, or high-throughput Ethereum Layer 2s, this raw hardware access is often a prerequisite for stable operation.

The primary advantage is total control. You manage the entire stack from the BIOS and operating system upwards, allowing for fine-tuned optimizations. This includes selecting a specific Linux kernel version, configuring sysctl parameters for network performance, and using filesystems like ext4 or ZFS tuned for your SSD/NVMe drives. Security is also enhanced, as the attack surface is reduced without a hypervisor layer. However, this control comes with operational responsibility: you are solely accountable for hardware maintenance, physical security, network redundancy, and disaster recovery procedures.

A typical setup begins with provisioning. You can use a dedicated server from providers like Hetzner, OVHcloud, or Equinix Metal. After remote (IPMI/iDRAC) access is configured, you install a minimal OS—Ubuntu Server 22.04 LTS is a common choice. The first steps are always security hardening: creating a non-root user with sudo privileges, disabling password authentication in favor of SSH keys, and configuring a firewall (ufw or iptables). Essential tooling like tmux for session management, htop for resource monitoring, and fail2ban for intrusion prevention should be installed immediately.

Node software installation varies by blockchain. For an Ethereum execution client like Geth, you would add the repository, install geth, and configure a systemd service file to manage the process. A key part of bare metal setup is optimizing storage; for example, ensuring the Ethereum chain data is on a separate high-performance NVMe volume mounted with optimal noatime flags. Synchronization can be accelerated by using snapshots from trusted sources like Chaindata.dev or Alchemy's Snapshots, which can save days of initial sync time.

Ongoing maintenance is crucial. This includes setting up monitoring with Prometheus and Grafana to track block height, peer count, memory usage, and disk I/O. Automated alerts for high memory pressure or stalled syncs are essential. You must also establish a secure, automated backup strategy for validator keys and configuration files, often using encrypted off-site storage. Patching the OS and node software requires a careful, staged process to avoid downtime, sometimes involving setting up a redundant failover node.

While more complex than cloud deployments, bare metal is cost-effective at scale and offers unparalleled performance. The initial effort invests in a foundation of resilience and control, making it the preferred choice for institutional validators, infrastructure providers, and any project where node reliability directly impacts protocol security or user experience.

prerequisites
SETTING UP NODES ON BARE METAL

Prerequisites and Hardware Requirements

Running a blockchain node on dedicated hardware provides maximum performance and control. This guide covers the essential prerequisites and hardware specifications for a reliable, production-grade node.

Before installing any software, you must meet the core prerequisites. You need a Linux operating system; Ubuntu 22.04 LTS or 24.04 LTS are the most widely supported and tested distributions. You must have sudo or root access to the machine for package installation and system configuration. A stable, high-bandwidth internet connection is non-negotiable, with low latency being critical for consensus participation. Finally, ensure your system clock is synchronized using chrony or systemd-timesyncd to prevent block validation issues.

Hardware requirements vary significantly by blockchain. For an Ethereum execution client (e.g., Geth, Nethermind), you need a modern multi-core CPU (e.g., Intel i7 or AMD Ryzen 7), 16-32 GB of RAM, and at least 2 TB of fast NVMe SSD storage for the mainnet chain data. A Cosmos SDK-based chain might require 4-8 CPU cores, 16 GB RAM, and 500 GB SSD. Always check the specific network's documentation, as requirements for chains like Solana, Sui, or Monad are substantially higher, often demanding 128+ GB RAM and multi-TB NVMe arrays.

Beyond raw specs, system configuration is key. Configure your firewall (e.g., ufw) to allow the node's P2P port (commonly TCP 26656 for Cosmos, 30303 for Ethereum) while restricting other access. You should set up fail2ban to protect against brute-force attacks on SSH. For storage, it's advisable to mount your SSD on a dedicated directory like /data and ensure your filesystem (ext4 or XFS) is configured with the noatime mount option to reduce write overhead. These steps optimize durability and security.

Long-term operation requires planning for maintenance. Implement a log rotation policy using logrotate to prevent logs from consuming disk space. Set up monitoring for critical metrics: disk usage (aim to stay below 80%), memory consumption, and network connectivity. Tools like Prometheus and Grafana are standard for this. Establish a backup strategy for your node's validator key files and configuration; these should be stored encrypted and offline. Automating updates and service restarts with systemd units ensures minimal downtime during upgrades.

Choosing the right physical environment matters. For a home setup, ensure adequate cooling and an Uninterruptible Power Supply (UPS). For data center colocation, verify network uplink quality and redundancy. The initial chain sync is the most resource-intensive phase; using a snapshot from a trusted source can reduce sync time from days to hours, sparing your hardware. Remember, these are baseline requirements; as chain state grows, you will need to periodically scale your storage and, potentially, your memory.

MINIMUM REQUIREMENTS

Hardware Specifications by Network

Recommended hardware for running a full archive node on bare metal, based on current network demands.

ComponentEthereum (Geth/Nethermind)Polygon (Bor/Heimdall)Solana (Validator)Arbitrum (Nitro)

CPU Cores

8+ cores

8+ cores

12+ cores

8+ cores

RAM

32 GB

32 GB

256 GB

32 GB

SSD Storage

4 TB NVMe

2 TB NVMe

2 TB NVMe

3 TB NVMe

Network Bandwidth

1 Gbps

500 Mbps

1 Gbps

1 Gbps

Sync Time (Est.)

5-7 days

2-3 days

~24 hours

3-5 days

Archive Node Support

Monthly Storage Growth

~150 GB

~50 GB

~30 GB

~100 GB

os-and-network-setup
BARE METAL NODE SETUP

Operating System and Network Configuration

A guide to preparing the foundational OS and network environment for running high-performance blockchain nodes on dedicated hardware.

Running a node on bare metal—dedicated physical hardware—provides maximum performance and control compared to virtualized environments. The first step is selecting a Linux distribution. For production nodes, Ubuntu LTS (22.04 or 24.04) or Debian Stable are the standard choices due to their stability, long-term support, and extensive community resources. These distributions offer robust package management and security updates, which are critical for maintaining a secure node over time. You will install this OS directly onto your server's primary SSD or NVMe drive.

After installation, the next critical phase is system hardening. This involves disabling unnecessary services, configuring the firewall (using ufw or firewalld), and setting up a non-root user with sudo privileges. Essential security practices include: disabling password-based SSH login in favor of SSH key authentication, changing the default SSH port, and installing fail2ban to mitigate brute-force attacks. These steps are non-negotiable for a node exposed to the public internet, as they form the first line of defense against unauthorized access.

Network configuration is paramount for node connectivity and reliability. Your node needs a static internal IP address assigned via your router's DHCP reservation or directly in the OS network configuration files (e.g., /etc/netplan/ on Ubuntu). You must configure port forwarding on your router to expose the node's P2P port (e.g., port 30303 for Ethereum execution clients) to the internet. For optimal performance, ensure NTP (Network Time Protocol) is enabled and synchronized, as consensus mechanisms rely on accurate timekeeping. Tools like chronyd or systemd-timesyncd handle this.

Storage setup directly impacts node synchronization speed and reliability. Format your primary drive with a filesystem like ext4 or XFS, which are optimized for large sequential writes common in blockchain data storage. It is highly recommended to configure a separate, large volume (often multiple terabytes) for the chain data directory. This isolation simplifies maintenance and backups. You should mount this volume with appropriate options in /etc/fstab, such as noatime to reduce write overhead, and ensure the node service user has correct read/write permissions.

Finally, prepare the software environment. Install essential build tools (build-essential, git, curl), the correct version of Go, Rust, or other language toolchains required by your specific node client (like Geth, Erigon, or Lighthouse). Using a process supervisor like systemd is the standard method for managing node services. You will create a systemd service file to define the execution command, restart policies, and resource limits, ensuring your node starts automatically on boot and recovers from failures.

PROTOCOL-SPECIFIC GUIDES

Client Installation by Blockchain

Installing Geth and Nethermind

Execution Clients: For Ethereum's execution layer, Geth (Go-Ethereum) and Nethermind are the most common choices. Geth is written in Go and is the most widely used client. Nethermind, written in .NET/C#, is known for its performance and detailed logging.

Installation Steps:

  1. Geth: Download the latest release for your OS from the official repository. Extract and add to your PATH.
  2. Nethermind: Download the package from Nethermind's releases. On Linux, you can use the provided .deb or .rpm packages.

Basic Sync Command:

bash
# Start Geth for mainnet with a light sync
./geth --syncmode "light"

# Start Nethermind with JSON RPC enabled
./Nethermind.Runner --config mainnet --JsonRpc.Enabled true

Consensus Client: You will also need a consensus client like Lighthouse or Prysm. Their installation typically involves downloading binaries or using package managers like apt.

syncing-and-monitoring
BARE METAL NODE OPERATION

Initial Sync, Monitoring, and Maintenance

A guide to the essential operational lifecycle of a blockchain node, from initial synchronization to ongoing health monitoring and routine maintenance.

The initial sync is the process where a new node downloads and validates the entire blockchain history. For networks like Ethereum, this involves downloading over 1 TB of data. The two primary methods are a full sync, which replays every transaction from genesis, and a snapshot sync, which downloads a recent, pre-verified state. Using a snapshot from a trusted source like Erigon or Geth's snap sync can reduce sync time from weeks to days. Ensure your hardware—particularly SSD speed and network bandwidth—meets the client's requirements to avoid bottlenecks.

Effective monitoring is non-negotiable for node health. Implement tools like Prometheus for metrics collection and Grafana for visualization. Key metrics to track include: head_block_number to confirm the node is synced to the chain tip, peer_count to ensure adequate network connectivity, disk_usage to prevent storage exhaustion, and cpu/memory_usage to identify resource constraints. Setting up alerts for these metrics via Alertmanager is critical for responding to issues like the node falling behind the chain or running out of disk space, which can cause a costly resync.

Routine maintenance ensures long-term stability and security. This includes: regularly updating your node client (e.g., Geth, Erigon, Lighthouse) to patch security vulnerabilities and access new features, pruning archived data to manage disk growth, and monitoring log files for warnings or errors. For proof-of-stake validators, maintenance also involves ensuring the validator client is online, the withdrawal credentials are correctly configured, and the beacon chain is fully synced. Automating these tasks with scripts or orchestration tools like systemd or Docker reduces operational overhead and human error.

BARE METAL NODE

Security Hardening Checklist

Essential configuration steps to secure a physical server before deploying blockchain node software.

Security ControlMinimum BaselineRecommended HardeningAdvanced/Paranoid

SSH Key Authentication Only

SSH Port Change (from 22)

Firewall (UFW/iptables) Enabled

Fail2ban Intrusion Prevention

Automatic Security Updates

Non-Root User for Node Process

Disk Encryption (LUKS)

Auditd Logging & Monitoring

Mandatory Access Control (AppArmor/SELinux)

BARE METAL NODES

Frequently Asked Questions

Common questions and troubleshooting steps for developers running blockchain nodes on physical hardware.

Requirements vary by client and network. For an Ethereum mainnet archive node using Geth or Erigon, you typically need:

  • CPU: 4+ cores (Intel/AMD x86_64)
  • RAM: 16 GB minimum, 32 GB recommended for smoother operation
  • Storage: 2+ TB NVMe SSD for a full node, 12+ TB for an archive node
  • Bandwidth: Unmetered, high-speed connection (25+ Mbps)

For consensus clients like Lighthouse or Teku, RAM requirements are higher (8-16 GB). Always check the latest documentation for your specific client, as chain state growth and client optimizations change requirements. Insufficient RAM is a common cause of node crashes and sync failures.