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

Deneb+Cancun support #10

Merged
merged 7 commits into from
May 3, 2024
Merged

Deneb+Cancun support #10

merged 7 commits into from
May 3, 2024

Conversation

mksh
Copy link
Contributor

@mksh mksh commented Jan 17, 2024

Use Deneb/Cancun (Dencun) hardfork by default, starting from the first slot.

Update versions:

  • Geth -> 0.13.13
  • Lighthouse -> 5.0.0
  • Teku -> 24.2.0
  • Prysm -> 4.2.0
  • MEV-Boost -> 1.7

Tests:

  • CL genesis for Deneb done
  • Geth starts with Cancun fork enabled
  • Lighthouse starts with Deneb fork enabled
  • Teku starts with Deneb fork enabled
  • Deposit and exit works

In test suite, switch to offline approach in generating exit transaction, due to ethdo tool failure to work via online approach. The reason for that is lack of minimal spec support in ethdo tool (attestantio/go-eth2-client#99), which leads to failure to parse beacon state on Deneb.

@mksh mksh changed the title Deneb support Deneb+Cancun support Feb 27, 2024
@mksh mksh requested a review from a team February 27, 2024 03:56
@mksh mksh marked this pull request as ready for review February 27, 2024 03:56
@@ -116,7 +116,7 @@ RUN cd eth2-testnet-genesis && PATH="/usr/local/go/bin/:$PATH" go build

# builder and relay
FROM bitnami/minideb:${DEBIAN_RELEASE} AS ethodbuilder
ARG ETHDO_REF="v1.31.0"
ARG ETHDO_REF="5895bbfbe6484505ddf666f0f4c0e25dde3cce9b"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need Ethdo?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It triggers voluntary exit of validators in the test suite, see https://github.com/ChorusOne/eth-possim/blob/main/tests/test_pos_privatenet.py#L156

@@ -126,7 +126,7 @@ RUN echo "${GO_1_20_SHA256} /tmp/go1.20.linux-amd64.tar.gz" | sha256sum -c
RUN cd /tmp && tar -C /usr/local -xvf go1.20.linux-amd64.tar.gz

WORKDIR /usr/local/src/
RUN git clone https://github.com/wealdtech/ethdo.git && cd ethdo && git fetch origin "${ETHDO_REF}" && git checkout "${ETHDO_REF}"
RUN git clone https://github.com/ChorusOne/ethdo.git && cd ethdo && git fetch origin "${ETHDO_REF}" && git checkout "${ETHDO_REF}"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to use a fork again?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because upstream does not support Deneb, in fork the SSZ libraries are updated to the latest version that supports it to some degree

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can just create an issue/send a pr

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before that pr is merged, need to use forked version

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah sure- you've pushed one already?


# Fork version: honor EIP-7044
current_fork_version = beacon_fork_data["data"]["current_version"]
if current_fork_version >= beacon_spec["data"]["DENEB_FORK_VERSION"]:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the if for here? Shouldn’t domain of exit always be capella?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible to configure eth-possim to start from other fork, then this logic will be correct

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why would one do that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test other forks apart from Deneb

@QAston
Copy link
Contributor

QAston commented Feb 27, 2024

Looks like we're ahead of the ecosystem with this, do we need to be? Maybe this can wait until the mainlines of the dependencies catch up?

@mksh
Copy link
Contributor Author

mksh commented Feb 27, 2024

Looks like we're ahead of the ecosystem with this, do we need to be? Maybe this can wait until the mainlines of the dependencies catch up?

Not really, the exit automation needs to be tested against Deneb because the exit message structure have been changed in a way that is not forward-compatible (see https://eips.ethereum.org/EIPS/eip-7044)

@mksh mksh merged commit 484f574 into main May 3, 2024
1 check passed
@mksh
Copy link
Contributor Author

mksh commented May 3, 2024

I'm merging this, since might need new changes to support running on bare metal

@mksh mksh deleted the deneb branch May 3, 2024 02:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants