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

feat(nodebuilder/p2p): Add startup connectivity check for Full and Bridge nodes #4065

Open
walldiss opened this issue Jan 24, 2025 · 1 comment
Labels
area:p2p enhancement New feature or request good first issue Good for newcomers

Comments

@walldiss
Copy link
Member

Implementation ideas

Use the same Reachability logic already in the p2p packages of nodebuilder to verify whether a node can accept inbound connections at startup. If the node is unreachable (e.g., due to NAT or firewall rules), display a clear warning and guidance.

@walldiss walldiss added area:p2p enhancement New feature or request labels Jan 24, 2025
@Wondertan Wondertan added the good first issue Good for newcomers label Jan 24, 2025
@yiannisbot
Copy link

Just adding some more details here to make clearer where the need for startup connectivity check comes from.

As of 2025-01-10, ProbeLab's LN monitoring infra included support for wss and could therefore see lumina nodes. See: https://probelab.io/celestia/dht/2025-02/#celestia-client-agents-overall-stacked-plot.

One thing we noticed is that we're seeing different numbers of nodes for celestia-node/bridge, celestia-celestia and celestia-node/full when we crawl the network with Nebula (https://probelab.io/celestia/dht/2025-02/#celestia-agents-overall-stacked-plot) and when we observe peers with our ants deployment (https://probelab.io/celestia/dht/2025-02/#celestia-client-agents-overall-stacked-plot).

The discrepancies are pretty substantial. From a brief look, we found:

  • celestia-node/bridge count is ~64 from Nebula crawler and 110 from ants observers
  • celestia-celestia count is 3 from Nebula crawler and ~30 from ants observers
  • celestia-node/full count is ~11 from Nebula crawler and 16 from ants observers.

The difference between the two approaches (Nebula vs ants) is that Nebula is trying to establish (outgoing) connections with remote peers, whereas ants are sitting there accepting (incoming) connections from other peers. This further means that if we can't see as many nodes with Nebula (outgoing connections), these peers we can't see are likely facing (incoming) connectivity issues, e.g., due to firewalls etc.

Assuming that incoming connectivity is important for those nodes, it's worth investigating further and a good first step is to add a startup connectivity check.

A good check point for whether the connectivity improves over time is to monitor these two plots referenced above on probelab.io:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:p2p enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants