Commit Graph

556 Commits

Author SHA1 Message Date
Jeff Becker
2d82e931da
try doing lookup from close router, randomize when above lookup threshold 2020-01-09 06:26:41 -05:00
Jeff Becker
8a5365d9a6
diversify endpoints 2020-01-07 13:00:15 -05:00
Jeff Becker
5ae428a114
Revert "remove call to link manager"
This reverts commit 3dd36fa11a.
2019-12-30 11:13:17 -05:00
Jeff Becker
a5121c346c
remove call to link manager 2019-12-30 11:13:17 -05:00
Jeff Becker
d1a29884df
client side perf improvement 2019-12-30 11:13:17 -05:00
Jeff Becker
79c3c748e4
limit number of snode sessions client side 2019-12-30 05:19:03 -05:00
Stephen Shelton
2c6226f54a Backup SNApp keys when migrating to new ed25519 crypto 2019-12-06 11:21:14 -07:00
Jeff Becker
0828307906 fix address mapping bug 2019-11-29 19:11:14 -04:00
Jeff Becker
8849173112 try async decrypt then verify 2019-11-29 19:11:14 -04:00
Jeff Becker
ba0fd223d9 reduce number of jobs we put onto the logic thread 2019-11-29 18:45:06 -04:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs 2019-11-22 16:23:19 -05:00
Jeff Becker
2c5561fc3c
make format 2019-11-05 12:01:34 -05:00
Jeff Becker
7ee026fa50
make path builds work again 2019-11-05 11:58:53 -05:00
jeff
32ed821763 Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography 2019-10-01 10:51:28 -04:00
jeff
7c691cf334 handover should be fixed now 2019-09-19 16:28:12 -04:00
jeff
6c2ebbb925 try fixing handover and add snapp traffic to multithreaded crypto workers 2019-09-19 10:41:31 -04:00
Jeff Becker
327c545530
finish multithread cryptography first pass 2019-09-16 12:12:05 -04:00
jeff
14c9ef15ed try calling stuff in logic thread from event loop 2019-09-16 06:21:12 -04:00
Jeff Becker
1adae338ce
Merge remote-tracking branch 'origin/master' 2019-09-04 07:58:02 -04:00
Michael
edd0ec398f
Move thread stuff to subdirectory 2019-09-03 20:52:28 +01:00
Michael
4d8fe2a8a8
Move meta programming to subdirectory 2019-09-03 20:52:28 +01:00
Jeff Becker
c01112e4b7
tracy lock contention testing and other fun things 2019-09-03 11:56:56 -04:00
Jeff Becker
eabbb83149
use estimated build time instead of expiration time for delta when determining when to space out builds 2019-08-27 16:07:09 -04:00
Jeff Becker
e0424a91a7
bump path build handover window, check cooldown on build. 2019-08-27 16:00:00 -04:00
Jeff Becker
3c3338e801
Merge remote-tracking branch 'origin/master' into memlink 2019-08-21 10:53:25 -04:00
Michael
094b697b01
Replace StatusObject with underlying JSON type 2019-08-19 10:33:26 +01:00
Michael
16cdfbd5f0
clang-tidy modernize pass 2019-08-12 16:52:58 +01:00
Jeff Becker
c1f33bb1ac
initial mempipe implementation 2019-08-07 12:33:29 -04:00
Michael
f9e9227e19
Fix gcc trunk warnings 2019-08-02 10:29:08 +01:00
Jeff Becker
db2206664a
fix crashes in testnet 2019-07-29 11:10:20 -04:00
Jeff Becker
f48754c45d
make hop count and length configurable 2019-07-18 12:28:17 -04:00
Michael
e52492911d
Refactor endpoint state management to a new class 2019-07-15 10:15:51 +01:00
Jeff Becker
1fd6b5ae74
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-07-12 09:53:52 -04:00
Michael
488695047f
Remove redundant else blocks 2019-07-09 22:54:46 +01:00
Jeff Becker
b9bcc2b775
make threadpool consice 2019-07-09 09:47:24 -04:00
Jeff Becker
fd911d0c52
make format 2019-07-08 10:22:47 -04:00
Jeff Becker
6467d21ba0
* fix testnet codepath
* add packet info for osx
2019-07-05 10:13:58 -04:00
Jeff Becker
81cab62bb9
* fix testnet codepath
* add packet info for osx
2019-07-05 08:07:06 -04:00
Jeff Becker
5874c38b38
swap path on inbound convo if expires soon 2019-07-01 17:35:49 -04:00
Jeff Becker
f211ff182a
pick ready paths for reply 2019-07-01 16:45:00 -04:00
Jeff Becker
d6ec528a72
start work on seperating ips out of endpoint 2019-07-01 10:56:56 -04:00
Jeff Becker
64e9622270
start seperating tun and endpoint 2019-07-01 09:44:25 -04:00
Jeff Becker
0146a967d0
fix convotag inbound state setting 2019-06-28 11:49:29 -04:00
Jeff Becker
6bca652182
choose first timestamp 2019-06-28 10:48:00 -04:00
Jeff Becker
0b90acff75
handle reply intro 2019-06-28 10:12:20 -04:00
Jeff Becker
b0612e2ee1
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-06-21 11:23:53 -04:00
Michael
b6b400baef
Tidy up pathbuilder code 2019-06-20 17:35:40 +01:00
Jeff Becker
5c61df08b5
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-06-20 10:35:51 -04:00
Michael
08609f9e5a
Rename message files 2019-06-19 23:30:07 +01:00
Michael
8a058fcb34
Move other messages 2019-06-19 21:35:57 +01:00
Michael
d6751e3eeb
Move subset of messages to right directory 2019-06-19 21:35:26 +01:00
Jeff Becker
cd05fa6150
Merge remote-tracking branch 'origin/master' into ipv6-tun 2019-06-18 08:46:35 -04:00
Rick V
c6c31efec9
make format 2019-06-17 23:29:54 -05:00
Jeff Becker
30f6a8ccd2
make format 2019-06-17 09:05:37 -04:00
Jeff Becker
9c24fc15a8
try not spamming network with builds 2019-06-17 08:43:16 -04:00
Jeff Becker
5853e5e3f4
pass in path 2019-06-14 09:13:06 -04:00
Jeff Becker
a323003824
differentiate between inbound and outbound convos 2019-06-14 08:49:45 -04:00
Jeff Becker
2403ab8f86
ipv6 2019-06-11 12:44:05 -04:00
Jeff Becker
9ec41b8831
update RC expiration logic, lookup more often and remove stale entries 2019-06-10 08:47:21 -04:00
Jeff Becker
73c1538518
fix 2019-06-06 07:16:03 -04:00
Jeff Becker
f7ccbf0c78
eh 2019-06-06 07:10:18 -04:00
Jeff Becker
f8e2edae28
fix 2019-06-06 07:06:34 -04:00
Jeff Becker
223f2702d3
Merge branch 'fix-big-ooooofff' 2019-06-06 06:53:54 -04:00
Jeff Becker
a33dbce680
try switching logic 2019-06-06 06:52:27 -04:00
Jeff Becker
f8026b8a2d
use latest tag not oldest tag in inbound convos 2019-06-04 09:53:50 -04:00
Jeff Becker
39b1f104a8
revert 2019-06-04 09:43:49 -04:00
Jeff Becker
471a4bf6dd
use reply intro for inbound sessions 2019-06-04 09:34:24 -04:00
Michael
75430a234c
Convert to use memFn 2019-06-02 22:19:10 +01:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers 2019-05-28 20:45:08 +01:00
Michael
d49e57aa8d
Fix thread safety issue in service::Endpoint::ProcessDataMessage 2019-05-22 21:28:17 +01:00
Jeff Becker
e85cc1bc8a
fix 2019-05-22 13:47:33 -04:00
Jeff Becker
64c7ed42fc
make format 2019-05-22 12:20:50 -04:00
Jeff Becker
9c96aecf3f
move llarp::Logic to std::shared_ptr
add sequence numbers to HSD messages

begin work on network isolation code

add more docs
2019-05-22 12:20:03 -04:00
Michael
a83be769e2
More explicit error when keyfile is not a valid file 2019-05-18 18:34:25 +01:00
Jeff Becker
8da3b51589
more hax 2019-05-17 07:18:42 -04:00
Jeff Becker
f832c9a593
use shared_ptr 2019-05-11 10:13:35 -04:00
Jeff
e21f1020ee don't std::move 2019-05-11 08:48:54 -04:00
Jeff
06f8bb2f42 add blacklist-snode option 2019-05-10 12:19:33 -04:00
Jeff Becker
018dd008ec
add custom single threaded allocator for utp buffers
fix up test net stuff
2019-05-09 16:28:56 -04:00
Jeff Becker
85fcb4bd84
fix it up 2019-05-09 11:54:22 -04:00
Jeff Becker
1d74585637
don't crash when we get no routers from lookup 2019-05-09 11:51:21 -04:00
Jeff Becker
7b03b63d13
more sighup code 2019-05-07 14:15:22 -04:00
Jeff Becker
a53da68700
start work on sighup 2019-05-07 13:46:38 -04:00
Michael
1744ae7686
Tidy up service endpoint a bit more 2019-05-07 09:29:47 +01:00
Jeff Becker
d423ee02d2
use shared_ptr 2019-05-03 09:15:03 -04:00
Jeff Becker
986e831579
make bundle-rc option configurable on snode tld 2019-05-02 14:11:44 -04:00
Jeff Becker
e0892f7d23
gfdi 2019-05-02 12:33:53 -04:00
Jeff Becker
407f895c86
ooff 2019-05-02 12:31:08 -04:00
Jeff Becker
5b49008bca
more 2019-05-02 12:23:31 -04:00
Jeff Becker
a97e1e37a7
dont filter intros they are already good 2019-05-02 09:47:22 -04:00
Jeff Becker
e060082441
hook every dns for .loki and .snode when applicable
make {n,h}uint{32,16}_t templated type.
2019-05-01 09:40:10 -04:00
Jeff
59e6a4bc3d make snode work again probably 2019-04-30 17:36:27 -04:00
Jeff Becker
20ba2c7b8c
try not to die 2019-04-30 12:57:59 -04:00
Jeff Becker
cde4fcc00a
queue pending traffic 2019-04-30 12:49:34 -04:00
Jeff Becker
bb47d612b3
more 2019-04-30 12:07:17 -04:00
Jeff Becker
0b68d3db5d
move stuff arround so that flushing queues are done in the correct event loops
TODO: locking
2019-04-30 11:09:42 -04:00
Jeff Becker
2a7ebce8f4
Merge remote-tracking branch 'origin/master' 2019-04-30 11:01:13 -04:00
Jeff Becker
5e0acc1197
separate upstream/downstream flush 2019-04-30 09:56:39 -04:00
Jeff Becker
d50b18d7b0
try fixing leak also make format 2019-04-30 08:22:15 -04:00
Michael
725ee293c1
Refactor well named functionality in service::Endpoint into new struct 2019-04-30 02:06:31 +01:00
Jeff
27fac68716 fix 2019-04-28 14:22:38 -04:00
Jeff
01906c5d94 Merge remote-tracking branch 'origin/master' 2019-04-28 13:33:27 -04:00
Michael
0b4d787042
More work on router docker image
- Multi-stage docker build (final image only 15MB!)
- Build in release mode
    - Fix bug with release mode
    - Fix compiler being dumb AF
    - Disable FORTIFY for now
- Enable LTO when making a staticly linked release
- Fix some gcc specific warnings
- Refactor cmake stuff into multiple files
2019-04-28 17:04:52 +01:00
Jeff Becker
0529e45ebe
more 2019-04-25 13:15:56 -04:00
Jeff Becker
6711296b26
finish converting to shared_ptr 2019-04-23 12:13:22 -04:00
Jeff Becker
99c29cf05a
prepare for ios/android jazz
move to use std::shared_ptr instead of bare pointers so we can
multithread everything.
2019-04-23 10:28:59 -04:00
Jeff Becker
5872573e91
rename Logic and Crypto functions to GetLogic and GetCrypto 2019-04-23 09:20:01 -04:00
Jeff Becker
a2912ff860
Merge remote-tracking branch 'origin/master' 2019-04-23 09:12:36 -04:00
Michael
e33a33635c
Remove usage of raw new from service classes 2019-04-22 18:38:29 +01:00
Jeff Becker
3a8cb0bfb5
add shell based hooks for service::Endpoint, also make format 2019-04-22 08:25:25 -04:00
Michael
94ad84363a
Move CachedTagResult and TagLookupJob to its own component 2019-04-21 19:39:50 +01:00
Michael
6bf54e0925
Remove AsyncKeyExchange, HiddenServiceAddressLookup and OutboundContext to their own components 2019-04-21 19:39:50 +01:00
Michael
3db6d80928
Remove unnecessary llarp:: qualifiers 2019-04-21 19:39:50 +01:00
Michael
2412ed59ee
Move SendContext to its own component 2019-04-21 19:39:50 +01:00
Jeff Becker
57dc6cc965
make bundling rc in path builds configurable on runtime 2019-04-18 07:49:54 -04:00
Jeff Becker
2be3401e08
* refactor profiling function names
* utp link layer make ping less active, pre-emptive pump faster
2019-04-17 10:46:00 -04:00
Jeff Becker
9503cc66f0
add disk worker based file flusher logger
make format

remove package.json
2019-04-16 09:20:48 -04:00
Jeff Becker
a45d6db0e0
better profiling 2019-04-16 07:44:55 -04:00
Jeff
c64fbf7cc5 Merge branch 'master' of ssh://github.com/majestrate/loki-network 2019-04-10 09:50:01 -04:00
Jeff Becker
28e07903b6
put reply intro 2019-04-10 09:19:32 -04:00
Jeff
95119a0fe1 always use random paths for lookups 2019-04-09 15:20:02 -04:00
Jeff Becker
e178a70929
use shared_ptr for event loop 2019-04-08 08:01:52 -04:00
Jeff
3783fb0e14 fix inbound sessions 2019-04-06 09:52:04 -04:00
Jeff Becker
c910a2a2fb
more 2019-04-05 10:58:22 -04:00
Jeff
60a42a83a3 better introset publish logic 2019-04-01 15:56:11 -04:00
Jeff Becker
aea9944c3d
mark success on profiles and remove pending lookup 2019-03-31 11:18:47 -04:00
Jeff Becker
b9207ce3e0
unconditionally update introset on dead path 2019-03-30 10:06:09 -04:00
Jeff Becker
24e7151ff5
log and don't remove path on died 2019-03-30 09:12:48 -04:00
Jeff Becker
b849ff9a94
handle path death better 2019-03-30 09:02:10 -04:00
Jeff Becker
74f9949537
aaaaaa 2019-03-27 16:33:15 -04:00
Jeff
aa08d20480 ensure router is known 2019-03-26 22:47:27 -04:00
Jeff
ed10ef0b7d don't shift only build 2019-03-26 22:38:23 -04:00
Jeff Becker
714f5c6b5e
more 2019-03-26 17:01:20 -04:00
Jeff Becker
9e531c026c
fix warning on hop selection 2019-03-26 16:41:41 -04:00
Jeff Becker
8e2b99907f
mark nodes timeout on lookup timeout 2019-03-25 12:47:44 -04:00
Jeff Becker
1882ffc016
don't publish or use bad routers with endpoints 2019-03-25 11:56:15 -04:00
Jeff Becker
f5b9bd40ed
track lookup fails and kill outbound context if too many 2019-03-21 11:39:13 -04:00
Jeff Becker
5d3833ef1a
fix dumb as shit path building that causes premature termiantion because of duplicate hops 2019-03-11 09:58:31 -04:00
Jeff Becker
6489ea2152
make it work 2019-03-08 12:26:29 -05:00
Jeff Becker
8a4c0ce841
more 2019-03-08 12:00:13 -05:00
Jeff Becker
280d85d478
handle protocol discard 2019-03-08 11:00:45 -05:00
Jeff Becker
df17866ff7
breaking protocol change, bundle source txid on outside of path transfer message. 2019-03-08 10:33:49 -05:00
Jeff Becker
a5557e0902
always use current intro for reply 2019-03-08 09:48:09 -05:00
Jeff Becker
c9a4c77fb9
better chill with path building 2019-03-08 09:36:24 -05:00
Jeff Becker
6a09348c47
today's work 2019-03-07 17:53:36 -05:00
Jeff Becker
eceb55623c
more 2019-03-07 10:17:29 -05:00
Jeff Becker
159415c363
delay dns resolution for snode until we have a session with it 2019-03-01 14:10:42 -05:00
Jeff Becker
f8d6becce8
make whitelist happy 2019-02-27 07:55:26 -05:00
Jeff Becker
ef13ec7499
Merge remote-tracking branch 'origin/staging' into staging 2019-02-26 07:55:27 -05:00
Jeff
5c941263e9
Merge pull request #339 from michael-loki/dht_context_testing
Solidify interfaces
2019-02-22 12:56:06 -05:00
Michael
4fb2b39f74
Format changes 2019-02-22 17:18:54 +00:00
Jeff Becker
5642179019
publish retry on failure for introset publishing 2019-02-21 14:55:31 -05:00
Jeff Becker
a81a483cc2
build paths if we don't have enough 2019-02-21 14:26:59 -05:00
Jeff Becker
21ab744b17
build one path if we don't have a path for remote intro on send 2019-02-21 13:21:16 -05:00
Jeff Becker
c7e100787b
swap intros should only swap intros 2019-02-21 13:00:37 -05:00
Jeff Becker
eecc00211f
squash commits and make convotags more "reliable" (probably) 2019-02-21 12:47:35 -05:00
Jeff Becker
5dde4e6351
use source path's intro as being able to reply on convo tags 2019-02-21 12:46:08 -05:00
Jeff Becker
762728c7ec
fix 2019-02-21 12:13:27 -05:00
Jeff Becker
3baf89e8ce
more 2019-02-21 11:45:33 -05:00
Jeff Becker
262000570b
use source path's intro as being able to reply on convo tags 2019-02-21 11:21:41 -05:00
Jeff Becker
b511242632
increment sequence number on good send only 2019-02-20 08:42:50 -05:00
Jeff Becker
b1dd10c007
fix previous commit 2019-02-19 12:04:06 -05:00
Jeff Becker
393e70dfa6
publish new introset on path death 2019-02-19 11:58:58 -05:00
Rick V
5a3947ca5c
clang-format 2019-02-18 17:58:12 -06:00
Jeff Becker
445ed05b32
make format 2019-02-18 14:44:41 -05:00
Michael
887fb4ac62
Replace insert(make_pair()) with emplace() 2019-02-18 10:35:23 +00:00
Michael
048fa83c39
Finish replacement of Router with AbstractRouter 2019-02-14 22:31:31 +00:00
Jeff Becker
550fc3c439
Revert "tweaking handover logic"
This reverts commit 50bfe5d810.
2019-02-14 08:49:07 -05:00
Jeff Becker
50bfe5d810
tweaking handover logic 2019-02-12 09:24:36 -05:00
Jeff Becker
1921704b78
tweak timeout 2019-02-12 07:41:13 -05:00
Jeff Becker
46222df421
refactor 2019-02-11 12:14:43 -05:00
Jeff Becker
05cd1b7f8e
extract more status info for outbound context 2019-02-09 10:39:39 -05:00
Jeff Becker
1a929f9383
send control messages if too quiet to keep convotags alive as needed 2019-02-09 10:26:20 -05:00
Jeff Becker
9a2f11a212
try expiring convos 2019-02-09 09:37:24 -05:00
Jeff Becker
6df133cab2
remove dead sessions when done 2019-02-09 09:15:54 -05:00
Jeff Becker
66753430ad
fix it 2019-02-08 16:29:56 -05:00
Jeff Becker
e1522faeaa
add introspection rpc endpoint 2019-02-08 14:43:25 -05:00
Jeff Becker
6fa10019d0
testnet tweak 2019-02-08 09:12:31 -05:00
Jeff Becker
32ecf64c57
fix testnet 2019-02-07 09:27:28 -05:00
Jeff
4c4f3faf83
Merge pull request #284 from michael-loki/abstract_router
Convert llarp::Router into an abstract base class
2019-02-06 19:09:31 -05:00
Jeff Becker
90e45a810a
limit number of concurrent dht lookups from dns to 4 2019-02-06 10:52:00 -05:00
Jeff Becker
f84256d554
* lower lookup timeout for introsets
* correct previous commit for dns stuff
* allow for multiple parallel introset lookups
2019-02-06 10:05:25 -05:00
Jeff Becker
b40055181d
lower path build timeout to 15s
tweak various dns stuff
2019-02-06 08:02:17 -05:00
Michael
729cd045f1
Convert llarp::Router into an abstract base class 2019-02-06 09:59:47 +00:00
Jeff Becker
a953b34a45
fix crash 2019-02-05 10:06:53 -05:00
Ryan Tharp
fefb012bf8 fix llvm 3.8 2019-02-04 16:29:09 -08:00
Michael
f3b0af9d2f
Create CopyableBuffer type 2019-02-02 23:21:35 +00:00
Michael
2de621b0ad
Disable copy constructing llarp_buffer_t 2019-02-01 01:58:13 +00:00
Ryan Tharp
f20ac0f6e9
Merge branch 'staging' into crypto_interface 2019-01-29 13:59:05 -08:00
Jeff Becker
f1cf63fce7
add initial localhost.loki handling in dns 2019-01-28 10:26:35 -05:00
Michael
f24f554a01
Convert llarp::Crypto into an abstract base class 2019-01-26 15:40:58 +00:00
Jeff Becker
e164970b00
make format 2019-01-24 10:14:54 -05:00
Ryan Tharp
31f196a6eb
Merge pull request #236 from michael-loki/dht_tests
Add test suites for dht bucket, kademlia and key
2019-01-22 15:15:22 -08:00
Michael
7296ebcbe8
Tidy dht code 2019-01-19 01:41:14 +00:00
Ryan Tharp
332336060c Always have a key early (even if no key file set) so you don't regen keys twice 2019-01-17 18:28:30 -08:00
Ryan Tharp
1ba5b75082 Merge branch 'master' of https://github.com/neuroscr/loki-network 2019-01-16 21:25:37 +00:00
Ryan Tharp
c24751f3c1 Jeff approved workaround to read Keyfile early so Name() can be correct during set up/configuration 2019-01-16 13:12:24 -08:00
Michael
da6cdfc0b2
More refactoring to continue to make dependency graph acylic 2019-01-15 23:15:44 +00:00
Michael
081d4dfa32
Reorganise source into more folders 2019-01-11 01:19:49 +00:00
Michael
e5eda0fb8f
Move lokinet unspecific components to a util/ library 2019-01-10 20:07:24 +00:00