Commit graph

175 commits

Author SHA1 Message Date
Trolli Schmittlauch ad1465c5fe use global cache adding function 2020-05-26 08:55:44 +02:00
Trolli Schmittlauch e3bfa26ddb join request + large FediChord refactoring
- implement sending of initial join request sending, response parsing
  and cache population (untested but compiles)
- refactor basic types and their functions into Hash2Pub.FediChordTypes
  to prevent import loops, leaving Hash2Pub.FediChord to contain the
  high level actions called from Main
2020-05-25 22:03:24 +02:00
Trolli Schmittlauch d5841d13fd extract queryID message sending function so it can be used for first join 2020-05-22 22:12:38 +02:00
Trolli Schmittlauch e8091b0a29 change all function definitions to new NodeState types
- adjust implementation

contributes to #20
2020-05-21 23:48:36 +02:00
Trolli Schmittlauch fe673dc255 make NodeState a typeclasse, define setters and getters on its representations
contributes to #20
2020-05-21 23:40:10 +02:00
Trolli Schmittlauch 99a2b0ba09 add instance deriving instructions 2020-05-20 19:27:51 +02:00
Trolli Schmittlauch f6c252d314 sending a queryID request compiles (untested) 2020-05-20 18:55:24 +02:00
Trolli Schmittlauch beffab99a0 clarify counting of FediChordMessage parts 2020-05-19 19:50:36 +02:00
Trolli Schmittlauch c31baa3635 run stylish 2020-05-19 17:55:40 +02:00
Trolli Schmittlauch 8d18f952cd implement send-receive-acknowledge-retry loop for requests 2020-05-19 17:53:13 +02:00
Trolli Schmittlauch 0e6f126b3b Merge branch 'master' into dhtNetworking 2020-05-19 16:51:43 +02:00
Trolli Schmittlauch 84bcd676ae move protocol data definitions to own module to prevent cyclic imports 2020-05-19 16:30:56 +02:00
Hécate 41e999ed99 Linting integration
This commit brings in an HLint configuration file
and several recommended modifications such as:

* End-of-line extra spaces removal;
* Import lines ordering;
* Redundant $ removal;
* Generalisation of ++ and map to <> and fmap;
* Preferring `pure` over `return`;
* Removing extraenous extensions.

And finally, a `stylish-haskell` helper script
that detects if code files are dirty. Can be useful for CI,
although manually calling it can be nice if you would rather
first implement then beautify.
2020-05-19 12:42:06 +02:00
Trolli Schmittlauch 60c164dbb0 remove unnecessary directory level 2020-05-19 00:01:32 +02:00
Trolli Schmittlauch 8b01ad2f37 remove unnecessary directory level 2020-05-17 21:31:44 +02:00
Trolli Schmittlauch 21fef145a0 working project structure with tests
- restructured project again: splitting into executable and Hash2Pub
  library
- placeholder test file is successfully compiled and run
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch 30cfed81ea restructure nix development environment, now with Hoogle 2020-05-17 21:31:43 +02:00
Trolli Schmittlauch 6329f815d1 Initial packaging as a Cabal package, in preparation for #2
- also restructures shell.nix to parse cabal file instead of directly
  specifying dependencies
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch 3b3ee09575 fix Haddock documentation, contrinutes to #8 2020-05-17 21:31:43 +02:00
Trolli Schmittlauch 08932cf80a selectively export only needed constructors 2020-05-17 21:31:43 +02:00
Trolli Schmittlauch 4a89ffe25a improve documentation, contributes to #8 2020-05-17 21:31:43 +02:00
Trolli Schmittlauch 3f9452ab7e choose and implement data structures for node state and cache 2020-02-27 22:10:57 +01:00
Trolli Schmittlauch ce4cc385b8 rename whole project and make DHT implementation as a project specific module 2020-02-26 14:11:33 +01:00
Trolli Schmittlauch 6c5faa4fc6 rename DHT implementation as it deviates from the EpiChord paper 2020-02-24 22:56:03 +01:00
Trolli Schmittlauch e83710f10b Start implementing the Epichord DHT: NodeID type 2020-02-24 21:53:47 +01:00