TODO updated
[re6stnet.git] / TODO
1 Bugs :
2     Find a name for the project : the projet is ( or should be ) independant from vifib, openvpn, babel,
3          and so should the name; btw we aim to build a distributed, scalable, resilient VPN....
4     When no peer is avalaible without the --no-boot option, it crash => see below
5     Once in a while, when exiting vifibnet ( not very properly, via Ctrl+C ), processes ( openvpn and babel )
6          still remain and disturb further attemps ( must be killed for vifibnet to work again )
7
8 To be done :
9     Replace comments at the beginning of functions with docstrings & give all fn docstrings
10     Do a clean-up in the import
11     Remove the parameters to choose the number of clients
12     Use the server events ( client connection/deconnection ) to do something useful
13
14 To be discuss:
15     Remove the --no-boot option since we know when no node is avalaible
16        \=> the no-boot option is only useful when the server knows no peer,
17            irl it should never happen, no-boot is a debug option
18
19     The organisation of the code
20         vifibnet.py         Just contain the main loop and the init
21         plib.py             To launch server/client/routing processes
22         utils.py            Small functions to do some usefull job
23         db.py               Function to manage peers
24         tunnelmanager.py    To choose wich connection delete/keep/...
25         upnpigd.py          To open a port and find the external IP
26
27     How we choose which protocol we use :
28         IMO, we should use UDP. I've read many times than TCP other TCP can be catastrophic in terme of performance
29         Every time a packet is lost, it is resend 2 times, one for each TCP tunnel
30         And many GW allow UDP port forwarding (for bittorent, Xbox, ...) but not TCP port forwarding
31
32     Use peers_db.populate(100) every once in a while ? -> yes but be warry of the refresh time ( populate
33     the db once every 20s is bad.. )