Giter VIP home page Giter VIP logo

biternet's Introduction

Biternet Status active Python 3.7.1 Python Package CI

Biternet is a new way approach to Internet. In conventional Internet we download files from one source over a network or we download files from multiple sources over a single network, but we don't download files from a single/multiple sources over multiple networks. If small parts of file (will be referred as chunks from here) can be downloaded over multiple networks then we can increase the speed of download and get around any data limit on a single network.

Why isn't this technology not used everywhere? Well, multiple reasons:

  1. Most computers are not capable of connecting to multiple networks
  2. Most people don't have access to multiple networks
  3. Internet connectivity has improved many folds in the last decade
  4. Most users don't perform internet-heavy tasks that would require such solutions

Why Biternet?

Well the justification behind biternet is quite simple: Internet is not homogenous, while the average internet speed in India is less than 1 MB per second the same for US is over 10MB ber second! This data gets even worse for Africa! So for people who wish to share files that can be as large as hundreds of GigaBytes in size, We need a better approach. It will take 3 hrs to download a file of size 100 GB over an internet with 10MBps, It will take 30 hrs for 1MBps! If we somehow download the same file over 3 differnet networks, we can reduce the download time 20hrs! This is where Biternet can solve real world problems.

How does it work?

See the following sequence diagram:

Sequence Diagram

A master program runs and makes requests for a file, the server gets a session ID for the particular request. File-Distribution endpoint keeps tracks of the last chunk allocated to a request and prepares the next chunk for allocation. We then make multiple requests to the server from different networks to claim and download a chunk of the file, untill the entire file is downloaded. We asynchronously compile those chunks to create the entire file. For the ith network, we request a chunk of file and we recieve the chunk, notice that allocating small chunks to networks who don't have a backlog (who have downloaded their previous chunks) will actally make sure that the file is downloaded optimally (almost) over the n networks we are using. This is how we can download large files over multiple networks in a fast and efficient way.

Requirements:

Python 3.7+
pip3

Install Dependencies:

pip3 install -r requirements.txt

Setup Server:

cd Server && python3 main.py

Download Asynchronously:

cd Client && python3 main.py

biternet's People

Contributors

0xhrsh avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.