Sedge
Sedge is a one-click node setup tool for PoS network/chain validators and nodes
written entirely in the Go programming language. Sedge takes care of the entire
on-premise full node setup based on the chosen client, using generated
docker-compose scripts based on the desired configuration.
⚙️ Installation
Dependencies
Sedge dependencies are docker
with the docker compose
plugin, but if you
don't have those installed, Sedge will show instructions to install them or
install them for you. Check the
docs for more
details.
Installation methods
Check our
installation guide
for detailed instructions on the supported methods:
- Download the binary from the release page
- Using the Homebrew package manager
- Using the Go programming language
- Build from source
Disclaimer
Downloading any binary from the internet risks downloading files that malicious,
third-party actors have injected with malware. All users should check that they
download the correct, clean binary from a reputable source.
📜 Documentation
You can check the documentation for further
details.
⚡️ Quick start
With sedge cli
you can go through the entire workflow setup:
- Generate a
docker-compose.yml
script with randomized clients selection and
.env
file
- Generate validator keystore, or import it.
- Check dependencies
- Execute the
docker-compose.yml
script (only execution and consensus nodes
will be executed by default)
- Validator client will be executed automatically after the consensus node is
synced.
You can also generate the validator(s) keystore folder using sedge keys
.
The entire process is interactive. However, Sedge also has a very customizable,
non-interactive setup without prompts.
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
Check all the options and flags with sedge --help
.
💥 Why did we start Sedge?
As people who actively deployed validators way before The Merge, we know how
hard it is to set up an Ethereum validator:
- You need to procure at least three (compatible) nodes: an execution node
(geth, nethermind, erigon, etc), a consensus node, and a validator node
(lighthouse, prysm, etc)
- You then need to execute them, connect them, monitor them, and secure the
validator keys (which includes staking 32 ETH).
- There may be several valid combinations of clients to choose for your setup,
so you need to go through each of the client's docs, evaluate it, get
instructions for it and test it. You also need to feel comfortable executing
commands in the cli, know docker, and understand basics of networking. On top
of this, there are many different settings you must read up on and consider
for your client node.
- In the case of working with the Ethereum Mainnet, you are working with real
money that can potentially be lost in the event of having downtime or being
slashed. To avoid losing real value, you must be aware of and follow best
practices on the validator setup, and correctly monitor your nodes.
- Have you heard of MEV-Boost? You most likely want always to be running the
latest version, but you also don’t have the time to understand the MEV-Boost
architecture ins and outs or how to implement it into your environment
successfully.
Enter Sedge
We want Sedge to take care of all of the above for you. With just a few clicks
or steps, Sedge can create an entire Ethereum staking architecture that supports
client diversity and Ethereum's latest features, while being completely free and
open source. We want Sedge to save you from making costly mistakes in this
complex setup; along with hours or days of research, reading and testing. We
want you to be able to stake easily with or without blockchain knowledge by
giving you the tools to help this amazing community (and earn some good money of
course 😉).
We want to share our knowledge in this topic and create something that allows
everyone to easily and safely set up lots of diverse validators.
We don't want to stop at Ethereum. We also want to help stakers of other PoS
networks/chains, so if your favourite chain is not here, you are more than
welcome to contribute!
🔥 What can you do with Sedge today?
- Select an execution, consensus and validator client node (manually or
automatically) and generate a
docker-compose.yml
script with
production-tested configurations to run the setup you want.
- Set up only an execution, consensus, validator, or mev-boost instance.
- Don't remember
docker compose
commands or flags for your setup? Check docker
logs of the running services with sedge logs
, and shut them down with
sedge down
- Generate the keystore folder with
sedge keys
using our heavily tested own
code.
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.
If you are familiar with docker
, docker compose
, and the validator setup,
then you can use sedge cli
or sedge generate
to create a base docker-compose
script with the recommended settings and then edit the script as much as you
want. It is a lot more easier than doing everything from scratch!
Although Sedge supports several clients, some settings may not work if you use
clients versions different from the default ones. Please let us know about any
issues you encounter!
Disclaimer
While Sedge assists in installing the validator, it is not designed to register
or maintain it. Users are solely responsible for ensuring that they monitor and
maintain the validator as required, so that they do not incur penalties and/or
financial losses. This includes promptly updating the tool to ensure the latest
stable releases of clients are used.
Users acknowledge that no warranty is being made of a successful installation.
Sedge is a tool and it ultimately depends on you to use it correctly and follow
all the best practice guidance, as found in this README and documentation.
Supported networks and clients
Mainnet
Execution |
Consensus |
Validator |
Geth |
Lighthouse |
Lighthouse |
Nethermind |
Lodestar |
Lodestar |
Erigon |
Prysm |
Prysm |
Besu |
Teku |
Teku |
Sepolia
Execution |
Consensus |
Validator |
Geth |
Lighthouse |
Lighthouse |
Nethermind |
Lodestar |
Lodestar |
Erigon |
Prysm |
Prysm |
Besu |
Teku |
Teku |
Goerli
Execution |
Consensus |
Validator |
Geth |
Lighthouse |
Lighthouse |
Nethermind |
Lodestar |
Lodestar |
Erigon |
Prysm |
Prysm |
Besu |
Teku |
Teku |
Holesky
Execution |
Consensus |
Validator |
Geth |
Lighthouse |
Lighthouse |
Nethermind |
Lodestar |
Lodestar |
Erigon |
Teku |
Teku |
Besu |
Prysm |
Prysm |
Gnosis
Execution |
Consensus |
Validator |
Nethermind |
Lighthouse |
Lighthouse |
Erigon |
Lodestar |
Lodestar |
|
Teku |
Teku |
Chiado (Gnosis testnet)
Execution |
Consensus |
Validator |
Nethermind |
Lighthouse |
Lighthouse |
Erigon (soon) |
Lodestar |
Lodestar |
|
Teku |
Teku |
CL clients with Mev-Boost
Client |
Mev-Boost |
Networks |
Lighthouse |
yes |
Mainnet, Goerli, Sepolia |
Lodestar |
yes |
Mainnet, Goerli, Sepolia |
Prysm |
yes |
Mainnet, Goerli, Sepolia |
Teku |
yes |
Mainnet, Goerli, Sepolia |
Supported Linux flavours for dependency installation
OS |
Versions |
Ubuntu |
22.04, 20.04 |
Debian |
11,10,9,8 |
Fedora |
35,34 |
CentOS |
8 |
Arch |
- |
Amazon Linux 2 |
- |
Alpine |
3.15,3.14,3.14.3 |
✅ Roadmap
The following roadmap covers the main features and ideas we want to implement
but only covers some of what we are planning for this tool. Stay in touch if you
are interested.
Version 0.1
- Generate
docker-compose
scripts and .env
files for selected clients
with a cli tool
- Generate keystore folder with the cli
- Test coverage (unit tests)
- Integrate Kiln network
- Integrate MEV-Boost as an option
- Integrate Ropsten network
Version 0.2
- Integrate Goerli/Prater network
- Integrate Sepolia network
- Documentation with examples
Version 0.3
- Integrate Gnosis network
- Prepare for the Merge
Version 0.4
- Create and handle keystores on our own instead of using
staking-deposit-cli
- Improve validator testing
- Bug fixes
- Deprecate Kiln, Ropsten, Denver networks
- Improve support for chiado network (Gnosis testnet)
Version 0.5
- Support for Gnosis Merge
- Bug fixes
Version 0.6
- Besu and Erigon support
- Windows support
- Bug fixes
Version 1.0
- Full Ethereum PoS support with MEV-Boost
- Set up and run only one node (execution/consensus/validator)
- Keystore generation
- Slashing protection
Version 1.X (Current)
- Support Erigon on Gnosis
- Include monitoring tool for alerting, tracking validator balance, and
tracking sync progress and status of nodes
- More tests!!!
- Support for Nimbus client
💪 Want to contribute?
Please check our
Contributing Guidelines,
Code of Conduct and our issues. In case you want to report or suggest something
(any help is welcome), please file an issue first so that the main team is aware
and can discuss it.
If you know of any good tricks for validator setup that other people could also
use well, please consider adding it to Sedge. Your efforts will be greatly
appreciated by the community.
⚠️ License
Sedge is a Nethermind free and open-source software licensed under the
Apache 2.0 License.