A distributed hash table implementation based on the Chord protocol.
Distributed Systems, ECE-NTUA 2020-2021
- Python implementation using Flask and HTTP requests for sending and routing messages
- CLI tool
- Tests to measure system performance on given input
- Project report
Install dependencies first! (./dependencies.sh
)
Each node operates both as a server and as a client.
- Start bootstrap node, providing necessary flags:
python3 server.py -bs -p 5000
-k repl_factor
, where repl_factor is a positive int, default = 1-c linearizability
, default = eventual
- Start other nodes, only providing a valid port number:
python3 server.py -p port
To execute client actions one can use the CLI tool. When starting you only need to specify the port of a node already in the system, running on the same machine.
python3 cli.py -p port