On behalf of Nethermind, the proposal below is a response Lido’s request for proposal for CSM integration.
A proposal to integrate and offer Lido CSM in Nethermind’s validator setup tool - Sedge.
TL;DR
This is a proposal to fund Nethermind to further develop Sedge — a one-click setup tool for PoS network/chain validators and nodes — to integrate with Lido’s Community Staking Module (CSM) as a tier 1 partner and allow onboarding of new permissionless operators in a streamlined and user-friendly fashion. In addition to Integrating with the CSM, Nethermind will also fund and uplift Sedge to support 0x01 withdrawal and implement compatibility with additional CL Clients to further promote Client Diversity.
This project is estimated to take 15 weeks, and its cost — 65,000.00 DAI — will be covered by Lido DAO. An additional 4 weeks will be required for 0x01 withdrawals and setup of additional CL Client support; this will be funded by Nethermind.
Proposers
Jorge Arce, Miguel Tenorio, and Cameron Loo on behalf of Nethermind.
About Nethermind
Nethermind is a blockchain research and software engineering company empowering enterprises and developers worldwide to work with and build on decentralized systems. Our work touches every part of the blockchain ecosystem, from fundamental cryptography research through security to application-layer protocol development. Nethermind is a core contributor to the development of Ethereum, and we are active builders of the Starknet ecosystem.
We provide strategic support to our institutional and enterprise partners in blockchain, digital assets, and DeFi. Our services cover every stage of the research and development process, from ideation to execution, helping our clients excel in their respective fields.
Nethermind has had the opportunity to collaborate with Lido DAO in the past, with excellent results. Our research team is working on a multi-phase project to design a mechanism for decentralized maintenance of Lido’s operator set. The first two phases of this project had stellar reception by DAO contributors and can be found here: Phase 1, Phase 2.
Sedge overview
As an Ethereum Node Setup Wizard, Sedge can be extended to support Lido’s Community Staking Module (CSM) initiative, which aims to decentralize the protocol further and allow solo/small stakers to be onboarded. Currently, Sedge is a CLI application supporting a variety of execution (Geth, Nethermind, Besu, Erigon) and consensus (Prysm, Lighthouse, Teku, Lodestar) clients. Sedge has two primary user flows: a one-click interactive setup mode where the user is guided through a series of prompts (selects, prompts, confirms) to complete the configuration of the setup and a non-interactive setup composed by a sequence of commands the user needs to execute (useful for programmatic usage).
Current features list
The following list shows Sedge’s main features:
- Install and run:
- A single client
- A full-node with/without a validator
- MEV-Boost support
- Generating new validator keys directly via Sedge
- Currently, this feature only supports the old
0x00
BLS-key credentials for withdrawal credentials.
- Currently, this feature only supports the old
- Gnosis network support
- Generates docker-compose scripts for the setup
- Sedge can install its dependencies
- Linux, macOS, and Windows support
Sedge usage and traffic
Sedge has a steady user base with an active QA discord channel. We plan to ramp up marketing efforts in upcoming events with several talks and presentations regarding Sedge, especially after this project is completed. When writing this, Sedge has 121 stars in the Github repository. We have been tracking Sedge usage mainly through Github’s traffic and binaries’ downloads.
Github (23 September - 6 October 2023)
Binaries download
Sedge binaries have been downloaded 2795 times in the entire project lifetime. Below we can see the downloads of the last 2 releases. (Source)
Project Objective and Summary
Setting up an Ethereum Validator is a lengthy and technically challenging endeavor. This project aims to further develop Sedge into a tool that can streamline and facilitate the onboarding of permissionless stakers to the Lido protocol through an intuitive interface.
In addition to integrating and interfacing with the Lido CSM, Nethermind will fund and implement support for 0x01 withdrawal credentials and support of the Nimbus CL Client.
The project will be completed within 19 weeks from the date of the agreement, and will cover the following scope:
Scope to be funded and delivered by Nethermind
Nethermind will deliver the following features and updates to Sedge over the span of 4 weeks:
- Support for the Nimbus CL client (a must for client diversity).
- Support for the in-app creation of validators with 0x01 withdrawal credentials.
Scope for Integration with Lido
Nethermind will deliver the following features and updates to Sedge over the span of 15 weeks:
-
Integration required to interface Sedge with the CSM as specified in “Community Staking Module | Integrations interfaces” for Tier 0.
Tier 0 integration must be capable of:
- Setting up Ethereum validation tools (such as CL and EL nodes, validator client, and MEV-boost)
- Setting Lido feeRecipient in the CL node
- Generating correct deposit data for subsequent uploading into CSM:
- Validator pubkey
- Lido withdrawal credentials
- 32-ETH amount
- Configuring the MEV-boost client to use relays from MevBoostRelayAllowedList
-
Development and integration required to display NO statistics and monitoring as outlined in “Community Staking Module | Integrations interfaces” for Tier 1.
- Tier 1 integration must be capable of:
- Displaying NO keys and queue info: available to deposit (in the queue), stuck, refunded, exited, deposited
- Displaying NO bond and rewards info: total amount, amount lower and higher than required, non-claimed rewards
- Alerting of Penalties and Exit requests
- Metrics and data will be accessible through CLI and Grafana dashboards
- Tier 1 integration must be capable of:
-
Additional “Lido Node Operator Flow” which takes the user through the onboarding process for Lido as opposed to the regular flow of setting up a personal validator. This will require refactoring.
- Sedge currently has two primary user flows: a one-click interactive setup mode where the user is guided through a series of prompts (selects, prompts, confirms) to complete the configuration of the setup and a non-interactive setup composed by a sequence of commands the user needs to execute (useful for programmatic usage).
- The new “Lido Node Operator Flow” will update Sedge to first prompt the user whether they intend to set up a Lido CSM node or a personal validator (all through Sedge’s command-line interface). Once the user confirms this, they will have the option to choose from the 2 already established flows on how they want to set up the validator.
Effort Breakdown
Maintenance and Support
As part of the partnership, Nethermind will provide the following maintenance and support for the lifespan of Sedge.
- Community Support - Nethermind will continue to provide technical support to Sedge users through the Discord channel.
- Compatibility with the latest CL and EL Clients - Nethermind will update Sedge to ensure it is compatible with the latest CL and EL Clients.
- Bugs and Defects - Nethermind will actively triage, assess, and deliver fixes for issues found in Sedge.
- Changes by Lido impacting Sedge - Minor changes should be supported without issue —however, these changes will need to be assessed on a case-by-case basis.
Funding and Budget
The Integration with Lido will be funded by Lido DAO. The DAO will pay Nethermind a total of 65,000 DAI, of which 32,500 DAI will be paid upfront and the remaining 32,500 on delivery.
At the end of the project, the LEGO council will decide whether the features developed on Sedge meet the agreed requirements and, if that is the case, proceed with the payment.
The payment will be made to address eth:0x237DeE529A47750bEcdFa8A59a1D766e3e7B5F91