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
Neil Alexander
bbdcee1015
Export fields of sessionPing, dhtReq, dhtRes
2018-06-02 22:19:42 +01:00
Neil Alexander
49af65296d
Export fields of wire structs
2018-06-02 21:21:05 +01:00
Arceliar
ecf7e490d7
start of iterative dht searches
2018-06-01 23:34:21 -05:00
Arceliar
ec8fe338d5
more insertIfNew bugfixes, and add peerOnly to getDHT output (true if a node is in the bucket.peers slice instead of bucket.others--it means they're not regularly pinged, they're only there to make sure DHT lookups include them as a result, for bootstrapping reasons)
2018-05-17 21:43:26 -05:00
Arceliar
fe518f4e3f
bugfixes related to peer timeouts in the DHT, significantly improve DHT bootstrap speed
2018-05-17 21:20:31 -05:00
Arceliar
8d9887294c
add dht time since last ping to admin socket, some DHT code cleanup, bugfix to insertIfNew
2018-05-17 19:32:29 -05:00