Skip to main content

Complete quickstart guide

Sedge is a one-click setup tool that you can use to set up and run a validator on Ethereum easily and without any prior knowledge. In this guide, you will go through every step in the validator setup using Sedge, along with detailed explanations for beginners.

This is a beginner-friendly guide. Familiarity with the command line is expected, but otherwise, this guide makes no assumptions about your technical skills or prior knowledge.

Overview

We will walk through the following steps:

  1. Download and install Sedge on a new brand machine
  2. Generate validator keystore
  3. Run Sedge's main workflow with default configuration values and use it to install dependencies (only for Linux)
  4. Generate a docker-compose.yml script with a randomized set of execution, consensus and validator clients
  5. Run the docker-compose.yml script

The hardware specifications of the machine we are going to use are:

  • 4 CPU cores
  • 16 GB RAM
  • 1 TB SSD
  • Ubuntu 22.04/amd64

1. Download and install Sedge on a new brand Linux machine

First open a console in the Home directory. Then use curl or wget to download a binary from the releases page (we will be using the 1.0.0 version). Check the installation guide for more information or if you want to use another installation method:

curl -L https://github.com/NethermindEth/sedge/releases/download/v1.7.2/sedge-v1.7.2-linux-amd64 --output sedge
note

The -O flag is to rename binary as sedge

info

This guide assumes your Terminal session is pointing all the time to the folder in which you downloaded Sedge. You can check the directory pointed by your Terminal session if you execute pwd.

You can run ls to print the files and directories on the current directory and check the binary was downloaded correctly.

Set binary as executable executing chmod +x sedge. You shouldn't see any output or logs if the command was successful

(Optional) Run Sedge ./sedge --help to check if the executable is ok. The . represents the current directory (where your terminal session is pointing to).

2. Run Sedge's main workflow with default configuration values

You can run Sedge's main workflow in two ways:

  • Interactive mode
    • sedge cli is a fully interactive command that will guide you through the process covering all the steps needed for the setup.
  • Non-interactive mode
    • The non-interactive mode is useful if you want to run Sedge in a CI/CD pipeline or if you are a more advanced user, and you want to run Sedge with a predefined configuration.
tip

If you are a new user, we recommend you to use the interactive mode.

2.1 One-click interactive setup

The sedge cli command will guide you through the process covering all the steps needed for the setup. It will be fully interactive and will ask you for the required information. According to your selection, it will generate a docker-compose.yml script and a .env with the desired configuration.

info

You can learn more about sedge cli if you check here in our documentation.

2.2 Non-interactive setup

If you want to run the non-interactive mode, you will need to run only four commands (two if you are not running a validator and you don't need the validator keystore), and provide the set of arguments needed for each command.

  1. sedge generate
  2. sedge keys
  3. sedge import-key
  4. sedge run
2.2.1 Generation

Running the following sedge generate command will generate a docker-compose.yml script and a .env file with a randomized set of execution, consensus and validator clients unless set.

sedge generate full-node

You have other options to run sedge generate:

  1. sedge generate full-node will generate a docker-compose.yml script and a .env file with a randomized, if not set, execution, consensus, and validator clients, with mev-boost if applicable unless explicitly not set. Validator node can also be omitted if you use --no-validator flag.
  2. sedge generate op-full-node will generate a docker-compose.yml script and a .env file with a randomized, if not set, execution and consensus clients, in addition to L2 execution and op-node for Optimism.
  3. sedge generate execution will generate a docker-compose.yml script and a .env file with a randomized, if not set, execution client.
  4. sedge generate consensus will generate a docker-compose.yml script and a .env file with a randomized, if not set, consensus client.
  5. sedge generate validator will generate a docker-compose.yml script and a .env file with a randomized, if not set, validator client.
  6. sedge generate mev-boost will generate a docker-compose.yml script and a .env file with a mev-boost client.
info

You can learn more about sedge generate if you check here in our documentation.

info

If you want to use the client's latest version and avoid using the fixed version tested by us, you can generate the setup using the following command: sedge generate full-node --latest. If you want to learn more, you can check here in our documentation.

The --latest flag can be used for the full-node, execution, consensus and validator commands.

info

You can update your client's versions using the following commands if the clients release any version:

  1. Run docker compose -f /path/to/docker-compose.yml pull to update the images.
  2. Run docker compose -f /path/to/docker-compose.yml up -d to restart the containers.
2.2.2 Generate validator keystore

Running the sedge keys command will generate a keystore folder with validator keys inside. This keystore contains a deposit_data.json that can be used to register the validator.

sedge keys
Disclaimer

Users acknowledge that generating the keystore for any network is an unaudited feature of Sedge. Nethermind provides this feature on an ‘as is’ basis and makes no warranties regarding its proper functioning. The use of this feature is at the user’s own risk - Nethermind excludes all liability for any malfunction or loss of money that may occur as the result of an unexpected behavior during the keystore generation.

info

You can learn more about sedge keys if you check here in our documentation, and more about key management .

2.2.3 Import Keys

Running the sedge import-key command will import the keys that you generated in the previous step.

sedge import-key
info

You can learn more about sedge import-key if you check here in our documentation, and more about key management .

2.2.4 Running

Running the sedge run command will run the docker-compose.yml script generated by the sedge generate command.

sedge run
info

You can learn more about sedge run if you check here in our documentation.

Conclusions

Congratulations, you just installed and executed your first validator (and Ethereum full node) using Sedge. The only thing left is making the ETH deposit using the deposit_data.json you just generated and wait for the validator to be registered in the network.