Project

General

Profile

Home » History » Version 32

Greg Burri, 11/27/2008 12:12 PM

1 1 Greg Burri
h1. Home
2
3 3 Greg Burri
* [[Study of bittorent protocol]]
4 8 Greg Burri
* [[Study of UPNP]]
5 29 Greg Burri
* [[Study of Thrift]]
6 30 Greg Burri
* [[Protocols]]
7 3 Greg Burri
8 31 Greg Burri
h2. Brainstorming
9 4 Greg Burri
10 21 Greg Burri
* Core and GUI are independent. They communicate over TCP socket.
11
** It is possible to launch the core without the GUI. The core does not depend of any kind of graphic library.
12
** If the GUI crashes then the core remains.
13 22 Greg Burri
* Designed for LAN usage (full trusted peers and very high speed transfers).
14 18 Greg Burri
* Efficient (very low cpu usage).
15
* Distributed download (multi peer downloading and no central server).
16 27 Greg Burri
** Quicker peer first. The speed of a peer is an average over a period of time say 5 min. A speed of a peer can be unknown. If a downloading is too slow (like three time slower than the best known peer) then it can switch to a quicker free peer.
17 16 Greg Burri
** Rarest parts first.
18
** A part can be resumed from any peer.
19 32 Greg Burri
** A file from a user is identified by its name and folder.
20
** 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.
21 18 Greg Burri
** Recursive folder downloading.
22
* There is a general chat.
23 25 Greg Burri
* Multicast UDP for services discovering (maybe UPNP). Each peer announces periodically he is alive with a multicast message.
24 18 Greg Burri
* MDI GUI with GTK2HS.
25
** A panel to view the current peers.
26
** A window to view the current downloads (leechage) and one for the current uploads (seedage).
27
** A window for the chat.
28
** A window for searching.
29
** Some windows for each file browsing.
30
** A modal window for the settings.
31
*** The shared folders.
32
*** The incoming folders (take the first if enough available space disk otherwise the second and so one..).
33
*** Bandwidth limitation.
34 28 Greg Burri
* Using of "Thrift":http://incubator.apache.org/thrift/ for definition of the protocol between two peers and between the Core and the Gui.
35 18 Greg Burri
* File list with name+size.
36
* Non blocking search.
37
* Using of systray (optional).
38
* Free space management.
39 19 Greg Burri
* Graphics of the transfer rate over time.