This project is a demonstration of the Chord Distributed Hash Table (DHT) algorithm in a peer-to-peer network. It provides a visual representation of how nodes in the Chord network update their finger tables by checking the node IDs of known nodes.
The core logic of the Chord algorithm is implemented in the chord.rs
file. This includes the creation of nodes, updating of finger tables, and handling of predecessors
Get the app from release and run the runapp.sh file.
./runapp.sh
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Rust programming language
- Flutter for UI visualization
- Clone the repository
git clone <repository-url>
- Navigate into the rust project directory
cd <rust-project-directory>
- Build the project
cargo build
- Run the project
cargo run
- Navigate into the Flutter directory
cd <flutter-project-directory>
- Run the flutter application using
flutter run
The application starts a rust local server that listens for incoming connection from Flutter app. It receives nodes from the Flutter, processes them, and sends back the fingertables.
The visualization of the finger table of each node can be viewed in the Flutter application.
If you want to improve the code, find any mistakes, or have any suggestions, feel free to make a pull request or create an issue. I appreciate your help in making this project better.
This project is licensed under the MIT License - see the LICENSE.md
file for details