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

Move bootstrap logic to DHT #6287

Open
Stebalien opened this issue May 1, 2019 · 4 comments
Open

Move bootstrap logic to DHT #6287

Stebalien opened this issue May 1, 2019 · 4 comments
Labels
kind/bug A bug in existing code (including security flaws)

Comments

@Stebalien
Copy link
Member

Really, each service should maintain a list of bootstrap peers for that service. The point of bootstrapping isn't to connect to some random nodes, it's to join the DHT.

Motivation: more and more peers are using the DHT in client mode. That means we need to re-bootstrap even if we have connections because we need to maintain at least one connection to at least one DHT node.

P0 because my node is falling off the network.

@Stebalien Stebalien added kind/bug A bug in existing code (including security flaws) P0 Critical: Tackled by core team ASAP labels May 1, 2019
@Stebalien
Copy link
Member Author

See: libp2p/go-libp2p-kad-dht#193

@momack2 momack2 added this to Inbox in ipfs/go-ipfs May 9, 2019
@meyer9
Copy link

meyer9 commented Sep 22, 2019

It seems like we should even have a minimum number of peers per protocol. For example, we might want to connect to at least one node providing a specific service.

@Stebalien Stebalien removed the P0 Critical: Tackled by core team ASAP label Nov 16, 2019
@Stebalien
Copy link
Member Author

@Stebalien
Copy link
Member Author

@meyer9 that really depends on the service, but not usually.

  • Bitswap: we want to connect to peers with the content we're looking for. We use the DHT to find these peers.
  • Pubsub: we want to connect to peers interested in the same topics. Again, we use the DHT.
  • Relay: we need some relay node that's willing to act as a relay. We don't want a random node that speaks the relay protocol. We currently use the DHT to find these nodes.
  • AutoNAT: Anyone who speaks the AutoNAT protocol is fine. We passively discover these nodes (e.g., our bootstrap nodes are "AutoNAT" nodes).
  • DHT: we need to connect to some peer. In this case, we need a set of known DHT nodes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug A bug in existing code (including security flaws)
Projects
No open projects
Development

No branches or pull requests

2 participants