Skip to content

EthPillar: one-liner ethereum staking node setup tool and management TUI

License

Notifications You must be signed in to change notification settings

coincashew/EthPillar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ 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.

▢️ 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.

Already a running a Validator? EthPillar is compatible with a Coincashew V2 Staking Setup.

πŸ”₯ Features

⛓️ Ephemery Testnet Support: Quickest and easiest way run a node now with native Besu-Teku and ethstaker-deposit-cli integrations.

πŸ’§ Lido CSM Integration: Deploys in minutes and start staking via Lido's CSM with as little as 2.4 ETH.

πŸͺœ Ethdo 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 Toolbox with port checkers, peer counts, automated system benchmarking.

πŸŽ‰ 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

System Administration

Tools

Mevboost

πŸŽ‰ Speedrun Demo by Stakesaurus

Watch the demo

🐳 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

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

{% hint style="success" %} Congrats on installing a EthPillar, making nodes and home staking easier! {% endhint %}

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.

πŸ˜‚ POAP

Are you a EthPillar Enjooyer? Support this public good by purchasing a limited edition POAP!

Your EthPillar Enjoyoor's POAP

Purchase link: https://checkout.poap.xyz/169495

ETH accepted on Mainnet, Arbitrum, Base, Optimism. πŸ™

☎️ 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

{% tabs %} {% tab title="TUI Update" %} Upon opening EthPillar,

  • Navigate to System Administration > Update EthPillar and then quit and relaunch. {% endtab %}

{% tab title="Manual Update" %} From a terminal, pull the latest updates from git.

cd ~/git/ethpillar
git pull

{% endtab %} {% endtabs %}

🌟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!