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

Outdated Ethereum event nonce fixes #2035

Merged
merged 10 commits into from
Dec 7, 2023
Merged

Conversation

sug0
Copy link
Collaborator

@sug0 sug0 commented Oct 23, 2023

Describe your changes

Fixes Ethereum event validation/state updates when more than one validator is running the chain.

Specifically, before this patchset, validators would reject block proposals containing vote extensions storing Ethereum events with an invalid (outdated) nonce. This would hinder in the best case the latency of Ethereum bridge operations, and in the worst case its liveness, since events with nonces that could be processed would be mixed with events with outdated nonces.

With these changes, we allow extensions with at least one good event to be processed, and ignore state updates from events with invalid nonces.

Indicate on which release or other PRs this topic is based on

v0.23.0

Checklist before merging to draft

  • I have added a changelog
  • Git history is in acceptable state

@sug0 sug0 added bug Something isn't working ledger ethereum-bridge labels Oct 23, 2023
sug0 added a commit that referenced this pull request Oct 23, 2023
@sug0 sug0 marked this pull request as ready for review October 23, 2023 13:31
@sug0 sug0 marked this pull request as draft October 23, 2023 15:05
@sug0 sug0 force-pushed the tiago/outdated-eth-nonces branch from c4a5e76 to 4dbc621 Compare October 23, 2023 15:18
@sug0 sug0 marked this pull request as ready for review October 23, 2023 15:18
@Fraccaman Fraccaman mentioned this pull request Oct 27, 2023
@tzemanovic tzemanovic mentioned this pull request Nov 22, 2023
tzemanovic added a commit that referenced this pull request Nov 28, 2023
* origin/tiago/outdated-eth-nonces:
  Changelog for #2035
  Test eth events with outdated nonces during ProcessProposal
  Test eth events with outdated nonces during PrepareProposal
  Test eth events with outdated nonces during CheckTx
  Test replaying eth events with outdated nonces
  Fix unit tests
  Only propose eth events with up to date nonces
  Disregard state updates from eth events with outdated nonces
  Discard eth events from oracle with invalid nonces
  Relocate eth event nonce validation
@tzemanovic tzemanovic merged commit f75f1a3 into main Dec 7, 2023
@tzemanovic tzemanovic deleted the tiago/outdated-eth-nonces branch December 7, 2023 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ethereum-bridge ledger
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants