feat(l1): support dual discovery protocols (discv4 + discv5) with shared PeerTable#5962
Merged
Conversation
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> **Checklist** - [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR includes breaking changes to the `Store` requiring a re-sync. Closes #5574 and #5575. Co-authored-by: Esteban Dimitroff Hodi <esteban.dimitroff@lambdaclass.com>
**Checklist** - [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR includes breaking changes to the `Store` requiring a re-sync. Closes #issue_number
**Motivation** I saw current new_nonce impl allocated a vector when it can just return a fixed size array. **Description** Removes the needless vec **Checklist** - [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR includes breaking changes to the `Store` requiring a re-sync.
**Motivation** In order to start merging discv5 code into main, to avoid having a huge PR at the end of the development, we should create a feature flag disabled by default. Closes #5639
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> **Checklist** - [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR includes breaking changes to the `Store` requiring a re-sync.
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> **Checklist** - [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR includes breaking changes to the `Store` requiring a re-sync. Closes #5570 Closes #5571
… discv5-server-external-ip-detection
ilitteri
approved these changes
Feb 25, 2026
lakshya-sky
pushed a commit
to lakshya-sky/ethrex
that referenced
this pull request
Mar 10, 2026
…red PeerTable (lambdaclass#5962) **Motivation** Enable running both discv4 and discv5 discovery protocols simultaneously on the same UDP port, allowing gradual migration to discv5 while maintaining compatibility with discv4-only peers. **Description** - Add discovery multiplexer GenServer that routes UDP packets to the appropriate protocol handler based on packet structure (discv4 packets have hash at bytes 0-32 matching keccak256 of remaining bytes) - Create unified peer_table.rs with support for contacts reachable via both protocols (is_discv4/is_discv5 flags) - Add CLI flags `--discovery.discv4` and `--discovery.discv5` to enable/disable each protocol independently - Add protocol field to all log lines in both discovery servers for easier debugging - Remove protocol-specific peer_table.rs files (now unified) Closes lambdaclass#5884 --------- Co-authored-by: MrAzteca <azteca1998@users.noreply.github.com> Co-authored-by: Edgar <git@edgl.dev> Co-authored-by: Lucas Fiegl <iovoid@users.noreply.github.com> Co-authored-by: Ivan Litteri <67517699+ilitteri@users.noreply.github.com> Co-authored-by: Pablo Deymonnaz <pdeymon@fi.uba.ar>
This file contains hidden or 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
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.
Motivation
Enable running both discv4 and discv5 discovery protocols simultaneously on the same UDP port, allowing gradual migration to discv5 while maintaining compatibility with discv4-only peers.
Description
--discovery.discv4and--discovery.discv5to enable/disable each protocol independentlyCloses #5884