🛡️EthPillar: one-liner setup tool and node management TUI

Empowered, inspired, home staker. Free. Open source. Public goods for Ethereum. ARM64 and AMD64 support. Lido CSM Compatible. Jumpstart your ETH solo-staking / Lido CSM journey.

Do you like this software? Star the project and become a ⭐ Stargazer

▶️ Quickstart: Ubuntu One-liner Install

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/coincashew/EthPillar/main/install.sh)"

🆕 What is EthPillar?

😄 Friendly Node Installer: Helps you deploy a systemd installation with minority clients Nimbus-Nethermind or Teku-Besu stack in just minutes. MEVboost included.

💾 Ease of use: No more remembering CLI commands required. Access common node operations via a simple text user interface (TUI).

🦉 Fast Updates: Quickly find and download the latest consensus/execution release. Less downtime!

🎉Compatibility: Behind the scenes, node commands and file structure are identical to V2 staking setups.

🔥 Features

⛓️ Hoodi and Ephemery Testnet Support: Quickest and easiest way run a node now, risk free. Learn and practice here before moving to mainnet.

💧 Lido CSM Integration: Deploys in minutes and start staking via Lido's CSM with as little as 2.4 ETH.

🛠️ Plugins and Tools: Node-checker, eth-validator-cli, Dora the lightweight block explorer, contributoor, Ethdo, client-stats, csm-sentinel and eth-duties Integration helps stakers with every day common tasks.

🥓 Grafana and Ethereum-Metrics-Exporter Integration: Monitoring and dashboards has never been easier.

🔎 Built-in Troubleshooting: Find common issues preventing your node from it's peak performance. Discover EthPillar's built-in Node Checker which checks for common system issues.

🎉 Multiple deployment configurations: Deploy a Solo Staking Node, Full Node Only, Lido CSM Staking Node, Validator Client Only or Failover Staking Node.

😎 Preview

Main Menu

Execution Client
Consensus Client
Validator
Tools

Plugins
Mevboost
System Administration

🎉 Speedrun Demo by Stakesaurus

🐳 Prerequisites

📐 Option 1: Automated One-Liner Install

Open a terminal window from anywhere by typing Ctrl+Alt+T.

To install, paste the following:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/coincashew/EthPillar/main/install.sh)"

🤝 Option 2: Manual Install

Install updates and packages:

sudo apt-get update && sudo apt-get install git curl ccze bc tmux jq nano btop whiptail ufw

Clone the ethpillar repo and install:

mkdir -p ~/git/ethpillar
git clone https://github.com/coincashew/ethpillar.git ~/git/ethpillar
sudo ln -s ~/git/ethpillar/ethpillar.sh /usr/local/bin/ethpillar

Run ethpillar:

ethpillar

🎉Next Steps

All types of node operators: Solo staking, Full node, CSM Staking Node

Step 1: Configure your network, port forwarding and firewall.

  • With EthPillar, configuration can be changed at:

    • Tools > UFW Firewall > Enable firewall with default settings

    • Port forwarding is manually configured, depending on your router.

    • Confirm port forwarding is working with Tools > Port Checker

  • Alternatively configure manually per the manual guide. Click here for detailed network configuration.

Step 2: Configure your BIOS to auto power on after power loss

Actual steps vary depending on your computer's BIOS. General idea here: https://www.wintips.org/setup-computer-to-auto-power-on-after-power-outage/

Step 3: Enable Monitoring and Alerts (Optional)

Found under:

  • Tools > Monitoring

Step 4: Benchmark your node (Optional)

Ensure your node has sufficient CPU/disk/network performance.

  • Tools > Yet-Another-Bench-Script

Lido CSM Staking Node Operators

Step 1: Generate Validator Keys:

  • Generate new CSM validator keys for the Lido withdrawal vault

  • Ethpillar > Validator Client > Generate / Import Validator Keys

Step 2: Upload JSON Deposit Data:

  • Upload the newly generated deposit data file for your CSM keystores to the Lido CSM Widget. CSM Holesky or CSM Mainnet

  • Provide the required bond amount in ETH/stETH/wstETH.

Step 3: Monitor Validator Key Deposit:

  • Wait for your CSM validator keys to be deposited by Lido.

  • Ensure your node remains online during the process.

Additional steps for Solo Stakers

Step 1: Setup Validator Keys

  • Familarize yourself with the main guide's section on setting up your validator keys.

  • When ready to generate your keys, go to EthPillar > Validator Client > Generate / Import Validator Keys

Step 2: Upload deposit_data.json to Launchpad

  • To begin staking on Ethereum as a validator, you need to submit to the Launchpad your deposit_data.json file, which includes crucial withdrawal address details, and pay the required deposit of 32ETH per validator.

Step 3: Congrats!

FAQ

Change Networks: How to switch between testnet and mainnet with EthPillar ?

To switch to mainnet, there are two recommended methods.

  • Cleanest and most problem-free option: Reformat Ubuntu OS and re-install EthPillar.

  • Use EthPillar: Navigate to System Administration > Change Network

Exit Validator: How do I exit a validator?

If you already have VEMs created, skip to step 2.

Step 1: Navigate to EthPillar > Validator > Generate Voluntary Exit Message

Step 2: Broadcast Voluntary Exit Message

Add Validators: I already have validators running. I want to add one more validator. How do I do that?

Navigate to,

EthPillar > Validator Client > Generate / Import Validator Keys

From there you will pick 1 of 2 options.

  • Import validator keys from offline key generation or backup

  • Add new or regenerate existing validator keys from Secret Recovery Phrase

Node Types: What is a failover staking node?

Purpose: To provide high availability, you would run TWO (or more) failover staking nodes on separate machines. Point your validator client to your two failover staking nodes.

What: A failover staking node is made up of an execution client, consensus client and mevboost.

How to: To configure for nimbus validator client, edit your validator client configuration. https://nimbus.guide/validator-client-options.html#multiple-beacon-nodes

Exposing the consensus client RPC port will also be required. You will need to adjust your firewall to allow traffic from your validator client's IP address as well.

Benefit: Running multiple failover staking nodes (or beacon nodes as nimbus refers to it) would allow you to perform maintenance or have an outage on 1 failover staking node.

Withdrawal Address: Can I have different withdraw addresses per validator or only 1 per setup?

Different withdrawal addresses per validator are possible if you run the ./deposit tool separately for each validator.

Generating Keystores: Can I generate 10 validator keystores and activate them one by one at the launchpad?

You can but it would require manual editing as you'll need to change the deposit_data json.

Migrate or Upgrade Staking Setup: How to switch to EthPillar from a V1 Staking setup or other staking tool

To migrate from a different staking setup, find your most applicable situation:

Cleanest and most problem-free option:

  • 1) Reformat Ubuntu Operating System

  • 2) Install EthPillar

  • 3) Import validator keys

Existing V1 Staking Setup: OGs and genesis stakers 🫡

Other staking automation tools or cloud hosted setups:

  • 1) Uninstall / cancel / existing tool or service provider

  • 2) Install EthPillar

  • 3) Import validator keys

To avoid slashing penalties, ensure your validator keys are deleted from existing staking setups.

☎️ Get in touch

Have questions? Chat with other home stakers on Discord or open PRs/issues on Github.

Open source source code available here: https://github.com/coincashew/EthPillar

❤️ Donations

If you'd like to support this public goods project, find us on the next Gitcoin Grants.

Our donation address is 0xCF83d0c22dd54475cC0C52721B0ef07d9756E8C0 or coincashew.eth

☑️ How to Update

Upon opening EthPillar,

  • Navigate to System Administration > Update EthPillar and then quit and relaunch.

🌟Contribute

We appreciate any help! To join in:

  • Star the project on GitHub.

  • Share the project on X or reddit. Talk about your experiences with solo staking.

  • Provide feedback on Github.

  • Submit PRs to improve the code.

🎉 Credits

Shout out to accidental-green for their pioneering work in Python validator tools, which has unintentionally ignited the inspiration and direction for this project. We are building upon their innovative foundations by forking their validator-install code. A heartfelt thanks to accidental-green for their game-changing contributions to the open-source Ethereum ecosystem!

Last updated