This originally began as my A-Level Computer Science NEA (coursework), but it's been expanded upon since.
It is mostly an interpretation of "The Kademlia Protocol Succinctly" by Marc Clifton, with a GUI + CLI (The implementation is in Python, rather than C#).
This mostly serves as an introduction to peer-to-peer systems for me, and to get me familiar with version control.
There are much better implementations of Kademlia out there, this is nowhere near a complete implementation.
-
Make Kademlia implementation
-
Make GUI
-
Make CLI
-
Make all unit tests pass
-
Make error handling more pythonic
-
Add more unit tests for the CLI for input validation
-
Add encryption
-
Make it more usable
-
Create more scalable storage (databases, etc)
-
Actually test it at scale (100+ nodes, on different networks)
-
Make it more efficient