Commit Graph

52 Commits

Author SHA1 Message Date
Arceliar
3d4b49b693 reset the switch speed info for a peer whenever it changes coords, instead of only if they're a parent and change coords. Also, make sure packets in the sim preserve order when sending, to avoid races when testing 2018-12-03 19:21:23 -06:00
Neil Alexander
fc5a5830aa
Merge pull request #203 from Arceliar/chord
Chord
2018-11-14 20:13:42 +00:00
Arceliar
c0531627bc fix some chord dht bootstrapping bugs, no known cases where it now fails 2018-10-24 22:03:27 -05:00
Neil Alexander
aab0502a4a
Remove friendlyname traces, preserve endpoints 2018-10-21 23:20:14 +01: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
605b6829db
Fix debug builds (broken by #182) 2018-10-05 19:28:46 +01:00
Arceliar
e833cdfb98 fix debug builds and update whitepaper with old info from the .io site's about page 2018-08-18 13:24:02 -05:00
Neil Alexander
f21cbaef9c
Fix debug builds after changes in #155 2018-07-09 09:38:48 +01:00
Arceliar
189628b381 cleanup 2018-06-23 23:55:27 -05:00
Arceliar
4b83efa218 more backpressure work, still needs testing 2018-06-23 21:51:32 -05:00
Arceliar
988f4ad265 add a dedicated switch worker and start using it for lookups 2018-06-23 19:08:32 -05:00
Arceliar
f599a1a2c1 start the pprof based on an env variable in debug builds, otherwise remove the flag/release.go stuff 2018-06-21 10:32:16 -05:00
Arceliar
7fe038f87e prevent parent nodes from forcing coord oscillation, have dht.handleRes clean up the old request info immediately 2018-06-14 12:32:18 -05:00
Arceliar
e5eb6de1f6 add inner crypto to linkProtoTraffic, using ephemeral keys, to prevent replay attacks from spoofing peer connections 2018-06-08 18:42:56 -05:00
Arceliar
bced15b138 remove TTL from traffic packets 2018-06-07 20:29:22 -05:00
Arceliar
deb755e3e9 remove peer.linkIn channel and related logic 2018-06-07 00:49:06 -05:00
Arceliar
3b783fbf97 move periodic switch maintenance into the router instead of its own goroutine 2018-06-06 23:10:33 -05:00
Arceliar
690d29435d adjust link packet logic so they bypass the lifo stack and are delivered first 2018-06-06 17:44:10 -05:00
Arceliar
1b89892610 remove UDP, to be replaced with a better implementation later 2018-06-06 16:40:35 -05:00
Arceliar
10a72444e3 get itersearch to run in the sim 2018-06-02 00:16:47 -05:00
Neil Alexander
ccf71af6b7
Move Init from core.go to debug.go as function is only for simulator 2018-05-27 23:37:57 +01:00
Neil Alexander
460a22c063
Clean up some exported constants 2018-05-27 23:31:34 +01:00
Neil Alexander
a9e61d0d37
Add support for building "release" builds that don't contain pprof which are substantially smaller. To build a "debug" build, use "-tags debug" with "go build" 2018-05-27 23:22:50 +01:00
Neil Alexander
4c115de633
De-debug 2018-05-27 22:13:37 +01:00
Arceliar
7b12493417 panic if tcp startup fails, since otherwise a nil pointer occurs in multicast. make udp do the same thing. 2018-05-27 12:56:33 -05:00
Neil Alexander
ce854a76bd
Add -normaliseconf option and temporarily correct old config item names in running config 2018-05-23 12:04:27 +01:00
Neil Alexander
9d9083e373
Update configuration names, fix multicast interface selection 2018-05-23 11:28:20 +01:00
Neil Alexander
6f79184c9b
Move multicasting into yggdrasil package 2018-05-23 11:13:53 +01:00
Arceliar
5dac273a3d rename to 'AllowedBoxPubs' and similar 2018-05-07 17:05:54 -05:00
Arceliar
6ce16d8192 debug admin socket 2018-05-06 19:48:26 -05:00
Arceliar
0b391b6e3a debugging and cleanup 2018-05-06 19:01:52 -05:00
Arceliar
6026e0a014 Optional peer authentication, if non-empty then incoming TCP and all UDP peers must match one of these box keys 2018-05-06 16:32:34 -05:00
Arceliar
cdedd304af make removePeers work for TCP connections and minor admin cleanup 2018-05-05 17:14:03 -05:00
Arceliar
8b9a91be57 possibly fix weird issue I was having with netns, still not sure I understand why it was a problem 2018-04-28 16:39:58 -05:00
Neil Alexander
bdf9e45082
Default to previous scheme when url.Parse returns an error
In response to:
```
panic: parse x.x.x.x:xxx: first path segment in URL cannot contain colon

goroutine 33 [running]:
yggdrasil.(*Core).DEBUG_addPeer(0x8e58000, 0x8e34080, 0x12)
        /go/src/github.com/{{ORG_NAME}}/{{REPO_NAME}}/src/yggdrasil/debug.go:317 +0x420
main.(*node).init.func1(0x8e48000, 0x8e58000)
        /go/src/github.com/{{ORG_NAME}}/{{REPO_NAME}}/yggdrasil.go:75 +0x70
created by main.(*node).init
        /go/src/github.com/{{ORG_NAME}}/{{REPO_NAME}}/yggdrasil.go:69 +0x410
```
2018-04-27 09:53:31 +01:00
Jeff Becker
7756891510
support socks proxy in peer url and decouple explicit tor/i2p routing 2018-04-26 10:23:21 -04:00
Arceliar
9ce0b7fbea keep peers separate from other nodes in dht 2018-03-10 13:58:48 -06:00
Arceliar
0460fdd301 panic if tun.write or tun.read returns an error and was launched from debug.go, since there's no way to recover in these scenarios 2018-03-03 13:56:26 -06:00
Neil Alexander
4917ea3dd2 Per-platform TUN defaults 2018-03-03 12:30:54 +00:00
Arceliar
da44ec282f Add a rumor mill to throttle dht maintenance traffic 2018-02-17 17:10:08 -06:00
Neil Alexander
02473158d4 Allow setting IfName to 'none' to run without TUN/TAP 2018-02-15 22:29:13 +00:00
Neil Alexander
e9bd98d213 Add "IfTAPMode" configuration option to allow selecting TAP mode on supported platforms 2018-02-11 21:45:44 +00:00
Arceliar
06e3c8c997 if you could go ahead and include your port number in your multicast announcements, that'd be great 2018-01-24 18:45:29 -06:00
Neil Alexander
b754d68068 Add an admin socket 2018-01-21 00:17:15 +00:00
Arceliar
75965b6da4 Switch connAddr (udp map key) from string to a struct that allocates less. Reduce some other allocations. Use larger channel buffers to reduce backpressure from runtime jitter. 2018-01-13 07:26:26 -06:00
Arceliar
ef1e0c902f Add regexp to limit which link-local IPv6 zones allow peering, and check that a peer isn't from within the networks address block (prevents accidental tunneling) 2018-01-09 02:08:54 -06:00
Neil Alexander
b3ebe76b59 Run gofmt -s -w . 2018-01-04 22:37:51 +00:00
Neil Alexander
1c799b305d Add support for specifying tun device name 2018-01-04 13:31:48 +00:00