-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Sayooj Samuel edited this page Nov 17, 2020
·
1 revision
- [-] Design a robust backend
- [-] Manage the protocol
- [ ] Create a config directory in POSIX and MAC machines. This about NS machines later. Config directory is necessary to store the db and the config file. DB is necessary for the downloading to happen. Also fix the directory where the downloading happens. Parital downloads in the temp directory or the main download directory.
- [ ] Test the platform
- [ ] Try to convert the commands to python only; platform independance
- [-] Check for partial download
- [ ] Test the merge functionality
This protocol is responsible for managing all the interested parties into one pool.
- Create Pool for interested Parties; N party proto
- Check the file size;
- Split the fileSize by a multiple of N
- Collect user IP’s
- Generate the download script. Notify the CNC after each successful download; Realtime progress for the pool
- Schedule Download??? Take care of the sleep
- Manage Parties who leave in between the protocol
- Split part of the remaining itemsList to the newcomming member; Dynamic Pool Model
-
This protocol is for efficiently sharing the files after partly download among the decorated users.
- Verify if parties are still active during the process
- Check connection with the CNC
- Share files parallely, efficiently and equally among the users. (check for corruptions)
- Test if local hosting is proper
- Share in a binary Tree manner - Will it work out?
- Merge the parts as and when they arrive. Notify other about the status of the proces
This is the main server application, which will handle the whole download manager. This can be implemented in two ways:
- A centralized main server
- A requirement based
Pathlib: Article to make os independent paths
py_cui: alternative to ncurses
- [ ] Fix the port issue. Update the server with the users port address in addition to the IP address. Code everything in __main__ file.
- [ ] Use python dataclasses
- [ ] Make a custom URI scheme (dragon://)
- [ ] Gossip framework for status sharing??
from dragonload.dragonload import startDragonload
url = "http://www.google.com/movies/security.mp4"
user_count = 2
user_id = 0 # set 1 in other user
user_list = [(0, "192.168.29.108"), (1, "192.168.29.194")]
startDragonload(url, user_count, user_id, user_list)