Commit graph

271 commits

Author SHA1 Message Date
Trolli Schmittlauch 1b5fc039b3 Merge branch 'fix_networking': fix some DHT joins and crashes
several major flaws in the basic DHT communication had been discovered,
see individual commits for details
2020-08-27 00:39:08 +02:00
Trolli Schmittlauch 1a962f1500 stylish run 2020-08-27 00:33:19 +02:00
Trolli Schmittlauch ab9d593a1b bugfix: fix wrong partial Response sender access
- replaces improper record field access of `sender`, only existing in a
  Request, by `senderID` of a Response
- fixes the resulting exception-crash
- adds new function that enqueues a verification mark and timestamp bump
  of an existing cache entry
2020-08-27 00:27:36 +02:00
Trolli Schmittlauch f1b15d5a9e bugfix: fix join by adding join node and waiting for it
- additionally to adding neighbours of join node, add the join node
  itself as a neighbour as well
- wait for migrations from the node
2020-08-26 17:43:32 +02:00
Trolli Schmittlauch fc8aa3e330 bugfix: properly process QueryID responses so FOUND is conserved
fixes dproper discovery of announced responsibility by FOUND
2020-08-25 22:01:01 +02:00
Trolli Schmittlauch b23201a49c Make key lookups fail after request exhaustion instead of providing default
Returning the own node as a default does not make sense in all contexts:
Especially for bootstrap joining this can be harmful, so signalling
instead that the lookup failed makes distinguishing on a case by case
basis possible.

Also contributes to #57
2020-08-25 12:51:33 +02:00
Trolli Schmittlauch 6c5e40f8ad fix wrong passing of arguments in receive-loop part checking 2020-08-24 15:28:06 +02:00
Trolli Schmittlauch 3bd4cb667d explicitly pass socket in send-receive-loop 2020-08-24 10:02:45 +02:00
Trolli Schmittlauch 4ba592d8a2 bugfix: DHT request timeout unit is milliseconds 2020-08-23 15:21:24 +02:00
Trolli Schmittlauch cd8ea07600 bugfix: make unjoined nodes consider all IDs to be their responsibility 2020-08-23 13:04:58 +02:00
Trolli Schmittlauch 2b418189a6 use hard-coded defaults for DHT request timeout and retries 2020-08-23 12:06:26 +02:00
Trolli Schmittlauch c3b1aad1c7 abstract away the hashtag -> NodeID conversion 2020-08-21 23:55:20 +02:00
Trolli Schmittlauch 75c1932ef6 send fetchable post URIs as ID 2020-08-21 23:47:42 +02:00
Trolli Schmittlauch 5511026c8d reduce logging verbosity 2020-08-21 14:40:29 +02:00
Trolli Schmittlauch f330ff1070 successful post publishing with MonadState and random relay selection 2020-08-21 12:31:50 +02:00
Trolli Schmittlauch 32734102cd improve documentation of clientPublishPost 2020-08-20 18:13:50 +02:00
Trolli Schmittlauch 24088581fe bump nixpkgs revision 2020-08-20 15:58:35 +02:00
Trolli Schmittlauch 2548b6a507 automatically subscribe when publishing to a tag 2020-08-20 11:49:23 +02:00
Trolli Schmittlauch 2ee40a7f64 start working on the experiment runner #59 2020-08-19 15:49:39 +02:00
Trolli Schmittlauch b48251d29d Merge branch 'data_migration': closes #36
this simple implementation still contains minor design issues, for which
tickets have been filed though
2020-08-18 12:05:55 +02:00
Trolli Schmittlauch fce5ff9153 implement service data migration for stabilise 2020-08-18 00:19:21 +02:00
Trolli Schmittlauch 969f6d7fc2 fix tests 2020-08-17 13:39:22 +02:00
Trolli Schmittlauch 6982a0b245 indicate in LeaveRequest whether to expect a migration
this information is used to decide whether to await an incoming
migration in `respondLeave`
2020-08-17 12:36:02 +02:00
Trolli Schmittlauch b8cedada48 prevent threads not awaiting migration from blocking their response 2020-08-17 11:37:04 +02:00
Trolli Schmittlauch c49c1a89c9 wait for migration to complete on join
also clean up migration entry after success
2020-08-17 00:22:48 +02:00
Trolli Schmittlauch 414564705a possibility to wait for a migration to complete 2020-08-16 23:26:31 +02:00
Trolli Schmittlauch 581757965a trigger service data migration at join 2020-08-16 17:53:56 +02:00
Trolli Schmittlauch 470ce6f39a correct the slice of transfered tags at leave 2020-08-15 23:58:47 +02:00
Trolli Schmittlauch 4302452d18 implement vserver leave and trigger data transfer initiation
still unused though
contributes to #36
2020-08-15 22:56:16 +02:00
Trolli Schmittlauch d2e4359a21 rename join function to clarify it just joining a single vserver 2020-08-15 17:37:14 +02:00
Trolli Schmittlauch 8db8907163 filter out spoofed requests for important operations like Join, Leave, Stabilise 2020-08-15 17:19:53 +02:00
Trolli Schmittlauch 5f7ca23f71 add missing leave request sending function 2020-08-14 22:59:28 +02:00
Trolli Schmittlauch 0ecad38748 merge implemented mock relay service API
closes #32 #41
2020-08-14 11:29:50 +02:00
Trolli Schmittlauch 4339cace20 function for initially publishing a post 2020-08-14 11:06:58 +02:00
Trolli Schmittlauch bf277c5a73 unsubsribe from tag 2020-08-13 23:50:33 +02:00
Trolli Schmittlauch 402378a78b signal and handle non-responsibility to subscriptions 2020-08-13 23:44:24 +02:00
Trolli Schmittlauch e646045ab2 include port in Origin header 2020-08-13 21:57:28 +02:00
Trolli Schmittlauch e9ae258dde subscribe to tag 2020-08-13 21:12:39 +02:00
Trolli Schmittlauch 375014812a use a shared HTTP manager for requests 2020-08-13 19:05:38 +02:00
Trolli Schmittlauch bdb00a32f3 add nix shell environment without HIE for smaller foot print 2020-08-13 13:09:48 +02:00
Trolli Schmittlauch dcd4a7b563 add nix shell environment without HIE for smaller foot print 2020-08-13 13:08:38 +02:00
Trolli Schmittlauch 580410e0b4 simple post fetch worker thread 2020-08-13 13:07:50 +02:00
Trolli Schmittlauch c1ce386b65 send prepared subscriptions and clean up on success 2020-08-12 15:23:10 +02:00
Trolli Schmittlauch 2e88a4079b extract and build subscriber payload for sending 2020-08-12 14:07:19 +02:00
Trolli Schmittlauch 1d808b6776 fix typo 2020-08-12 12:16:20 +02:00
Trolli Schmittlauch 1258f673da flush responsibility cache and retry in post queue delivery 2020-08-12 12:07:41 +02:00
Trolli Schmittlauch 96c1963a4f actually check own responsibility for tags before accepting posts 2020-08-11 00:16:10 +02:00
Trolli Schmittlauch 7036867ae0 implemented first Servant client query 2020-08-03 22:50:48 +02:00
Trolli Schmittlauch 20e51ecca4 define API client functions 2020-08-02 14:59:03 +02:00
Trolli Schmittlauch 8faa9dc016 fix test by providing a MockService 2020-08-01 18:58:49 +02:00