Actions
Home » History » Revision 38
« Previous |
Revision 38/150
(diff)
| Next »
Greg Burri, 11/27/2008 03:47 PM
Home¶
Brainstorming¶
- Core and GUI are independent. They communicate over TCP socket.
- It is possible to launch the core without the GUI. The core does not depend of any kind of graphic library.
- If the GUI crashes then the core remains.
- Designed for LAN usage (full trusted peers and very high speed transfers).
- Efficient (very low CPU usage).
- Distributed download (multi peer downloading and no central server).
- Quicker peer first. The speed of a peer is an average over a period of time say 5 min. The speed of an unknown peer is maximum thus it will be take first. If a downloading is too slow (like three time slower than the best known peer) then it can switch to a quicker free peer.
- Rarest parts first.
- A part can be resumed from any peer which own a complete copy.
- A file from a user is identified by its name and its folder.
- Fixed part size (2^24 B = 16 MB) hashed with SHA-1. Used to control the integrity of parts and to identify each part. If the SHA-1 of a part does not match the given SHA-1 then it will be re-downloaded entirely.
- The number of concurrent download is around 3 parts and the number of concurrent upload is unlimited.
- Recursive folder downloading, in this case the path is recreated in the downloading peer.
- There is a general chat.
- Multicast UDP for services discovering (maybe UPNP). Each peer announces periodically he is alive with a multicast message.
- MDI GUI with GTK2HS.
- A panel to view the current peers and their amount of sharing.
- A window to view the current downloads (leechage) and one for the current uploads (seedage).
- A window for the chat.
- A window for searching.
- Some windows for each file browsing.
- A modal window for the settings.
- The shared folders.
- The incoming folders (take the first if enough available space disk otherwise the second and so one..).
- Bandwidth and CPU limitation with a single option (checkbox).
- Maybe automatically detect a running game and set this flag.
- Using of Thrift for definition of the protocol between two peers and between the Core and the Gui.
- File list with name+size.
- Non blocking search.
- Using of systray (optional).
- Free space management.
- Graphics of the transfer rate over time.
- Parse meta data like ID3tag when searching.
Updated by Greg Burri about 16 years ago · 38 revisions