Running an Ergo Node on Raspberry Pi

Run an Ergo full node on Raspberry Pi - small, inexpensive, and meets the requirements. The Raspberry Pi is small, inexpensive, and meets the requirements to run an Ergo full node.

What is Raspberry Pi Node Setup?

The Raspberry Pi is small, inexpensive, and meets the requirements to run an Ergo full node. This guide provides step-by-step instructions for setting up and running an Ergo node on Raspberry Pi hardware.

Hardware Requirements

Meeting these requirements is crucial for a stable experience on Raspberry Pi.

  • Pi4 with 4GB RAM or above is optimal
  • SSD with 64GB+ preferred for disk I/O
  • Well-ventilated area for cooling

SWAP Configuration

Increase swap space to ensure smooth setup process and prevent memory issues during sync.

  • Increase to 4096MB swap size
  • Reboot after configuration
  • Disable screen-saver during sync

Quick Setup

One-click script for easy setup that downloads the latest version and prompts for API key configuration.

  • Automated installation
  • Progress monitoring
  • API key setup

Performance Tips

Optimize your Raspberry Pi setup for better performance and stability.

  • WiFi has less issues than Ethernet
  • Use ZRAM for memory optimization
  • Set memory limit with -Xmx2g flag

How Raspberry Pi Node Setup Works

The Raspberry Pi provides a cost-effective way to run an Ergo node. The setup process involves installing Java, configuring swap space, and managing resources appropriately for the ARM architecture.

Preparation

Install the Java JDK and configure your system for optimal performance.

Install Java

sudo apt update && sudo apt upgrade -y
sudo apt install default-jdk -y

SWAP Configuration

Increase the swap space your Pi has access to:

sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile

Increase to 4096 (MB)

CONF_SWAPSIZE=4096

Then re-enable the swap and reboot:

sudo dphys-swapfile setup
sudo dphys-swapfile swapon
sudo reboot now

Quick Start

This script will download the latest version of the node, prompt you to set an API key, and start the sync while displaying the progress in terminal.

bash -c "$(curl -s https://node.phenotype.dev)"

If you'd prefer to get set up manually, here's a step-by-step guide. When ready to launch the node make sure to set a maximum limit of 2GB by using the -Xmx2g flag.

Light Mode Configuration

A basic config on mainnet should look like this:

ergo {
    node {
        mining = false
    }
}      
        
scorex {
    restApi {
        apiKeyHash = "$BLAKE_HASH"
    }
}

There are several configuration options that can be tweaked in your ergo.conf file. The resource directory on the main GitHub repository has examples of all available options.

Key Configuration Options

  • skipV1TransactionsValidation: Skip validation of transactions before block 417,792
  • blocksToKeep: Number of blocks to keep with transactions and ADproofs
  • stateType: Options utxo and digest
  • maxConnections: Maximum amount of peers to connect to

State Types

utxo: Keep full utxo set, allows validation of arbitrary block and generate ADProofs (default)
digest: Keep state root hash only and validate transactions via ADProofs

Launch Command

java -jar -Xmx2g ergo.jar --mainnet -c ergo.conf

Tips and Tricks

Apply these tips for optimal performance:

Network Connection

WiFi has less issues than Ethernet for Raspberry Pi setups.

Cooling

Make sure your Pi is in a well-vented area to prevent thermal throttling.

Memory Optimization

Using ZRAM for better memory management.

Display Settings

Disable your screen-saver for the sync process to prevent interruptions.

Troubleshooting

If the node fails to start, check these common issues:

Memory Issues

  • • Ensure swap is properly configured
  • • Check available memory with free -h
  • • Use -Xmx2g flag for Java

Configuration Issues

  • • Correct Ergo node JAR file
  • • Syntax errors in ergo.conf
  • • Sufficient storage space