-
Notifications
You must be signed in to change notification settings - Fork 233
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
Active bootstrapping #387
Comments
@Stebalien Please can you assign this to me ? I think there could be some overlap with #383. Let me get back to you with some notes. |
TODO
|
Yes, the Seeder/Snapshotter abstractions were designed in that way precisely to be called we need to recover from a poisoned/blank routing table. There is also the |
Till when do we want to punt this ? Put another way, when will we have enough confidence in our current RT management logic to land this ? |
Honestly, as long as we use a bootstrapper and random peers from the last routing table, we should be fine here. |
How does this overlap with what Boxo is doing in its bootstrap package? https://github.com/ipfs/boxo/blob/main/bootstrap/bootstrap.go |
Follow-up to #384.
Currently, if we completely disconnect from all peers, there's no way for the DHT to bootstrap.
Proposal:
Bootstrap
option to the dht for passing bootstrapping configuration when constructing the DHT. The current "thou shalt callBootstrap
when ready" API is confusing to new users.Bootstrap(ctx, options...)
method that:Bootstrap(ctx)
(connecting to the known bootstrap nodes).Bootstrap(ctx)
on a timer (i.e., keeps trying to connect to known good nodes when the routing table is empty).Bootstrap(ctx)
before every query. Right now, queries will simply fail in this case leading to the dreaded "failed to find any peers in table" error.In the future, once we better track good peers, we could use peers from the peerstore instead of (or to augment) the known peer list. But we can do that later.
The text was updated successfully, but these errors were encountered: