Commit graph

72 commits

Author SHA1 Message Date
Maxim Shishmarev
ce5bb651d1 Allow messenger clients to proxy to Loki's file server 2019-12-18 15:14:11 +11:00
Maxim Shishmarev
4ff4e632ee Allow messenger clients to proxy to other snodes 2019-12-18 13:50:27 +11:00
Maxim Shishmarev
adaa4c1de7 Add public ed25519 key derivation 2019-12-12 16:10:38 +11:00
Maxim Shishmarev
d28a09b28a Incorporate new keys 2019-12-12 13:48:49 +11:00
Jason Rhinelander
b35a92625a Fetch SN private key from lokid on startup
This changes storage server to fetch the SN private key via the RPC call
added in lokid 6.x (which is also used by lokinet) at startup (i.e.
before starting the main event loop).

As a useful side effect of this change it delays storage server startup
until lokid is ready and running as a service node, which means we get
earlier diagnostics about failures from storage server.  It also means
that lokid is very likely to get a ping from the storage server right
away--currently if you restart both storage server starts up must faster
and so the first ping typically fails, which means lokid can't send
uptime proofs until after the second ping.

The --lokid-key option is still accepted as an argument but now ignored
(so that people with it in a config file can still start up).

This also adds a templated function to convert byte sequences to hex to
be able to print it.  (Also removes one from http_connection.cpp that
did the same via sodium for a specific `std::array<uint8_t, 32>`, but
that wasn't actually called anywhere).
2019-12-04 01:04:40 -04:00
Jason Rhinelander
b0dee93624 Allow overriding lokid rpc ip
This makes it easier to work with advanced SN setups that, for example,
split duties between local machines without having to set up port
forwarding.
2019-12-03 15:55:16 -04:00
Maxim Shishmarev
8c9192898c More robust clean-up for incoming connections 2019-10-25 11:28:19 +11:00
Maxim Shishmarev
21d0683f7f Improve diagnostics for open file descriptors 2019-09-25 16:51:05 +10:00
Maxim Shishmarev
6a999b06a0 Properly shutdown http (lokid) connection on deadline timer 2019-09-25 12:15:46 +10:00
Maxim Shishmarev
3e83f84dca
Merge pull request #269 from msgmaxim/correct_hash_testing
Derive tester/testee based on older (more stable) block
2019-09-06 14:28:07 +10:00
Maxim Shishmarev
a0f152018f Derive tester/testee based on older (more stable) block 2019-09-03 16:51:10 +10:00
Maxim Shishmarev
69aa778a70 Make storage server aware of decommissioned nodes; test them 2019-09-02 17:40:17 +10:00
Maxim Shishmarev
d05e65e1c2 Periodically ping other service nodes 2019-08-26 17:29:38 +10:00
Maxim Shishmarev
5d09fbe617 Separate type for user pubkey 2019-08-23 11:58:16 +10:00
Maxim Shishmarev
1860248061 Expose error logs via get_logs endpoint 2019-08-07 17:57:07 +10:00
Maxim Shishmarev
bcd6408831
Don't foget to unsubscribe connections from message notifications (#214) 2019-07-05 16:49:26 +10:00
Beaudan Campbell-Brown
966c60f0bd Bootstrap ips (#213)
* Initial swarm bootstrapping from seed nodes

* Bootstrap the IPs when we have finished syncing, plus don't overwrite valid IPs with defaults

* Review fixed plus lint
2019-07-05 16:15:47 +10:00
Beaudan Campbell-Brown
b2311e65f4
Merge pull request #206 from sachaaaaa/cleanup_main
Declutter main
2019-07-03 14:09:36 +10:00
sachaaaaa
0eac8bbefb declutter main: extract command line parser logic and logging stuff 2019-07-02 16:43:54 +10:00
Beaudan
e918e1c44a Make parse_swarm_update take a block update reference rather that a callback 2019-07-01 17:08:17 +10:00
sachaaaaa
119af0697b Send/verify signature of ssl certificate for snode 2 snode (#180)
* sign cert

* missing changes

* fix bad merge

* use sn_record_t::pub_key() + clang format

* prevent clang format from reordering #includes

* Address reviews

* need travis to find openssl 1.1.1
2019-06-27 14:08:14 +10:00
Maxim Shishmarev
c2d393abc6
Final (minor) API changes before the release (#181)
* remove namespace service_node

* API changes

* fix unit tests not compiling

* clang format
2019-06-26 14:42:45 +10:00
Maxim Shishmarev
9f73e4705a
Merge pull request #173 from msgmaxim/blockchain-req
More refactoring: use a common interface for all Lokid requests
2019-06-24 10:22:12 +10:00
Maxim Shishmarev
d1736a04e9 run clang format 2019-06-24 10:20:43 +10:00
Maxim Shishmarev
881f294ff2 Use lokid client to get swarms 2019-06-21 17:49:56 +10:00
Maxim Shishmarev
f130de3643 Use lokid client to send pings 2019-06-21 17:20:19 +10:00
Maxim Shishmarev
bb8fa64a91 Use lokid_client for blockchain requests 2019-06-21 16:30:26 +10:00
Maxim Shishmarev
4b1dbb2127 small refactor: use common function for sn-sn calls 2019-06-21 12:26:17 +10:00
Beaudan
bd0d4efa0d Add HTTP_ERROR, only trigger callback once, move socket shutdown to destructor 2019-06-20 15:52:55 +10:00
Maxim Shishmarev
681bf862ed better command line arguments handling 2019-06-19 13:25:24 +10:00
Maxim Shishmarev
bcefe0a400
Provide RPC endpoint for retrieving peer test results and other stats (#160)
* Provide RPC endpoint for retrieving peer test results and other stats

* use deque instead of vector

* cutoff as 60 mins from now
2019-06-18 14:54:32 +10:00
Beaudan
135dbb4a05 Only retry storage test for 1 min. Plus a cheeky format 2019-06-17 16:59:01 +10:00
Maxim Shishmarev
7e2f5d3a8d
Merge pull request #150 from loki-project/master
Merge master into dev
2019-06-07 17:01:10 +10:00
sachaaaaa
b607bcb920 use ssl in new "make_https_request" function, used for sn to sn comm 2019-06-07 10:05:05 +10:00
sachaaaaa
1e4e3dbac5 enable SSL for http server 2019-06-07 10:04:34 +10:00
Maxim Shishmarev
94149d3d45 perform blockchain testing alongside storage testing 2019-05-30 10:57:49 +10:00
sachaaaaa
a398a2b412 Token Bucket rate-limiting for snode to snode requests 2019-05-27 16:06:49 +10:00
Maxim Shishmarev
9c1be0cbc1 check tester before performing storage test 2019-05-15 11:20:55 +10:00
Maxim Shishmarev
8704a23b55 disambiguate method name 2019-05-13 15:14:45 +10:00
Maxim Shishmarev
104b72697a check signature for message test requests; address other review comments 2019-05-13 11:20:46 +10:00
Maxim Shishmarev
6314864335 add responding to message tests, retrying if necessary 2019-05-10 15:47:26 +10:00
sachaaaaa
d823bf2a69 command line lokid rpc port option 2019-05-10 11:27:26 +10:00
Maxim Shishmarev
7fe55d7651 Peer testing, part I: select tester and testee 2019-05-06 14:15:34 +10:00
sachaaaaa
8240222798 Addressed all suggestions 2019-05-06 11:43:59 +10:00
sachaaaaa
64f850469c Generate and verify signatures for inter-snode requests 2019-05-02 16:34:22 +10:00
sachaaaaa
69c364cc18 Improve naming and pass-by-reference consistency 2019-05-02 15:00:01 +10:00
Maxim Shishmarev
53631df28d explicitly write response on quit (test only code) 2019-05-01 12:37:31 +10:00
Maxim Shishmarev
c8f647a928
Merge pull request #80 from msgmaxim/fix-warnings
remove unused code and fix some warnings
2019-04-26 11:40:47 +10:00
Maxim Shishmarev
1215aba6b9
combine code for single messages and batches (#81)
* combine code for single messages and batches

* fix typo
2019-04-24 16:59:41 +10:00
Maxim Shishmarev
e7aa6a00d0
Merge pull request #79 from msgmaxim/resend-on-failure
Retry pushing single messages on failure
2019-04-23 16:12:58 +10:00