Step 1: Prerequisites

  1. Acquire some hardware (laptop, desktop, server) or rent a VPS (cloud server): You need to run a node to stake.

  2. Sync an execution layer client

  3. Sync a consensus layer client

  4. Generate your validator keys and import them into your validator client

  5. Monitor and maintain your node

A Ethereum node consists of the Execution Layer + Consensus Layer.

A Ethereum Staking node is the previous plus a Validator client.

This guide was written for aspiring Ethereum stakers who have basic familiarity with command line tools and it was tested against Ubuntu 22.04.1 LTS client. You’ll want a dedicated cloud VPS or local desktop/server/laptop running a clean install of Ubuntu preferably.

Terminology

Your Ethereum staking node may be

  • Local: on a laptop / PC / NUC that you can physically connect keyboard/mouse/monitor.

  • Remote: in the cloud on a VPS

If your staking node is remote, then you will want to setup SSH, secure shell.

If using a VPS or remote node, install and start the SSH client for your operating system:

Windows: PuTTY

MacOS and Linux: from the Terminal, use the native command:

ssh <YourUserName>@<YourServersIP>

Here's a guide from Makeuseof to connect by SSH to your remote node.

  • Commands are to be run in a terminal window or ssh terminal.

  • Commands preceded by sudo will prompt for your password at first, and periodically afterwards.

As a validator for Ethereum, you will typically have the following abilities:

  • operational knowledge of how to set up, run and maintain a Ethereum consensus client, execution client and validator continuously

  • a long term commitment to maintain your validator 24/7/365

  • basic operating system skills

  • Operating system: 64-bit Linux (i.e. Ubuntu 22.04.1 LTS Server or Desktop)

  • Processor: Dual core CPU, Intel Core i5–760 or AMD FX-8100 or better

  • Memory: 16GB RAM

  • Storage: 1TB SSD for testnet

  • Internet: Stable broadband internet connection with speeds at least 5 Mbps upload and download.

  • Internet Data Plan: At least 2 TB per month.

  • Power: Reliable electrical power. Mitigate with a Uninterruptible Power Supply (UPS).

  • ETH balance: at least 32 ETH and some ETH for deposit transaction fees

  • Wallet: Metamask installed

Once done with testnet staking, this hardware configuration would be suitable for a mainnet staking node.

  • Operating system: 64-bit Linux (i.e. Ubuntu 22.04.1 LTS Server or Desktop)

  • Processor: Quad core CPU, Intel Core i7–4770 or AMD FX-8310 or better

  • Memory: 32GB RAM

  • Storage: 2TB NVME

  • Internet: Stable broadband internet connections with speeds at least 10 Mbps without data limit.

  • Data Plan: At least 2 TB per month. Ideally, no data cap or unlimited data plan.

  • Power: Reliable electrical power with a Uninterruptible Power Supply (UPS).

  • ETH balance: at least 32 ETH and some ETH for deposit transaction fees

  • Wallet: Metamask installed

Decision: Do I run my Ethereum staking node locally at home or rent a VPS cloud server remotely? Here's a list of criteria to help you decide.

With your local or remote node, now you need to install an Operating System. This guide is designed for Ubuntu 22.04.1 LTS.

Tip: When installing Ubuntu Server, ensure you are selecting “Use an entire disk” on the Guided storage configuration screen. Next screen will be the Storage configuration screen, ensure your settings are using all available disk storage. A common issue is that Ubuntu server defaults to using only 200GB.

When the time comes to make your validator's 32ETH deposit(s), you'll need a wallet to transfer funds to the beacon chain deposit contract.

At the end of this guide, you will build a staking validator node that hosts three main components in two layers: consensus layer consists of a consensus client, also known as a validator client with a beacon chain client. The execution layer consists of a execution client, formerly a eth1 node.

Validator client - Responsible for producing new blocks and attestations in the beacon chain and shard chains.

Beacon chain client - Responsible for managing the state of the beacon chain, validator shuffling, and more.

Execution client (aka Eth1 node) - Supplies incoming validator deposits from the eth mainnet chain to the beacon chain client.

Last updated