Commit Graph

311 Commits

Author SHA1 Message Date
Jeff Becker
6fd714d193
contrib/testnet: fix up testnet config generator to make super centralized topology
llarp/context.cpp, llarp/nodedb.{h,c}pp: load netdb AFTER whitelist
llarp/router/router.cpp: explore always
llarp/router/{i,}rc_lookup_handler.{h,c}pp explore with whitelist, update routers with lookup before stale
2020-01-14 15:12:47 -05:00
Jeff Becker
9322df013b
check with rc handler before insert 2020-01-14 13:39:08 -05:00
Jeff Becker
2af64671bf
make it compile 2020-01-14 13:10:10 -05:00
Jeff Becker
0526fef37b
store RCs if valid 2020-01-14 13:08:27 -05:00
Jeff Becker
09f5f6dfa7
disable iterative lookup 2020-01-14 07:07:10 -05:00
Jeff
0e2c5736a8
Merge pull request #1034 from majestrate/dht-timeout-fixes-2020-01-10
dht timeout tweak
2020-01-10 17:35:56 -05:00
Jeff Becker
78cdf8f96b
variable lookup timeout on participants 2020-01-10 11:23:30 -05:00
Jeff Becker
8bb492da6e
dht timeout tweak 2020-01-10 10:45:25 -05:00
Jeff Becker
b2784dd5ec
explore faster 2020-01-09 06:14:04 -05:00
Jeff Becker
a3e7324e9a
make it compile 2020-01-07 13:00:03 -05:00
Jeff Becker
c3b14b32b4
relays do profiling and not hand out "shit" routers in explore 2020-01-07 12:59:53 -05:00
Jeff Becker
8b8d636ded
make format 2019-12-22 09:16:28 -05:00
Thomas Winget
e53e3db171 make dht context use new libuv timers 2019-12-18 13:35:18 -05:00
Stephen Shelton
66a058a2af Make format 2019-12-06 10:13:09 -07:00
Stephen Shelton
93b8832026
Merge branch 'dev' into private-keys-backup-support 2019-12-03 11:20:45 -07:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs 2019-11-22 16:23:19 -05:00
Stephen Shelton
db56e17c23 Rename bencode function for clarity 2019-11-22 14:14:37 -07:00
Jeff Becker
d54dc7a988
prune dht peers every router tick 2019-09-10 10:16:32 -04:00
Michael
edd0ec398f
Move thread stuff to subdirectory 2019-09-03 20:52:28 +01:00
Michael
1aec0dfa2b
Move logging to subdirectory 2019-09-03 20:52:27 +01:00
Jeff Becker
b904a4ee22
fix explore 2019-08-28 08:44:50 -04:00
Michael
777261cb20
Use ToString over ToHex 2019-08-19 22:26:37 +01: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
Michael
f9e9227e19
Fix gcc trunk warnings 2019-08-02 10:29:08 +01:00
Jeff Becker
7e9ef19f69
use std::min 2019-07-30 13:57:23 -04:00
Jeff Becker
f4ac918b7e
remove -1 2019-07-30 13:56:24 -04:00
Jeff Becker
d595b51b0b
fix dht exploration ;~; 2019-07-30 11:59:12 -04:00
Jeff Becker
e1dd7ad97f
revert dht stuff 2019-07-29 18:33:49 -04:00
Jeff Becker
db2206664a
fix crashes in testnet 2019-07-29 11:10:20 -04:00
Jeff Becker
9a8470bcc1
* const correctness
* use std::map's upper_bound to find many closer entries
* randomize key for exploration to allow many explore jobs in paralell
2019-07-29 09:08:40 -04:00
Thomas Winget
baf8019fe5 Refactor Router code into more classes
This commit refactors functionality from the Router class into separate,
dedicated classes.
There are a few behavior changes that came as a result of discussion on
what the correct behavior should be.
In addition, many things Router was previously doing can now be provided
callback functions to alert the calling point when the asynchronous
action completes, successfully or otherwise.
2019-07-25 14:11:02 -04:00
Jeff Becker
1ee90f8852
do lookup for RC to neighboor even if we have them in our DHT buckets so we get an updated RC in reply 2019-07-19 13:21:20 -04:00
Jeff Becker
f62446e1a4
make it compile 2019-07-17 10:51:42 -04:00
Jeff Becker
a0f32fde13
reduce logging 2019-07-17 08:25:51 -04:00
Jeff Becker
12d4bfc379
always ask peers for next closest 2019-07-15 14:15:53 -04:00
Jeff Becker
16e20a9e79
try fixing bootstrap 2019-07-15 12:56:09 -04:00
Michael
488695047f
Remove redundant else blocks 2019-07-09 22:54:46 +01:00
Michael
d6751e3eeb
Move subset of messages to right directory 2019-06-19 21:35:26 +01:00
Michael
b89689fec3
Refactor path build code 2019-06-18 22:51:41 +01:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers 2019-05-28 20:45:08 +01:00
Michael
3f53965b71
Remove all use of IBEncodeMessage 2019-05-24 03:01:36 +01:00
Jeff
28623766c1
Merge pull request #617 from majestrate/master
changes after consensous
2019-05-22 08:06:26 -04:00
Michael
7ca0927d8f
Replace dict_reader/list_reader with version which doesn't involve indirection 2019-05-22 01:36:03 +01:00
Jeff Becker
73f1d34239
make format and revert stupid alloc changes 2019-05-20 08:19:33 -04:00
Jeff Becker
8bee0a3d5e
fix 2019-05-14 12:41:47 -04:00
Jeff Becker
06be908369
use 1 for dht exploration 2019-05-14 12:15:46 -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
e80f7419b0
check for allowed by network 2019-05-09 08:48:21 -04:00
Jeff Becker
15fd9c1bef
explicit not found for non staked nodes 2019-05-09 08:38:21 -04:00
Jeff Becker
779b1f4df5
more timeout tweaks and disable profiling on service nodes 2019-05-06 10:21:47 -04:00
Jeff Becker
69ffef30bb
increase dht request timeout from 5s to 30s 2019-05-05 19:15:58 -04:00
Jeff Becker
d423ee02d2
use shared_ptr 2019-05-03 09:15:03 -04:00
Michael
9ee525a006
Fix shadowing warnings 2019-04-26 00:21:19 +01:00
Michael
4143472a17
Add cmake module to target a library as 'system', and fix a few warnings 2019-04-25 00:27:31 +01:00
Michael
3a8715d8e4
Fix introset tests 2019-04-23 10:25:03 +01:00
Michael
98e691f315
Tidy up more parts of the service/ directory 2019-04-22 22:28:10 +01:00
Michael
e33a33635c
Remove usage of raw new from service classes 2019-04-22 18:38:29 +01:00
Michael
c39c931d03
Remove IStateful virtual inheritance 2019-04-19 16:10:26 +01:00
Jeff Becker
94eb37d490
bundle RC in build record to improve build success rates. 2019-04-17 15:05:54 -04:00
Jeff Becker
0906888bff
fix findrouter 2019-04-16 14:55:47 -04:00
Jeff Becker
5938cec770
fix gotrouter handling 2019-04-16 14:06:12 -04:00
Jeff Becker
05dc2fb679
decay profiles unconditionally 2019-04-16 13:30:07 -04:00
Jeff Becker
66432afdda
proper explore for clients 2019-04-16 13:00:24 -04:00
Jeff Becker
90e92c66c2
insert bootstrap nodes into nodedb and explore more 2019-04-16 12:44:51 -04:00
Jeff Becker
c26145f70e
* fix up integration tests
* make recursive router lookup backtrack
2019-04-12 11:29:48 -04:00
Jeff Becker
e08986e457
fix previous commit 2019-03-27 09:53:37 -04:00
Jeff Becker
3a4d8f16a7
more 2019-03-27 08:36:27 -04:00
Jeff
1deafe444a serve non connected dht nodes 2019-03-27 00:07:57 -04:00
Jeff Becker
6c5a015f4f
unconditional reply 2019-02-23 12:22:34 -05:00
Jeff Becker
1694337cab
ONLY CHECK FOR ACTIVE DHT NODES 2019-02-23 11:46:29 -05:00
Jeff Becker
482dce28bd
make it work 2019-02-22 14:04:47 -05:00
Michael
13a9f65520
Fully define interface for dht::Context 2019-02-22 15:08:08 +00:00
Michael
a00d6afc5e
Convert llarp_buffer_t to be a class with methods 2019-02-17 13:09:48 +00:00
Michael
048fa83c39
Finish replacement of Router with AbstractRouter 2019-02-14 22:31:31 +00:00
Jeff Becker
46222df421
refactor 2019-02-11 12:14:43 -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
e24b595191
more dht fixing, only pick the most up to date entity for reply 2019-02-08 08:42:12 -05:00
Jeff Becker
d7f715c632
don't send more than 1 introset in reply 2019-02-08 08:21:55 -05:00
Jeff
f0dc5f2b48 unbreak build 2019-02-07 18:04:28 -05:00
Jeff
0f777d822b Merge branch 'staging' of ssh://github.com/majestrate/loki-network into staging 2019-02-07 17:49:29 -05:00
Jeff
ba8313e57e limit replies on introset lookup, pick newest 2019-02-07 17:48:41 -05:00
Michael
729cd045f1
Convert llarp::Router into an abstract base class 2019-02-06 09:59:47 +00:00
Michael
1ba6507a2f
Tests for dht::ServiceAddressLookup 2019-02-05 21:35:46 +00:00
Michael
b1213c7a7c
Tests for dht::TagLookup 2019-02-05 21:18:38 +00:00
Ryan Tharp
4bf4faa956 make format 2019-02-04 16:41:33 -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
c3bf68b502
Merge branch 'staging' into dht_tests 2019-01-29 13:59:54 -08:00
Michael
f24f554a01
Convert llarp::Crypto into an abstract base class 2019-01-26 15:40:58 +00:00
Michael
1f95f1e78f
More unit tests of dht internals 2019-01-26 00:40:40 +00:00
Michael
3f320009d7
Introduce abstract class for dht::Context 2019-01-26 00:40:40 +00:00
Michael
40449df0f1
Split classes out of dht::Context 2019-01-26 00:40:40 +00:00
Michael
ccb5f6b696
Add tests for dht::TXOwnere 2019-01-19 18:16:40 +00:00
Michael
2d395cc3f9
Move code to correct home 2019-01-19 18:16:10 +00:00
Michael
550669e318
Fix typo in class name 2019-01-19 13:54:50 +00:00
Michael
80bd41916e
More tidying of dht code 2019-01-19 13:49:15 +00:00
Michael
03d56c1591
Add test suites for dht bucket, kademlia and key 2019-01-19 01:41:14 +00:00
Michael
7296ebcbe8
Tidy dht code 2019-01-19 01:41:14 +00:00
Michael
da6cdfc0b2
More refactoring to continue to make dependency graph acylic 2019-01-15 23:15:44 +00:00
Michael
6e38e85a79
Produce hierarchy of 'libraries' inside libllarp 2019-01-15 23:15:43 +00:00
Michael
79157414f3
Split crypto.hpp into 3 different files 2019-01-13 16:32:51 +00:00
Michael
04e0fe3ad7
Move crypto code to a subdirectory 2019-01-13 15:06:16 +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
Michael
167d5aca6d
Add test suite for bencode 2019-01-10 17:43:33 +00:00
Michael
516466f5be
Mark more AlignedBuffer constructors as explicit 2019-01-02 01:04:08 +00:00
Michael
ea19093a20
Remove const byte* conversion operators from llarp::AlignedBuffer 2019-01-02 01:04:04 +00:00
Michael
58364a01c8
Remove array conversion operators from llarp::AlignedBuffer 2019-01-02 01:04:01 +00:00
Michael
334161c9bb
Remove data() conversions from llarp::AlignedBuffer 2019-01-02 01:03:53 +00:00
Michael
8f053106e6
Add tests for llarp::dht::Key_t 2018-12-30 18:56:34 +00:00
Jeff Becker
49c898ed92
Merge remote-tracking branch 'origin/master' into staging 2018-12-26 11:27:11 -05:00
Jeff
4b2a1ea9f3 make format and attempt to fix #158 2018-12-23 08:29:11 -05:00
Jeff Becker
8c8172aeb1
Merge remote-tracking branch 'origin/master' into dev 2018-12-20 12:56:08 -05:00
Jeff Becker
3e37165749
Merge remote-tracking branch 'origin/master' 2018-12-20 12:23:01 -05:00
Jeff Becker
e7f5eeff51
use fewer allocations 2018-12-20 11:49:05 -05:00
Michael
037cb87523
Convert llarp::AlignedBuffer to be backed by std::array 2018-12-20 16:16:18 +00:00
Jeff Becker
6fc42dc7ad
fixes 2018-12-19 12:48:29 -05:00
Jeff Becker
cca19290de
session renegotiation, RC expiration, more utp unit tests, network isolation. 2018-12-19 11:17:41 -05:00
Ryan Tharp
46d488d9ab improve logging explanation for testnets 2018-12-18 18:53:11 +00:00
Jeff Becker
3115636024
try fixing crash 2018-12-18 13:36:19 -05:00
Michael
4257b62e88
Add .cpp files for all .hpp files 2018-12-15 16:21:52 +00:00
Jeff Becker
be234e4b6e
* make format
* snode to snode direct traffic

* wire up dns on service node tun
2018-12-13 11:14:44 -05:00
Michael
85dde7b6b0
Move remaining include/llarp headers to llarp/ 2018-12-12 02:53:02 +00:00
Michael
e887b4e9c7
Move service* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
5aa7f49470
Move routing* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
b92ea0521b
Move router_contact.hpp to llarp/ 2018-12-12 02:53:01 +00:00
Michael
fddc8734d2
Move dht* to llarp/ 2018-12-12 02:53:01 +00:00
Michael
7be452092c
Convert llarp_crypto to be a true C++ class 2018-12-11 00:53:55 +00:00
Michael
6358b25db0
Convert llarp_nodedb to be a true C++ class 2018-12-10 23:31:39 +00:00
Michael
f0fce5b68a
Convert llarp_router to be a true C++ class 2018-12-10 20:15:35 +00:00
Jeff Becker
fad734a5ce
strict types for pubkey, secretkey and routerid 2018-12-10 12:22:59 -05:00
Michael
30e9dca2e5
Convert llarp_logic to be a C++ class 2018-12-10 14:15:11 +00:00
Jeff Becker
622ed8d12e
fix crash on premature close of event loop (also make format) 2018-12-02 13:07:07 -05:00
Jeff Becker
e6037ff060
pack exit traffic 2018-11-28 11:38:20 -05:00
Jeff Becker
d25d35c06e
dht 2018-11-28 10:27:36 -05:00
Jeff Becker
10c2d1552d
don't connect to explored routers 2018-11-28 10:18:18 -05:00
Jeff
067f6c7b26 make format and make it compile with clang 2018-11-22 12:53:53 -05:00
Jeff Becker
cf57eca7c3
check keyspace distance and inform not found when next peer is not closer than previous peer 2018-11-22 09:20:49 -05:00
Jeff Becker
3dd466629b
check for nullptr 2018-11-19 12:14:35 -05:00
Jeff Becker
e0f1d985c8
more dht tweaks 2018-11-08 14:25:04 -05:00
Jeff Becker
38a92cb1a8
fixes for testnet 2018-11-08 10:15:02 -05:00
Michael Thorpe
33bfaf7ecd
Enable -Wextra
test criteria:
- test build on macOS
- test build in debian docker container
- test build in fedora docker container
2018-11-07 15:31:13 +00:00
Ryan Tharp
5d90cbe895 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-03 13:43:21 +00:00
Ryan Tharp
7af23dcaad format 2018-11-03 06:23:05 -07:00
Ryan Tharp
67390de0c2 merge 2018-11-03 06:19:18 -07:00
Jeff Becker
2d279e83fd
initial tcp connect for epoll 2018-11-01 08:47:14 -04:00
despair
d425b5d308 implement tcp evloop on win32
(with its now-obsolete distinction between socketfd and fd)

sockets and file descriptors used to be distinct objects....back in the
16-bit Winsock 1.1 era, which needlessly complicated the 32-bit port
back then. these days one can use [Read|Write]File(2) to operate on
sockfds...which also have some of the semantics of [read|write]v(2)
i.e. the scatter-gather thing it's known for is done in async handler

-rick

variants are nice

added note to self

clang-format

link abyss properly

oops

shut up

*shrugs*

oops forgot to start winsock

moved our async io status flags to the base class

let derived classes override them as needed

this is probably a synchronous op _anyway_

fix typo

wtf
2018-10-30 00:16:33 -05:00
Jeff Becker
dbd2c41909
use event loop for time 2018-10-29 12:48:36 -04:00