Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Hash Table
This is what my project structure looks like:

    Distributed Hash Table
    ├── src
    │   ├── HashID.java
    │   ├── Node.java
    │   └── RelayManager.java
    ├── wireshark_recordings
    │   └── (This is where you'll find my wireshark recordings/ recording if I just do one big one)
    ├── .gitignore
    └── README.txt 
 
Working Functionality
=====================

Initialization & Discovery: Nodes join, listen, and discover peers through bootstrap and Nearest (N/O) requests.

Storage & Retrieval: Data/addresses (D:/N:) are Written (W) to closest nodes, Read (R) uses iterative search. Nodes share addresses and check peer activity (isActive G/H).

Existence Check: Verifies key presence (E) without data retrieval (F response).

Conditional Updates (CAS): Performs atomic local Compare-and-Swap (C) and attempts network propagation.

UDP Handling: Manages UDP order/duplicates/loss using transaction IDs and timeouts.

Relaying: Routes outgoing messages through intermediary nodes (V) via pushRelay.

FYI: in wireshark_recordings, the "Most_updated" one has the relay functionality

About

Implemented a distributed hash table with a custom UDP protocol from scratch in Java.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages