Folders and files
| Name | Name | 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