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

discv5 support #1383

Closed
7 tasks done
rkrasiuk opened this issue Feb 15, 2023 · 7 comments
Closed
7 tasks done

discv5 support #1383

rkrasiuk opened this issue Feb 15, 2023 · 7 comments
Assignees
Labels
A-discv5 Related to discv5 discovery C-enhancement New feature or request M-prevent-stale Prevents old inactive issues/PRs from being closed due to inactivity

Comments

@rkrasiuk
Copy link
Member

rkrasiuk commented Feb 15, 2023

Describe the feature

Integrate https://github.com/sigp/discv5.

Optionally, allow downstreaming invalid messages to other protocol (discv4).
Ref ethereum/go-ethereum#26699

Additional context

TODO

  • add Stream wrapper type for the discv5 service that emits events, similar to :
    /// The converted discovered [Enr] object
    #[derive(Debug, Clone, Eq, PartialEq)]
    pub struct DnsNodeRecordUpdate {
    /// Discovered node and it's addresses
    pub node_record: NodeRecord,
    /// The forkid of the node, if present in the ENR
    pub fork_id: Option<ForkId>,
    }
  • See how Discovery uses the discovery services:
    /// Handler to interact with the Discovery v4 service
    discv4: Option<Discv4>,
    /// All KAD table updates from the discv4 service.
    discv4_updates: Option<ReceiverStream<DiscoveryUpdate>>,
    /// The handle to the spawned discv4 service
    _discv4_service: Option<JoinHandle<()>>,

The way this works is:

  • Networkconfig gets discv5 config
  • Discovery::new gets the config and spawns service that should emit discovered entries back to Discovery

This discv5 support can be separate crate

Tasks

  1. A-devp2p A-discv5 A-networking
  2. A-discv5 A-networking
  3. A-networking C-enhancement
  4. A-observability
  5. A-observability
@rkrasiuk rkrasiuk added C-enhancement New feature or request A-discv5 Related to discv5 discovery labels Feb 15, 2023
@GrapeBaBa
Copy link
Contributor

can I try this?

@PatStiles
Copy link
Contributor

I am game to take this on

@github-actions
Copy link
Contributor

This issue is stale because it has been open for 21 days with no activity.

@github-actions github-actions bot added the S-stale This issue/PR is stale and will close with no further activity label Sep 11, 2023
@github-actions
Copy link
Contributor

This issue was closed because it has been inactive for 7 days since being marked as stale.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 19, 2023
@mattsse mattsse added M-prevent-stale Prevents old inactive issues/PRs from being closed due to inactivity and removed S-stale This issue/PR is stale and will close with no further activity labels Sep 19, 2023
@mattsse mattsse reopened this Sep 19, 2023
@mattsse mattsse added the D-good-first-issue Nice and easy! A great choice to get started label Sep 19, 2023
@yash-atreya
Copy link
Contributor

@mattsse I can take this

@yash-atreya yash-atreya removed their assignment Jan 9, 2024
@emhane emhane self-assigned this Jan 20, 2024
This was referenced Jan 21, 2024
@emhane
Copy link
Member

emhane commented Jan 27, 2024

is the fork_id field of the enr how DnsDiscoveryService knows that an enr is EL and not CL? or how else is that being done?

@emhane emhane removed the D-good-first-issue Nice and easy! A great choice to get started label Mar 30, 2024
@emhane
Copy link
Member

emhane commented Mar 30, 2024

#6151 is syncing base mainnet in 9 hours with --debug.tip flag. pr is being broken down into smaller prs for easier review.

@emhane emhane closed this as completed Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-discv5 Related to discv5 discovery C-enhancement New feature or request M-prevent-stale Prevents old inactive issues/PRs from being closed due to inactivity
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

6 participants