Arceliar
|
52a0027aea
|
switch refactoring, setup for a better approximation of local backpressure
|
2018-06-23 20:59:26 -05:00 |
|
Arceliar
|
988f4ad265
|
add a dedicated switch worker and start using it for lookups
|
2018-06-23 19:08:32 -05:00 |
|
Arceliar
|
2ae213c255
|
I'll try sorting, that's a good trick
|
2018-06-23 01:10:18 -05:00 |
|
Arceliar
|
cceecf4b1a
|
larger out queue size, make sure linkOut packets always get sent first
|
2018-06-22 23:46:42 -05:00 |
|
Arceliar
|
0021f3463f
|
slightly better way for the tcp sender goroutine(s) to block waiting for work
|
2018-06-22 20:39:57 -05:00 |
|
Neil Alexander
|
f68f779bee
|
Change box_pub_key to key in admin API
|
2018-06-22 22:26:17 +01:00 |
|
Arceliar
|
5dfa01a0e8
|
periodically clean up timed-out sessions and old signatures, instead of trying to do it when creating new sessions or adding new signatures
|
2018-06-21 20:31:30 -05:00 |
|
Arceliar
|
254be42614
|
gofmt
|
2018-06-21 10:39:43 -05:00 |
|
Arceliar
|
19014a198e
|
randomize the delay after tcp disconnects, to prevent synchronization issues
|
2018-06-21 10:38:31 -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
|
496dc94f02
|
possibly mitigate livelock bug where lossy links lead to constant connect/disconnect cycles due to disagreement about which of the two duplicate autoconnection attempts to use
|
2018-06-16 15:31:25 -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 |
|
Neil Alexander
|
6c556da05e
|
Merge pull request #125 from Arceliar/cleanup
Cleanup
|
2018-06-14 15:26:34 +01:00 |
|
Arceliar
|
d9c9787611
|
avoid the proxy.SOCK5 connection attempt unless we're actually going to use the dialer
|
2018-06-14 09:21:35 -05:00 |
|
Arceliar
|
e8eaabf0c8
|
comment
|
2018-06-14 09:12:58 -05:00 |
|
Arceliar
|
57837057b7
|
tcp/socks cleanup
|
2018-06-14 09:11:34 -05:00 |
|
Arceliar
|
f7a7f601a0
|
cleanup old ugly session MTU code that only mattered with lossy UDP fragments
|
2018-06-14 08:38:43 -05:00 |
|
Arceliar
|
93ffc0b876
|
macos
|
2018-06-14 08:00:57 -05:00 |
|
Arceliar
|
e7fca66655
|
fix address/prefix code, platform specific parts still need testing
|
2018-06-14 07:58:07 -05:00 |
|
Arceliar
|
330175889e
|
switch address range from fd00::/8 to the deprecated 0200::/7 range
|
2018-06-14 07:08:48 -05:00 |
|
Arceliar
|
cd514799da
|
recover if p.doSend is closed due to a race between peers.doSendSwitchMsgs and peers.removePeer
|
2018-06-13 00:24:12 -05:00 |
|
Arceliar
|
b006748da4
|
code cleanup
|
2018-06-12 17:50:08 -05:00 |
|
Arceliar
|
9ce428af66
|
Merge pull request #112 from neilalexander/documentation
Adds more comments to ICMPv6 and TUN/TAP.
|
2018-06-12 17:11:24 -05:00 |
|
Neil Alexander
|
8e2c2aa977
|
Document ICMPv6 and TUN/TAP
|
2018-06-12 22:45:53 +01:00 |
|
Arceliar
|
24228bd381
|
disable unused configuration Net field and clean up comments to remove mention of UDP where no longer applicable
|
2018-06-12 14:00:04 -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
|
038a51fd13
|
it helps to add new files
|
2018-06-09 18:44:59 -05:00 |
|
Arceliar
|
72cca4ea43
|
version check/warning adjustments
|
2018-06-09 18:38:30 -05:00 |
|
Arceliar
|
076350f963
|
remove old tcp key exchange code
|
2018-06-09 17:49:02 -05:00 |
|
Arceliar
|
8733099516
|
add version metadata to key exchange at the start of connections
|
2018-06-09 17:46:19 -05:00 |
|
Arceliar
|
f5c850f098
|
better way to do wire signed ints (no negative zero, remove conditionals)
|
2018-06-09 16:36:13 -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
|
1dcc60f054
|
check root before accepting that a message is good and unblocking a new peer
|
2018-06-08 17:33:16 -05:00 |
|
Arceliar
|
f30d040366
|
Merge branch 'master' of https://github.com/yggdrasil-network/yggdrasil-go into develop
|
2018-06-08 16:17:24 -05:00 |
|
Arceliar
|
495891d9e8
|
remove testing panics
|
2018-06-07 22:32:01 -05:00 |
|
Arceliar
|
e29f700dd6
|
enable multicast on interfaces that come up after startup
|
2018-06-07 22:07:19 -05:00 |
|
Arceliar
|
ea1d21f7e5
|
don't change dhtInfo.pings when sending a search, to prevent multiple different searches from evicting a node
|
2018-06-07 21:28:08 -05:00 |
|
Arceliar
|
bced15b138
|
remove TTL from traffic packets
|
2018-06-07 20:29:22 -05:00 |
|
Arceliar
|
84c13fac90
|
don't use TTL
|
2018-06-07 20:18:13 -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
|
ec1c173ca5
|
it helps to check that messages decoded correctly
|
2018-06-07 16:53:39 -05:00 |
|
Arceliar
|
bcfeb22915
|
more tcp debugging
|
2018-06-07 16:49:51 -05:00 |
|
Arceliar
|
63feed8dc3
|
adjust tcp timeout and add shadow queues to track dropped packets
|
2018-06-07 15:04:17 -05:00 |
|
Arceliar
|
c1f8baf9b5
|
update dht.reset() to possibly play better with coord changes
|
2018-06-07 14:39:43 -05:00 |
|
Arceliar
|
d468882147
|
cleanup
|
2018-06-07 14:24:02 -05:00 |
|
Arceliar
|
f8ba80e7d8
|
remove old switchMessage and clean up related code
|
2018-06-07 14:13:31 -05:00 |
|
Arceliar
|
00e4da28c7
|
use/store switchMsg in the switch instead of going through the old switchMessage
|
2018-06-07 13:56:11 -05:00 |
|
Arceliar
|
3dab94be9f
|
keep dht peers alive
|
2018-06-07 10:58:24 -05:00 |
|
Arceliar
|
deb755e3e9
|
remove peer.linkIn channel and related logic
|
2018-06-07 00:49:06 -05:00 |
|
Arceliar
|
ecf37cae8a
|
make the switch react to peer coord changes immediately, and send out updates immediately
|
2018-06-07 00:16:47 -05:00 |
|
Arceliar
|
85afe187ff
|
remove peer timeout logic from the switch, so switch peer entrires are only removed when the peer struct is removed
|
2018-06-06 23:23:16 -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
|
5dc0cb5544
|
move wire_encode_locator logic into getBytesForSig, since that's the only place it's used
|
2018-06-06 23:00:17 -05:00 |
|
Arceliar
|
1e7d34492d
|
fix signature checks and add some TODO reminder comments
|
2018-06-06 22:39:22 -05:00 |
|
Arceliar
|
5fb33da3a2
|
remove old switch anc/hop/res code
|
2018-06-06 21:18:21 -05:00 |
|
Arceliar
|
6811759fc9
|
add new switchMsg struct to replace old anc/hop/res approach
|
2018-06-06 21:11:10 -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
|
bbae9ff8e8
|
Merge pull request #92 from Arceliar/backpressure
Use backpressure instead of estimated bandwidth
|
2018-06-06 16:58:48 -05:00 |
|
Arceliar
|
fad6f6b50e
|
remove udp.go
|
2018-06-06 16:57:36 -05:00 |
|
Arceliar
|
da928af361
|
fix sim and run gofmt
|
2018-06-06 16:49:23 -05:00 |
|
Arceliar
|
240841eb38
|
remove unused recursive search packets
|
2018-06-06 16:46:15 -05:00 |
|
Arceliar
|
1b89892610
|
remove UDP, to be replaced with a better implementation later
|
2018-06-06 16:40:35 -05:00 |
|
Neil Alexander
|
6d9d01dae1
|
Fix IfName='none'
|
2018-06-02 23:29:06 +01:00 |
|
Arceliar
|
b9ea5350c6
|
update search.go comments to describe the iterative approach
|
2018-06-02 16:45:45 -05:00 |
|
Arceliar
|
3e1ac81854
|
allow searches to start with nodes further from the destination than ourself
|
2018-06-02 16:39:34 -05:00 |
|
Arceliar
|
45abfafbba
|
value instead of pointer types for search dest/mask
|
2018-06-02 16:33:58 -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
|
28e6c738e2
|
Merge branch 'master' into iterdht
|
2018-06-02 15:00:24 -05:00 |
|
Arceliar
|
09baad48e3
|
retry failed iterative searches, possibly becoming parallel if things are just slow, and keep track of / skip nodes that were already visited in the search
|
2018-06-02 14:57:06 -05:00 |
|
Neil Alexander
|
bc37d4fb76
|
Improve formatting of dot: dashed grey for unknown nodes, sans-serif text
|
2018-06-02 14:24:06 +01:00 |
|
Arceliar
|
ed6c9c2a54
|
deduplicate dht responses when adding them to the search, limit the search toVisit size
|
2018-06-02 00:29:36 -05:00 |
|
Arceliar
|
10a72444e3
|
get itersearch to run in the sim
|
2018-06-02 00:16:47 -05:00 |
|
Arceliar
|
ecf7e490d7
|
start of iterative dht searches
|
2018-06-01 23:34:21 -05:00 |
|
Neil Alexander
|
ec80a81ed5
|
Mark extrapolated nodes with dashed outline
|
2018-06-01 23:33:02 +01:00 |
|
Neil Alexander
|
e4082f218f
|
Add text to dot graph explaining how a node is known
|
2018-06-01 23:23:24 +01:00 |
|
Neil Alexander
|
a2df5107f0
|
Change colour scheme: green for self, yellow for peer, blue for open session, white for DHT
|
2018-06-01 14:20:47 +01:00 |
|
Arceliar
|
ca15bbea57
|
try color coding dot output
|
2018-05-31 20:28:09 -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
|
35173e2388
|
Fix starting TUN read/write
|
2018-05-27 22:35:30 +01:00 |
|
Neil Alexander
|
4c115de633
|
De-debug
|
2018-05-27 22:13:37 +01:00 |
|
Arceliar
|
38e7704161
|
use backpressure instead of estimated bandwidth, sorted by uptime to break ties
|
2018-05-27 13:37:35 -05:00 |
|
Arceliar
|
02ba9dc97c
|
fix npe, these don't need to be pointers
|
2018-05-27 13:22:21 -05: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
|
a0f547cc1b
|
Fix being able to enable/disable multicast
|
2018-05-26 21:50:47 +01:00 |
|
Neil Alexander
|
bc899c395a
|
Fix accidental truncation of addresses ending in 8 on macOS and BSD
|
2018-05-26 21:47:54 +01:00 |
|
Neil Alexander
|
5d87601118
|
Add getMulticastInterfaces and getSelf to yggdrasilctl
|
2018-05-23 22:13:52 +01:00 |
|
Neil Alexander
|
1fd53bcb7d
|
Update comments in configuration
|
2018-05-23 14:02:13 +01: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 |
|
Neil Alexander
|
388ae09fca
|
Rename some config items
|
2018-05-22 23:43:29 +01:00 |
|
Arceliar
|
b10ae51565
|
Merge pull request #85 from neilalexander/yggdrasilctl
Human-readable formatting in yggdrasilctl
|
2018-05-21 19:21:00 -05:00 |
|
Neil Alexander
|
04b3e84023
|
Show your IPv6 address and subnet when starting
|
2018-05-21 16:15:31 +01:00 |
|
Neil Alexander
|
9567446f50
|
Offload formatting to yggdrasilctl and keep precision in JSON
|
2018-05-21 15:21:23 +01:00 |
|
Neil Alexander
|
59688dcab3
|
Fix formatting of bytes_sent, bytes_recvd, last_seen, uptime
|
2018-05-21 15:05:01 +01:00 |
|
Neil Alexander
|
ca3e541d3b
|
Friendly formats for getDHT, getSessions, setTunTap etc
|
2018-05-21 14:14:57 +01:00 |
|
Neil Alexander
|
201701ae4a
|
Add some pretty printing to yggdrasilctl, small modifications to JSON formatting in admin socket
|
2018-05-21 13:54:51 +01:00 |
|
Neil Alexander
|
bd32f5890b
|
Run gofmt -s -w
|
2018-05-21 07:28:03 +01:00 |
|
Neil Alexander
|
79131bb959
|
Minor tweaks
|
2018-05-20 23:25:07 +01:00 |
|
Neil Alexander
|
aae570de2a
|
Optional parameters are now square instead of pointed brackets, avoid nils for help
|
2018-05-20 21:57:05 +01:00 |
|
Neil Alexander
|
c765e0566f
|
Convert rest of functions, fix setTunTap
|
2018-05-20 21:54:15 +01:00 |
|
Neil Alexander
|
c75566d5ac
|
Various fixes and error catching, add setTunTap
|
2018-05-20 21:44:30 +01:00 |
|
Neil Alexander
|
4ecc7ce860
|
Add getTunTap to JSON admin socket
|
2018-05-20 19:42:37 +01:00 |
|
Neil Alexander
|
c3ca5c64b1
|
Add some more functions to JSON admin socket
|
2018-05-20 19:23:43 +01:00 |
|
Neil Alexander
|
9713e73969
|
Fix dot
|
2018-05-20 17:25:13 +01:00 |
|
Neil Alexander
|
a6ef7166ea
|
Start JSON-ifying the admin socket
|
2018-05-20 17:21:14 +01:00 |
|
Arceliar
|
5c0636eb3d
|
add uptime and bytes sent/recvd to peer struct and getPeers
|
2018-05-18 20:41:02 -05:00 |
|
Neil Alexander
|
ca96bbf014
|
Accept exchanging an MTU of 0 to signify that TUN/TAP is disabled, don't send traffic to a node in that case
|
2018-05-18 18:56:33 +01:00 |
|
Neil Alexander
|
ec371af84f
|
Track TX/RX bytes over session and if MTU was adjusted, add to admin socket getSession
|
2018-05-18 17:59:29 +01: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 |
|
Arceliar
|
d98640fd59
|
switch cleanup
|
2018-05-16 17:48:53 -05:00 |
|
Arceliar
|
6b51b44cbf
|
slightly better variable naming
|
2018-05-16 17:36:37 -05:00 |
|
Arceliar
|
800ccaa3d4
|
cleanup
|
2018-05-16 17:32:26 -05:00 |
|
Arceliar
|
fe712d24f8
|
don't allow buckets to overflow when the next bucket isn't full
|
2018-05-16 17:24:38 -05:00 |
|
Arceliar
|
8228242eed
|
misc dht and tree changes to stabilize coords and bootstrap the dht faster
|
2018-05-15 23:57:00 -05:00 |
|
Arceliar
|
96c55da987
|
Merge pull request #76 from neilalexander/hjson
Use HJSON for config instead of JSON
|
2018-05-13 15:09:28 -05:00 |
|
Neil Alexander
|
5299783e35
|
Add getTunTap to admin socket
|
2018-05-10 09:48:12 +01:00 |
|
Neil Alexander
|
e381808704
|
Add ability to select interface by friendly name on Windows
|
2018-05-09 16:42:24 +01:00 |
|
Neil Alexander
|
8ea3070a02
|
Small tweaks/clean up
|
2018-05-09 14:03:28 +01:00 |
|
Neil Alexander
|
45b106168e
|
Use HJSON instead of JSON
|
2018-05-09 13:54:31 +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
|
94dd231e13
|
add (not working) admin functions for auth keys, needs debugging
|
2018-05-06 19:31:19 -05:00 |
|
Arceliar
|
0b391b6e3a
|
debugging and cleanup
|
2018-05-06 19:01:52 -05:00 |
|
Arceliar
|
80f893aac3
|
let the peer's linkLoop call close if the peer receives no announcements for too long
|
2018-05-06 17:17:12 -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
|
3a1b67da8c
|
Update admin.go
|
2018-05-05 20:20:38 -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
|
fe13fea1e5
|
remove hard coded tor config options
|
2018-04-26 10:26:10 -04:00 |
|
Jeff Becker
|
7756891510
|
support socks proxy in peer url and decouple explicit tor/i2p routing
|
2018-04-26 10:23:21 -04:00 |
|
Jeff Becker
|
769b058004
|
more docs
|
2018-04-25 10:11:11 -04:00 |
|
Jeff Becker
|
1be8bbed1c
|
more docs
|
2018-04-25 10:09:09 -04:00 |
|
Jeff Becker
|
de69860e9b
|
* only enable tor proxy dialer when tor is enabled
* add docstrings
|
2018-04-25 10:06:13 -04:00 |
|
Jeff Becker
|
c16e354a44
|
Merge remote-tracking branch 'origin/master' into tor-auto
|
2018-04-25 10:01:10 -04:00 |
|
Arceliar
|
8ef2e55de6
|
try sending pings before sending searches for an unresponsive session
|
2018-04-22 15:31:30 -05:00 |
|
Jeff Becker
|
5e23185ddc
|
use address only not port
|
2018-04-20 08:41:09 -04:00 |
|
Jeff Becker
|
3c4fee0492
|
tor auto config
|
2018-04-19 10:30:40 -04:00 |
|
Neil Alexander
|
48ced483d6
|
Merge pull request #64 from Arceliar/dht
Limit DHT pings to 1/min per node
|
2018-03-17 20:46:47 +00:00 |
|
Arceliar
|
fe5ef4e867
|
don't add things to the dht rumorMill if they've been pinged in the last minute (arbitrary time, needs investigating)
|
2018-03-17 15:28:22 -05:00 |
|
Arceliar
|
0459f88b92
|
add a udp close packet, and partial support for a removePeer admin call (sends close to UDP peers, but doesn't close TCP connections yet)
|
2018-03-16 18:24:28 -05:00 |
|
Neil Alexander
|
bf0413a0c4
|
Modify ICMPv6 source address for "Packet Too Big" messages to a routable address so that it correctly routes to nodes in an yggdrasil /64 subnet
|
2018-03-10 22:31:36 +00:00 |
|