67 Commits

Author SHA1 Message Date
Arceliar
9835c63818 refactor things the router owns (dht, sessions, searches) into that struct, to make the ownership more explicit 2019-08-23 20:26:15 -05:00
Arceliar
9d7e7288c6 start migrating the router to an actor 2019-08-23 18:47:15 -05:00
Arceliar
29a0f8b572 some minor refactoring to dht callbacks and searches, work in progress 2019-06-25 19:31:29 -05:00
Neil Alexander
4c0c3a23cb
Fix bugs 2019-03-29 18:24:57 +00:00
Neil Alexander
2cd373fc1e
Remove unnecessary selects 2019-01-15 08:51:19 +00:00
Neil Alexander
7fae1c993a
Handle errors from reconfigure tasks 2018-12-30 12:04:42 +00:00
Neil Alexander
219fb96553
Support notifying components for config reload, listen for SIGHUP 2018-12-29 18:51:51 +00:00
Arceliar
50ed92d6d2 insert a copy when calling dht.insertPeer 2018-12-26 00:18:51 -06:00
Arceliar
59093aa43b clean up node info immediately if it reaches the timeout or if it needs refreshing but won't be pinged due to being unimportant 2018-12-21 17:45:24 -06:00
Arceliar
f59852b1e1 adjust how dht throttle works, it should now back off faster, and back off even more if things are not in use 2018-12-20 20:16:51 -06:00
Arceliar
dfcdafa55c move special peer/dht insert logic form router.go to dht.go 2018-12-20 17:37:59 -06:00
Arceliar
ea4ca02681 fix code after moving address/crypto/util 2018-12-14 20:49:18 -06:00
Arceliar
d8d1e63c36 fix infinite loop from interaction between dht.isImportant and dht.insert 2018-11-25 20:33:33 -06:00
Arceliar
7954fa3c33 store one callback instead of many, needed to prevent search failures if there are multiple outstanding packets 2018-11-25 17:08:45 -06:00
Arceliar
9937a6102e add callbacks to maintenance map cleanup 2018-11-25 16:29:47 -06:00
Arceliar
d520a8a1d5 refactor dht code to call arbitrary callbacks instead of only searches.checkDHTRes, and add admin API fuction to dhtPing a node (with an optional target NodeID) 2018-11-25 16:10:32 -06:00
Arceliar
e17efb6e91 don't penalize dht timeouts a second time 2018-11-25 13:21:13 -06:00
Arceliar
4e156bd4f7 better cleanup of maps 2018-11-25 12:25:38 -06:00
Arceliar
8d6beebac4 clean up old requests during dht maintenance 2018-11-24 20:04:14 -06:00
Arceliar
6d0e40045a cleanup/fixes from go vet 2018-11-22 21:41:16 -06:00
Arceliar
ef6cece720 fix sim and tune dht to bootstrap a little faster 2018-11-16 19:32:12 -06:00
Arceliar
15d5b3f82c comments and minor cleanup 2018-11-09 23:02:38 -06:00
Arceliar
a008b42f99 cleanup and some bugfixes, cache important dht nodes until something gets added/removed 2018-10-29 22:24:18 -05:00
Arceliar
671c7f2a47 don't update recv time for known nodes that ping us or known peers 2018-10-28 15:04:44 -05:00
Arceliar
c0531627bc fix some chord dht bootstrapping bugs, no known cases where it now fails 2018-10-24 22:03:27 -05:00
Arceliar
253861ebd3 reverse dht ownership order from predecessor to successor, this plays nicer with the default 0 bits in unknown node IDs 2018-10-21 18:15:04 -05:00
Arceliar
5e3959f1d0 yet more debugging 2018-10-21 17:40:43 -05:00
Arceliar
f0bd40ff68 more testing 2018-10-21 15:10:18 -05:00
Arceliar
bcbd24120d keep track of all keys we're supposed to care about in the dht, don't give special treatment to successors/predecessors 2018-10-21 14:57:04 -05:00
Arceliar
efe6cec11a more debugging, trying to understand bootstrap issues 2018-10-21 12:28:21 -05:00
Arceliar
6c59ae862a more debugging 2018-10-21 00:05:04 -05:00
Arceliar
95201669fe reintroduce (better) dht throttling 2018-10-20 22:06:36 -05:00
Arceliar
8825494d59 remove maintenance searches and throttle logic, to focus on debugging in this simpler case first 2018-10-20 20:11:32 -05:00
Arceliar
3dbffae99f add search for successor, via parent, to the dht maintenance cycle 2018-10-20 19:09:25 -05:00
Arceliar
d851d9afe7 add max pings before timing out a successor 2018-10-20 18:31:11 -05:00
Arceliar
63d6ab4251 more cleanup, comments, and dht reset() changes 2018-10-20 18:12:34 -05:00
Arceliar
f3ec8c5b37 fix admin dht function, more cleanup, and slowly throttle back dht traffic when idle 2018-10-20 17:58:54 -05:00
Arceliar
5a85d3515d cleanup 2018-10-20 17:32:54 -05:00
Arceliar
02f0611dde more debugging 2018-10-20 16:27:01 -05:00
Arceliar
1720dff476 add some debug output and get things to start working in the sim 2018-10-20 15:21:40 -05:00
Arceliar
03a88fe304 Try using a chord-like DHT instead of a kad-like one, work in progress, but it compiles at least 2018-10-20 14:48:07 -05:00
Neil Alexander
0ec5f1c02c
Version 0.2.1 (#130)
* switch address range from fd00::/8 to the deprecated 0200::/7 range

* Fix launchd script path and amend debian control file

* fix address/prefix code, platform specific parts still need testing

* macos

* cleanup old ugly session MTU code that only mattered with lossy UDP fragments

* Fix debian control file

* Let's try this again

* tcp/socks cleanup

* comment

* avoid the proxy.SOCK5 connection attempt unless we're actually going to use the dialer

* Update generate.sh

* prevent parent nodes from forcing coord oscillation, have dht.handleRes clean up the old request info immediately

* address range changes

* Update README.md

Consistently remove leading zeros from addresses in the readme.

* Update yggdrasil.go

* Collect yggdrasilctl during CI build

* Fix CircleCI after fat-fingered copypasta

* Fix for Windows

* clean up main yggdrasil.go imports and run gofmt
2018-06-15 11:02:45 +01:00
Arceliar
b006748da4 code cleanup 2018-06-12 17:50:08 -05:00
Arceliar
359af66d0d exponential dht throttle backoff, and make it based on when packets were sent as part of bootstrapping/maintenance, not when arbitrary packets were received 2018-06-12 03:16:10 -05:00
Arceliar
56802d569e minor documentation updates, code comments, and a couple of bugfixes that I noticed when going through the code to comment it 2018-06-10 18:03:28 -05:00
Arceliar
bced15b138 remove TTL from traffic packets 2018-06-07 20:29:22 -05:00
Arceliar
fe12e1509a add a throttle to nodes in the dht. the throttle is gradually increased each time the node is pinged. it determines the minimum amount of time to wait between using the node in a bootstrapping search 2018-06-07 17:55:43 -05:00
Arceliar
c1f8baf9b5 update dht.reset() to possibly play better with coord changes 2018-06-07 14:39:43 -05:00
Arceliar
3dab94be9f keep dht peers alive 2018-06-07 10:58:24 -05:00
Arceliar
34939d4b18 update for wire format changes 2018-06-02 16:30:05 -05:00