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:
- Download and install Sedge on a new brand machine
- Generate validator keystore
- Run Sedge's main workflow with default configuration values and use it to install dependencies (only for Linux)
- Generate a
docker-compose.yml
script with a randomized set of execution, consensus and validator clients - 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
- wget
curl -L https://github.com/NethermindEth/sedge/releases/download/v1.7.2/sedge-v1.7.2-linux-amd64 --output sedge
wget https://github.com/NethermindEth/sedge/releases/download/v1.7.2/sedge-v1.7.2-linux-amd64 -O sedge
The -O
flag is to rename binary as sedge
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.
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.
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.
sedge generate
sedge keys
sedge import-key
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
:
sedge generate full-node
will generate adocker-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.sedge generate op-full-node
will generate adocker-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.sedge generate execution
will generate adocker-compose.yml
script and a.env
file with a randomized, if not set, execution client.sedge generate consensus
will generate adocker-compose.yml
script and a.env
file with a randomized, if not set, consensus client.sedge generate validator
will generate adocker-compose.yml
script and a.env
file with a randomized, if not set, validator client.sedge generate mev-boost
will generate adocker-compose.yml
script and a.env
file with a mev-boost client.
You can learn more about sedge generate
if you check here in our documentation.
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.
You can update your client's versions using the following commands if the clients release any version:
- Run
docker compose -f /path/to/docker-compose.yml pull
to update the images. - 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
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.
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
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
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.