Grant Proposal - Integrating Nethermind Sedge with Lido CSM

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.
  • 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:
    • Metrics and data will be accessible through CLI and Grafana dashboards
  • 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

5 Likes

Hello Sedge team! I’m pleased to inform you that the LEGO committee voted to approve your CSM integration grant proposal.

5 Likes

GM @zerocloo, the 50% upfront part of the grant is transferred, looking forward for this integration!

2 Likes

Hi @Izzy and @Alex_L,
Amazing, thank you for your consideration and acceptance of this proposal! I also look forward to sharing what we are able to build.

2 Likes

Dear Lido community,

It is with great joy we announce the v1.6.0 release of Sedge (Release v1.6.0 · NethermindEth/sedge · GitHub), in fulfillment of the requirements for Lido CSM’s Tier 1 integration!

Features in this release include:

  • Generating Validator Keys and Deposit Data for CSM validators, as well as setting up the full node: Allowing users to generate validator keys and set up their full nodes with ease.
  • Display of NO keys, queue info, NO bond, rewards info: This can be done both through the command line via the lido-status command, or through the preconfigured Grafana dashboards we provide with the integration.
  • Alerting of Penalties and Exit requests through Grafana, with step-by-step instructions provided in the documentation to help users unfamiliar with the setup of such tools.
  • Lido Exporter: last but not least, we provide an independent utility container designed to export metrics from Lido’s Community Staking Module (CSM) smart contracts to Prometheus. We hope this tool can be of independent interest to builders interested in setting up their own integration workflows!

We also addressed support for Nimbus validator and consensus clients, keeping in line with the interests of client diversity for the CSM module.

You can find the relevant docs here:

We are open to your comments or feedback!

3 Likes