93 Commits

Author SHA1 Message Date
Steven Allen
9c060c8363 chore(bootstrap): update bootstrappers
1. Remove bootstrappers with small (1024 bit) keys.
2. Switch from /ipfs to /p2p multiaddrs.

part of https://github.com/libp2p/libp2p/issues/79
2019-12-17 16:53:38 +01:00
Aarsh Shah
ef6ffec073 refresh cpl in dht 2019-12-17 01:25:57 +08:00
Steven Allen
e512351145 fix: always send the result channel when triggering a refresh
Otherwise, we'll just return a channel that will never be signaled.
2019-12-13 10:11:32 +01:00
Steven Allen
50a9858ef6 feat(dht): switch to a single RefreshRoutingTable function returning a channel 2019-12-10 17:28:30 +01:00
Steven Allen
0be0cbc50e feat: refresh and wait
We'd like to be able to refresh then _wait_ for the refresh to finish in the testground DHT tests. That way, we can:

1. Start and disable _auto_ refresh.
2. Bootstrap.
3. Refresh a couple of times till we're stable.
4. Wait to _stop_ refreshing.
5. Disconnect from and forget about all peers _not_ in our routing tables.
6. Run the actual tests without interference from the bootstrapping logic.
2019-12-10 15:41:20 +01:00
Steven Allen
4bc0480ede doc(bootstrap): document minRTRefreshThreshold 2019-11-05 23:45:07 +00:00
Steven Allen
8e9ecdbc98 fix(bootstrap): include the error in the bootstrap failure warning 2019-11-05 23:42:53 +00:00
Steven Allen
b8eb083e46 chore(bootstrap): rename scanInterval to refreshTicker 2019-11-05 23:42:22 +00:00
Steven Allen
76f388b623 chore(bootstrap): reduce indent level 2019-11-05 23:41:24 +00:00
Steven Allen
4eaf4293dc fix(bootstrap): use the correct context 2019-11-05 23:40:46 +00:00
Steven Allen
ef319676a9 chore: rename bootstrap to refresh
As pointed out by raul, bootstrapping and refreshing are not the same thing.
Bootstrapping is the initial setup (i.e., connect to some initial nodes to get
started). Refreshing is the process of refreshing the routing table.
2019-11-05 23:33:53 +00:00
Steven Allen
71c05a8cd0 fix(bootstrap): don't bootstrap more than 16 buckets
We can't generate target IDs in buckets beyond bucket 15 so there's no point.
2019-11-05 22:33:11 +00:00
Steven Allen
645ba5b650 fix(bootstrap): bootstrap sequentially
The default timeout is 10s so this won't take that long anyways. On the
other hand, if we do this all at once, we max the swarms dial queue.
2019-11-05 22:33:11 +00:00
Steven Allen
ed244cd485 feat(bootstrap): simplify bootstrapping
* Rename triggerAutoBootstrap to autoBootstrap. This variable used to control
_triggering_ only but now completely disables automatic bootstrapping.
* Remove the BootstrapConfig. We introduced this before we switched to
functional options. Now that we're breaking the interfaces anyways, we might as
well use functional options all the way (easier to extend).
* Always query self (feedback from @raulk).
* Important: don't abort the bootstrap process if we timeout finding ourselves.
2019-11-05 22:33:05 +00:00
Steven Allen
2fdad28d5c chore(doc): fix comments 2019-11-05 11:15:26 +00:00
Steven Allen
98cf91494d chore(bootstrap): remove unecessary request structure 2019-11-05 11:15:23 +00:00
Aarsh Shah
632f3c5cb5 better handling for disable bootstrap option 2019-11-03 19:57:50 +08:00
Aarsh Shah
da6edafb21 make Bootstrap() async and latestSelfWalk a dht field 2019-11-02 11:37:44 +08:00
Aarsh Shah
7cce5bdd96 make bootstrap synchronous & get tests to work 2019-11-02 00:37:15 +08:00
Steven Allen
e2842f0317 feat(bootstrap): autobootstrap
1. Auto bootstrap on start.
2. Make `Bootstrap(ctx)` trigger a bootstrap but not _start_ the bootstrapping
   process.
2019-11-01 00:38:28 -07:00
Aarsh Shah
00fffba0aa Update dht_bootstrap.go
1) on connecting to a new peer  -> trigger self & bucket bootstrap if RT size goes below thereshold
2) accept formatting & doc suggestions in the review
3) remove RT recovery code for now -> will address in a separate PR once #383 goes in

changes as per review
2019-10-11 14:10:19 +09:00
Aarsh Shah
f4630f62d5 1) seed RT whenever it becomes empty
2) seed RT if empty before starting bootstrap incase 1 hasn't fired
3) pass bootstrap config as option while creating Dht
4) replace all bootstrap function with 1 function
2019-10-11 13:17:36 +09:00
Steven Allen
14545294e3 dep: update go-libp2p-kbucket 2019-10-11 13:14:07 +09:00
Aarsh Shah
f7353aac3b reset timer on bucket 2019-10-11 13:13:53 +09:00
Aarsh Shah
d53dfd6a86 changed bootstrapping logic 2019-10-11 13:13:53 +09:00
Raúl Kripalani
31765355df
migrate to consolidated types. (#344) 2019-05-26 23:33:15 +01:00
Anatoliy Basov
1fe2fd55b9 Get rid of annoying "bootstrap: not found" error (#299)
It's impossible to find the self ID in the DHT because of this statement ac6772539b/handlers.go (L257)
So maybe we should ignore the "not found" error in this case, like we do it for the random walk.
2019-03-14 15:20:56 +11:00
Matt Joiner
07573a0bc4
Log before and after bootstrap sub-queries (#293) 2019-03-12 13:26:54 +11:00
Matt Joiner
08c34b4d83
New node methods for tools and otherwise (#265)
* Add IpfsDHT.{Bootstrap{Random,Self},Peer{Id,Key}}
* Include client mode tests, support for Ping, and uncruft setupDHTs
* Include xerrors in deps
2019-03-06 08:10:38 +11:00
Hector Sanjuan
2b9f6a6a13 gx publish 4.4.30 2019-02-27 05:21:11 +00:00
Hector Sanjuan
d37d69ec4c gx publish 4.4.29 2019-02-26 22:28:19 +00:00
Matt Joiner
61d3de0d41 Fix deadline handling in runBootstrap subqueries 2019-02-15 14:53:03 +11:00
Matt Joiner
f7b176604f Change the bootstrapping subquery log level 2019-02-15 14:53:03 +11:00
vyzo
d422d90de7
Merge pull request #247 from avbasov/patch-1
Fix "no protocol with name dnsaddr" error
2019-02-04 14:35:41 +02:00
Matt Joiner
8b37385468 Rename log to logger 2019-02-03 13:14:35 +11:00
Anatoliy Basov
e7a140b141
Fix "no protocol with name dnsaddr" error 2019-02-01 11:56:56 +02:00
Matt Joiner
2d2bb5513c
Tidy up bootstrapping (#235)
* Remove signal bootstrapping

Remove IpfsDHT.BootstrapOnSignal.

* Type check expected interfaces on IpfsDHT

* Simplify the bootstrap logic

* Tidy up a few other things

* Include BootstrapOnce

* Add comment about duplicating sanity checks

* Use existing import naming convention

* Defer error wrapping until we need it

* Restore existing query count behaviour
2019-01-31 10:06:56 +11:00
Matt Joiner
bebd753a1d
Merge pull request #226 from libp2p/default-bootstrap-peers
Add the full libp2p default bootstrap peer list
2019-01-29 11:00:03 +11:00
Steven Allen
201eea5e0b
Revert "Tidy up bootstrapping" 2019-01-24 14:06:38 -08:00
Matt Joiner
a59df7de13 Use existing import naming convention 2019-01-24 10:05:44 +11:00
Matt Joiner
7da25ec52b Add comment about duplicating sanity checks 2019-01-24 09:59:51 +11:00
Matt Joiner
9055bd6981 Include BootstrapOnce 2019-01-24 09:52:56 +11:00
Matt Joiner
c6e2fde1e3 Tidy up a few other things 2019-01-24 09:52:56 +11:00
Matt Joiner
f423e38edd Simplify the bootstrap logic 2019-01-24 09:52:56 +11:00
Matt Joiner
69392ff66f Remove signal bootstrapping
Remove IpfsDHT.BootstrapOnSignal.
2019-01-24 09:52:55 +11:00
Hector Sanjuan
110dae4320
Revert "Remove signal bootstrapping" 2019-01-23 13:28:20 +01:00
Matt Joiner
a9c746d42b Add the full libp2p default bootstrap peer list 2019-01-23 17:06:07 +11:00
Matt Joiner
b33ea78537 Remove signal bootstrapping
Remove IpfsDHT.BootstrapOnSignal.
2019-01-22 15:47:33 +11:00
Dominic Della Valle
c419fc3497
remove duplicate pkg documentation
Also contained in "dht.go" and prints twice in godoc.
2018-12-26 03:05:36 -05:00
Cole Brown
d4fa80e287 gx publish 4.3.0 2018-07-31 18:19:24 -04:00