Skip to content

Instantly share code, notes, and snippets.

@smol-ninja
Last active December 26, 2023 15:00
Show Gist options
  • Save smol-ninja/3d76ac3989577a911e3dcbd1032ac5cf to your computer and use it in GitHub Desktop.
Save smol-ninja/3d76ac3989577a911e3dcbd1032ac5cf to your computer and use it in GitHub Desktop.
Building an Ethereum Validator Node for Solo Staking

Building an Ethereum Validator Server for Solo Staking

Hardware Components

  1. Processor: Intel Core 13 Generation i9-13900F (Amazon)

  2. Memory: Corsair 2 x 32 GB DDR4 (Amazon)

  3. Storage: Corsair 4TB NVMe SSD (Amazon)

  4. Motherboard: MSI B760M Mortar WiFi Micro-ATX (Amazon)

  5. Power Supply: Corsair RM750x (Amazon)

  6. PC Case: Mini-Tower (Amazon)

  7. Graphics Card: Nvidia GeForce GT730 2GB (Amazon)

This costed me ~$1637 that's cheaper than buying a Dappnode machine with similar specs.

Software

Opt for Dappnode OS. It supports most consensus and execution clients along with MEV boost. I chose to go with Lighthouse + Nethermind.

Build Process

Flash Dappnode ISO

  1. Download the Attended version of the Dappnode ISO onto a 32 GB USB drive.
  2. Wait for the hardware components to arrive during this time.

Building the Machine

  1. Motherboard Setup

    • Attach the processor
    • Insert the RAMs into DIMMA2 and DIMMB2 slots. Always refer to the motherboard documentation.
    • Insert the NVMe SSD.
  2. Case Setup

    • Fit the motherboard into the CPU case.
    • Integrate the graphics card and Power Supply Unit.
    • Do the wiring. Always refer to the manual.

BIOS Configurations

Configure the BIOS settings as follows:

  1. Restore after Power Loss: Set to Always On for automatic restart after power loss.

  2. System Power Fault Protection: Enable this feature.

  3. Wake-on-LAN: Enable for remote server activation. Resume by PCI-E/Networking Device. Resume by Intel CNVi. This allows you to remotely power on the machine by sending a magic packet over the network.

  4. Set BIOS/UEFI passwords.

Dappnode Installation

  1. Use LVM for partition management, allocating the entire disk. Using partition for /home folder will allocate majority allocation to home folder leading to low space for node data.

  2. Set IPFS to remote to reduce network load on the router. Without this, the router might drop connectivity sometimes.

  3. Disable Auto Updates to avoid reboots.

Monitoring

Beacone chain mobile app and explorer.

Additional Configurations

Network Configurations

  1. Enable Wi-Fi, local proxy, and VPN. Note that you can only access Dappnode web3signer over WiFi hotspot exposed by the machine.
  2. Set up SSH for remote access.
  3. Configure Wireguard VPN using this guide to connect to your machine outside of your home network.

GRUB Modification

Adjust GRUB settings:

$ cat /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

GRUB_TERMINAL=console

$ cat /usr/sbin/update-grub
#!/bin/sh
set -e
exec /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg "$@"

Temperature Sensors

Enable temperature sensors:

$ sudo sensors-detect
$ sensors

BIOS Update

Update BIOS settings to detect Monitor/HDMI/VGA to none.

Ledger

Enable debug data (a.k.a. contract data) in Ledger device to use it with MetaMask for deposit to validator otherwise metamask won't be able to sign tx.

Other softwares

  1. Generate validatot keys using Wagyu Key Gen.
  2. Deposit ETH into validator using launchpad.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment