Skip to content

Commit

Permalink
added short introduce about network, algorithm (#25)
Browse files Browse the repository at this point in the history
* added short introduce about network, algorithm
  • Loading branch information
giangndm committed Nov 2, 2023
1 parent 94272e9 commit 6dd98f5
Show file tree
Hide file tree
Showing 7 changed files with 1,246 additions and 18 deletions.
44 changes: 26 additions & 18 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,37 @@
[![Rust](https://github.com/8xFF/decentralized-sdn/actions/workflows/rust.yml/badge.svg)](https://github.com/8xFF/decentralized-sdn/actions/workflows/rust.yml)
[![codecov](https://codecov.io/gh/8xFF/decentralized-sdn/graph/badge.svg?token=P8W3LUA0EV)](https://codecov.io/gh/8xFF/decentralized-sdn)

# Bluesea SDN v4: Code name: Pacific Ocean
# Planet Scale Ultra Low Latency SDN written in Rust

4.0 version be created with main goals:
This project is a planet-scale ultra-low latency Software-Defined Networking (SDN) system. It is designed to support applications such as streaming, Internet of Things (IoT), Virtual Private Networks (VPN), Proxies, and more. The goal of this project is to provide a network infrastructure that can deliver high-quality services with minimal latency, similar to what Cloudflare achieves for their network.

- Separated satellite with network operation, only take role in create node_id
- Node neighbours is detect with Kademlia DHT k-bucket table, and selected based on RTT or something else ..
## Features

* **Performance and Scalability**: The project is built with a focus on performance and scalability. It utilizes advanced techniques and technologies to ensure ultra-low latency, even at a planet-scale. This includes efficient routing algorithms, load balancing strategies, and network optimization techniques.
* **Modularity and Flexibility**: The project is designed to be highly modular and flexible, allowing it to be adapted to various use cases. It supports a wide range of applications, including but not limited to streaming, IoT, VPN, and Proxies.
* **Open Source**: The project is open-source, meaning that it is freely available for anyone to use, modify, and distribute. This not only encourages community involvement and collaboration but also allows users to adapt the project to their specific needs.
* **Smart-routing**: The "Smart-routing" feature employs a decentralized algorithm that operates on each node, eliminating the need for a centralized controller. This approach enhances the network's adaptability and responsiveness, ensuring efficient and high-quality service delivery. The algorithm uses a heuristic method to optimize routing based on the current network conditions like (latency, bandwidth, packet loss, hops), making it particularly effective in dynamic network environments.

## Project structs
## Why Rust

Project is splited to Core and runner, each core is independed with any other parts
We chose Rust for this project due to its exceptional performance and safety features. Rust is a system programming language that guarantees thread safety without needing a garbage collector. It provides low-level control over system resources, making it ideal for system-level tasks, such as implementing a high-performance networking system.

Core:
- Transport: Working with data transfer, which take role in sending, receiving data, deal with Packet loss and measure quality of Connection
- RPC: Working with request response
- Kademlia: implement kademlia k-bucket logic
- Router: Bluesea routing table for archiving ultra-low-latency goal
- Service: Bluesea service based and helpers
## Applications

Service:
- KeyValue
- Pubsub
- Storage
....
The project has been tested and proven to work effectively in real-world scenarios. It has been used in various applications, including but not limited to streaming, IoT. These applications have all benefited from the ultra-low latency provided by the project.

Runner: this is combine all parts to a working node
## Contributing

The project is continuously being improved and updated. We are always looking for ways to make it better, whether that's through optimizing performance, adding new features, or fixing bugs. We welcome contributions from the community and are always looking for new ideas and suggestions.

## Getting Started

To get started with the project, you can visit our GitHub repository and explore the codebase. We provide detailed documentation to help you understand how the project works and how to use it. If you have any questions or need assistance, feel free to reach out to us.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

We would like to thank all the contributors who have helped in making this project successful.
Empty file removed docs/Readme.md
Empty file.

0 comments on commit 6dd98f5

Please sign in to comment.