Commit Graph

24 Commits

Author SHA1 Message Date
Kleissner
175f1fb438 Fix race condition in FindNode 2021-09-24 13:45:12 +02:00
Kleissner
2937154c8d Add filters for low-level packet and high-level message interception for debugging purposes. Close #4 2021-07-31 17:29:14 +02:00
Kleissner
dc54f94351 Fix in sendInfoRequest 2021-07-29 04:41:18 +02:00
Kleissner
fc1f0407f3 -> Alpha 3.
DHT: Store and Get functions use search client.
Multiple improvements in search client. Alpha parameter is now provided by init caller.
StoreDataDHT add closestCount parameter.
2021-07-29 03:17:14 +02:00
Kleissner
891e621e8a DHT: Add Search Client which runs the search in concurrent levels. This means faster results.
Add function FilterSearchStatus to get notified on the status of searches for debugging.
FindNode uses the new search client.
2021-07-28 01:28:31 +02:00
Kleissner
66ebf7c91e New DHT function IsNodeContact to check if node is in local routing table 2021-07-07 02:50:12 +02:00
Kleissner
560f019786 Remove unnecessary module for dht subdirectory. This streamlines dependencies on the core module. 2021-07-07 02:38:08 +02:00
Kleissner
e929d6ba2f Make result channel buffered. Function QueueResult to queue the incoming message non-blocking.
This fixes a bug (write on closed channel).
2021-05-06 14:48:34 +02:00
Kleissner
611dfa3b1c RefreshBuckets: Use self ID on bucket 0. 2021-04-25 03:44:52 +02:00
Kleissner
1c03afd63b Fix: Check if channel is closed. 2021-04-25 00:07:53 +02:00
Kleissner
6693d442a6 Add function dht.RefreshBuckets. Use RW mutex for accessing hash table. 2021-04-24 22:42:39 +02:00
Kleissner
27152cb145 Provide old and new peer in ShouldEvict. New comparison function IsNodeCloser.
Remove unused code (which was likely buggy anyway).
2021-04-22 05:45:46 +02:00
Kleissner
e432696ad1 dht.Get return sender's nodeID 2021-04-21 03:06:30 +02:00
Kleissner
8a33f19986 Remove unnecessary ListIR. Removes complexity. 2021-04-21 02:49:31 +02:00
Kleissner
96213d4ed9 Minor fixes. dht.Store and Get work now! 2021-04-10 15:43:56 +02:00
Kleissner
27ec231e14 Moving store code to nested module 2021-04-09 22:41:08 +02:00
Kleissner
c44e57a0a0 Add information request list to DHT structure. It keeps track of requests and matches responses.
Break up SendRequest into individual functions SendRequestStore and SendRequestFindNode, which improves readability.
Alpha parameter must be now passed. MarkNodeAsSeen is exported.
Breaking up dht.iterate and embedding into 3 functions Get, FindNode, and FindValue.
2021-04-09 16:07:20 +02:00
Kleissner
d83123bf46 dht.GetClosestContacts introduce custom filter function 2021-04-05 14:45:33 +02:00
Kleissner
8b329f7258 Enable go module for sub packages 2021-03-16 22:19:15 +01:00
Kleissner
3080119fc1 Initial working Kademlia network - peer list exchange is working!
Using the announcement and response messages to exchange peer lists. Fixes in encoding.
Add arbitrary Info structure to DHT Lite/Node.
2021-03-15 22:25:05 +01:00
Kleissner
323f379ee7 Message encoding of announcement and response messages.
More changes coming.
Rename of organization to Peernet s.r.o.
InformationRequest proper termination signal.
2021-03-14 04:30:57 +01:00
Kleissner
f120971944 Initial code of DHT Lite. Requires more testing and iterations (pun intended). 2021-03-08 03:15:52 +01:00
Kleissner
b5395d9186 DHT: Add in-memory store. 2021-03-06 12:45:20 +01:00
Kleissner
5ff6b5ccc1 DHT: Starting with the fork, initially only the hash table.
The distributed part follows.
2021-03-06 11:55:37 +01:00