Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lido Community Staking integration #1754

Merged
merged 90 commits into from
Sep 17, 2024
Merged

Conversation

vgorkavenko
Copy link
Contributor

@vgorkavenko vgorkavenko commented Feb 16, 2024

Description

The integration includes a new kind of deployment - Lido-compatible node:

  • SSV and Obol nodes for Simple DVT Staking Module integration
  • Prepare code for Community Staking Module integration when it is developed

General

  • FEE_RECIPIENT is Lido Execution Layer Rewards Vault contract
  • MEV_RELAYS consists of values from Lido MEV Boost Relay Allowed List contract
  • (In case of new keys generation) WITHDRAWAL_CREDENTIALS is Lido Withdrawal Vault contract

SSV node for Simple DVT

Integration uses the current implementation that already exists in eth-docker

Obol node for Simple DVT

There was no integration between Obol and eth-docker before, so this is a new option.
The integration contains:

  • ENR generation
  • Checking cluster definition
  • DKG ceremony running

@vgorkavenko vgorkavenko marked this pull request as draft February 16, 2024 11:34
@yorickdowne
Copy link
Contributor

Couple preliminary comments while you continue to work on this PR

  • Compose V1 is no longer supported. Remove version and make sure HOST_IP/SHARE_IP syntax is adjusted
  • ipv6.yml is gone, this is now handled by a statement in each yml. Please adjust accordingly.
  • I vastly prefer named volumes over using bind mounts. If .charon can be replaced with a named volume let's; if not please explain why
  • I have not dug into the Dockerfile yet for this stuff, just a quick note that I prefer using non-root users inside containers and that I like giving the user the option to source compile as desired, with Dockerfile.binary and Dockerfile.source

@vgorkavenko
Copy link
Contributor Author

vgorkavenko commented Feb 21, 2024

@yorickdowne thank you for your comments!

  • Compose V1 is no longer supported. Remove version and make sure HOST_IP/SHARE_IP syntax is adjusted
  • ipv6.yml is gone, this is now handled by a statement in each yml. Please adjust accordingly.

Acked 👀

  • I vastly prefer named volumes over using bind mounts. If .charon can be replaced with a named volume let's; if not please explain why

This directory only stores cluster info such as validators_keys and cluster-lock\definition, similar to how deposit-cli does it. I'm not sure if we should put it in a named volume, I'd like to keep the expected behavior here. Will think about use .eth dir instead of .charon to use eth-docker's keys importing

I have not dug into the Dockerfile yet for this stuff, just a quick note that I prefer using non-root users inside containers and that I like giving the user the option to source compile as desired, with Dockerfile.binary and Dockerfile.source

I would be very grateful if you could write which dockerfiles you mean exactly 🙏 I'd look into what we can do here

@vgorkavenko vgorkavenko marked this pull request as ready for review August 14, 2024 13:49
@vgorkavenko
Copy link
Contributor Author

@yorickdowne Hello there!
It looks like now the fork is just trying to keep up with upstream, no new features from our side (for a while, I guess).
This PR is ready for review 🚀

cc: @dgusakov

@dgusakov
Copy link
Contributor

Thanks for preparing it @vgorkavenko!

From my side, I can add that there is a potential to create vanilla Obol integration based on the implemented Lido<>Obol integration. But this is definitely a separate topic.

@yorickdowne your comment and review are very welcome! CSM is expected to go live on the mainnet in Nov 2024. It is a good time to merge Lido fork to upstream now.

README.md Outdated Show resolved Hide resolved
default.env Outdated Show resolved Hide resolved
default.env Outdated Show resolved Hide resolved
lido-deposit-cli.yml Outdated Show resolved Hide resolved
vgorkavenko and others added 4 commits September 2, 2024 22:21
* fix: remove env vars

* fix: remove unused operator-sample

* feat: reuse deposit-cli

* fix: remove unused file from gitignore

* fix: lidofinance -> eth-educators

* fix: add `--uid` flag for keys creation

* fix: message

* fix: MEV_BOOST should be enabled for Lido configs

* fix: reuse attention message

* fix: add `OBOL_CL_NODE` and `OBOL_EL_NODE` env vars

* fix: misleading msg

* fix: add env vars to `ALL_VARS`

* chore: bump `ENV_VERSION`
# Conflicts:
#	ethd
#	grafana/provision.sh
#	prysm-vc-only.yml
#	prysm.yml
@yorickdowne
Copy link
Contributor

I think I can merge this, and then iterate on it. I'm not sure .charon and validator_ejector should be where they are, arguably that fits under .eth, at least the ejection stuff. I am also not sure what .eth_backup does.

Then there's the attestation VC parameters for Obol, which could be detected by presence of Obol, instead of having an .env variable for it.

And, those are all minor quibbles and can be tackled later, if and as desired.

Great work, and thank you!

@yorickdowne yorickdowne merged commit 83feff3 into eth-educators:main Sep 17, 2024
16 of 17 checks passed
Copy link

gitpoap-bot bot commented Sep 17, 2024

Congrats, your important contribution to this open-source project has earned you a GitPOAP!

GitPOAP: 2024 eth-docker Contributor:

GitPOAP: 2024 eth-docker Contributor GitPOAP Badge

Head to gitpoap.io & connect your GitHub account to mint!

Learn more about GitPOAPs here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants