Trolli Schmittlauch
bba14f6be3
add tests for entry deletion from cache
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
c1f8ec2c56
write tests for (local) cache lookup on queries
...
#2
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
66be1cc2b6
make local lookup return Sets instead of lists
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
90daa1ba9a
NodeCache: write tests for lookup ( #2 )
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
a803751213
fix infinite loops during lookups
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
18bdcce266
re-implement NodeCache data structure to emulate ring properly
...
- previously, there was at least 1 gap in the identifier ring
- now use normal integer comparison again, but forward lookups using
proxy entries at the ID space boundaries
- wrap cache operations to properly handle proxy elements
- fix all previously working tests
- document choice of cache data structure
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
3db7fcfba5
found an edge case where a Data.Map tree map does not work properly for retrieving a successor.
...
Need to find a better data structure
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
f4847da295
fix types and packaging to make inserting testable
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
aed80263a7
NodeCache: add entries
...
+ tests
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
8d9697c1ef
local cache query lookup + some validation considerations
...
no unit tests done so far
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
e13dac4ded
IPv6 only, noone needs legacy stuff
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
3faa4a8d61
specify protocol operations and affected data
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
357152da46
prototype of server and client successfully communicating via unconnected Datagram sockets
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
6958fc2f98
some tweaks to the demo UDP server
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
303a6ecbfa
start prototyping a UDP socket server, ideas on UDP parsing
...
- start implementing a socket-based UDP server (cannot reply yet)
- some brainstorming about how to parse incoming UDP packet commands
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
76e7c60b96
bump nixpkgs version to include a fix for hoogle
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
6c7feb73c6
ignore .gitignored files for cabal2nix
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
6c90eb75b4
enable async and threading
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
ea6ebe590d
adjust tests to new NodeState
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
0e33d442f9
EpiChord: create a stub cache-invariant checker
...
rough logic is implemented, but only for successors and not
predecessors.
Additionally it just returns empty IO actions instead of lookup
operations, until those are implemented.
part of #1
Untested!
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
88897ea741
generation of key IDs
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
8ece8646d4
fix some more warnings
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
b234c7ac4e
more tests #2
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
9d20589cf8
fix some warnings
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
84a48e63c2
stub main executable file
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
3c981fbf86
implement NodeID generation + tests
...
contributes to #1 #2
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
b41acaf52a
debugged computation bug in ByteString to UInteger conversion
...
likely caused by an overflow, but don't have time to investigate
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
2d05d0644d
buggy prototype of bytestring to UInteger conversion
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
8ad247978a
prototyping the NodeID creation hashing function
...
- misses conversion from ByteString to Integer
- uses unperformant Lazy ByteString builders + conversion to strict ones
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
f1a52ab0b8
re-structure Nix environment to make use of compiler and nixpkgs pinning
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
523c33482c
tests for NodeID ordering and NodeState creation #2
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
bfde27cea6
restructure tests
...
contributes to #2
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
04b3a1f8b4
fix build of executable
2020-05-17 21:31:43 +02:00
Trolli Schmittlauch
57e759836c
implement first actual test case with hspec and run it
2020-05-17 21:31:43 +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