-
Notifications
You must be signed in to change notification settings - Fork 239
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
use correct signing fork after Deneb when using deposits exit
command
#5954
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In #5120, the `nimbus_beacon_node deposits exit` command was updated for compatibility with EIP-7044, which forces signatures to be made using `CAPELLA_FORK_VERSION` regardless of the `VoluntaryExit`'s `epoch` after Deneb is activated. This update had a regression, as an older mechanism was used to fetch `RuntimeConfig`, resulting in an encoding issue (#5362). This was then fixed in #5370, restoring general `deposits exit` functionality. However, the logic from #5120 has another flaw, as it uses an incorrect fork version based on the pre-Deneb logic even after Deneb and EIP-7044 are activated. Fix this now, so that `deposits exit` continues to work correctly after Deneb activates.
arnetheduck
approved these changes
Feb 25, 2024
etan-status
added a commit
that referenced
this pull request
Feb 25, 2024
When trying to sign `VoluntaryExit` via keymanager API, the logic is not yet aware of EIP-7044 (part of Deneb). This patch adds missing EIP-7044 support to the keymanager API as well. As part of this, the VC needs to become aware about: - `CAPELLA_FORK_VERSION`: To correctly form the EIP-7044 signing domain. The fork schedule does not indicate which of the results, if any, corresponds to Capella. - `CAPELLA_FORK_EPOCH`: To detect whether Capella was scheduled. If a BN does not have it in its config while other BNs have it, this leads to a log if Capella has not activated yet, or marks the BN as incompatible if Capella already activated. - `DENEB_FORK_EPOCH`: To check whether EIP-7044 logic should be used. Related PRs: - #5120 added support for processing EIP-7044 `VoluntaryExit` messages as part of the state transition functions (tested by EF spec tests). - #5953 synced the support from #5120 to gossip validation. - #5954 added support to the `nimbus_beacon_node deposits exit` command. - #5956 contains an alternative generic version of `VCForkConfig`.
arnetheduck
pushed a commit
that referenced
this pull request
Feb 26, 2024
* add EIP-7044 support to keymanager API When trying to sign `VoluntaryExit` via keymanager API, the logic is not yet aware of EIP-7044 (part of Deneb). This patch adds missing EIP-7044 support to the keymanager API as well. As part of this, the VC needs to become aware about: - `CAPELLA_FORK_VERSION`: To correctly form the EIP-7044 signing domain. The fork schedule does not indicate which of the results, if any, corresponds to Capella. - `CAPELLA_FORK_EPOCH`: To detect whether Capella was scheduled. If a BN does not have it in its config while other BNs have it, this leads to a log if Capella has not activated yet, or marks the BN as incompatible if Capella already activated. - `DENEB_FORK_EPOCH`: To check whether EIP-7044 logic should be used. Related PRs: - #5120 added support for processing EIP-7044 `VoluntaryExit` messages as part of the state transition functions (tested by EF spec tests). - #5953 synced the support from #5120 to gossip validation. - #5954 added support to the `nimbus_beacon_node deposits exit` command. - #5956 contains an alternative generic version of `VCForkConfig`. * address reviewer feedback: letter case, module location, double lookup --------- Co-authored-by: cheatfate <eugene.kabanov@status.im> * Update beacon_chain/rpc/rest_constants.nim * move `VCRuntimeConfig` back to `rest_types` --------- Co-authored-by: cheatfate <eugene.kabanov@status.im> * fix `getForkVersion` helper --------- Co-authored-by: cheatfate <eugene.kabanov@status.im>
zah
pushed a commit
that referenced
this pull request
Feb 27, 2024
…nd (#5954) In #5120, the `nimbus_beacon_node deposits exit` command was updated for compatibility with EIP-7044, which forces signatures to be made using `CAPELLA_FORK_VERSION` regardless of the `VoluntaryExit`'s `epoch` after Deneb is activated. This update had a regression, as an older mechanism was used to fetch `RuntimeConfig`, resulting in an encoding issue (#5362). This was then fixed in #5370, restoring general `deposits exit` functionality. However, the logic from #5120 has another flaw, as it uses an incorrect fork version based on the pre-Deneb logic even after Deneb and EIP-7044 are activated. Fix this now, so that `deposits exit` continues to work correctly after Deneb activates.
zah
pushed a commit
that referenced
this pull request
Feb 27, 2024
* add EIP-7044 support to keymanager API When trying to sign `VoluntaryExit` via keymanager API, the logic is not yet aware of EIP-7044 (part of Deneb). This patch adds missing EIP-7044 support to the keymanager API as well. As part of this, the VC needs to become aware about: - `CAPELLA_FORK_VERSION`: To correctly form the EIP-7044 signing domain. The fork schedule does not indicate which of the results, if any, corresponds to Capella. - `CAPELLA_FORK_EPOCH`: To detect whether Capella was scheduled. If a BN does not have it in its config while other BNs have it, this leads to a log if Capella has not activated yet, or marks the BN as incompatible if Capella already activated. - `DENEB_FORK_EPOCH`: To check whether EIP-7044 logic should be used. Related PRs: - #5120 added support for processing EIP-7044 `VoluntaryExit` messages as part of the state transition functions (tested by EF spec tests). - #5953 synced the support from #5120 to gossip validation. - #5954 added support to the `nimbus_beacon_node deposits exit` command. - #5956 contains an alternative generic version of `VCForkConfig`. * address reviewer feedback: letter case, module location, double lookup --------- Co-authored-by: cheatfate <eugene.kabanov@status.im> * Update beacon_chain/rpc/rest_constants.nim * move `VCRuntimeConfig` back to `rest_types` --------- Co-authored-by: cheatfate <eugene.kabanov@status.im> * fix `getForkVersion` helper --------- Co-authored-by: cheatfate <eugene.kabanov@status.im>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #5120, the
nimbus_beacon_node deposits exit
command was updated for compatibility with EIP-7044, which forces signatures to be made usingCAPELLA_FORK_VERSION
regardless of theVoluntaryExit
'sepoch
after Deneb is activated.This update had a regression, as an older mechanism was used to fetch
RuntimeConfig
, resulting in an encoding issue (#5362). This was then fixed in #5370, restoring generaldeposits exit
functionality.However, the logic from #5120 has another flaw, as it uses an incorrect fork version based on the pre-Deneb logic even after Deneb and EIP-7044 are activated. Fix this now, so that
deposits exit
continues to work correctly after Deneb activates.