For Ulysse : useful is spelled with only ONE l and not two.....
Bugs :
Bugs :
Find a name for the project : the projet is ( or should be ) independant from vifib, openvpn, babel,
When no peer is avalaible, the setup crash without the --no-boot option => see below
and so should the name; btw we aim to build a distributed, scalable, resilient VPN....
When no peer is avalaible without the --no-boot option, it crash => see below
Once in a while, when exiting vifibnet ( not very properly, via Ctrl+C ), processes ( openvpn and babel )
still remain and disturb further attemps ( must be killed for vifibnet to work again )
Babel seems to be very long to establish the routes : maybe we should tell him thant we are not on a wired network but on a mobile network ?
To be done :
To be done :
Use an algorithm to choose which connections to keep and/or establish instead or pure randomness
Find a name for the project : the projet is ( or should be ) independant from vifib, openvpn, babel,
and so should the name; btw we aim to build a distributed, scalable, resilient VPN....
Replace comments at the beginning of functions with docstrings & give all fn docstrings
Replace comments at the beginning of functions with docstrings & give all fn docstrings
Use the server events ( client connection/deconnection ) to do something usefull
Use the server events ( client connection/deconnection ) to do something useful
In peers DB, remove some peers when they are too many of them
In peers DB, remove some peers when they are too many of them -> remove the dead peers
Contact the server using vifibnet and not the underlying network when possible
Use a timeout for the peersDB -> ?, removing the dead peers should be enough
Use a timeout for the peersDB
The peer DB size should depend on the number of connection and the refresh time
Specify a lease duration in ForwardViaUPnP
Specify a lease duration in ForwardViaUPnP
To be discuss:
To be discussed:
U : Babel seems to be very long to establish the routes : maybe we should tell him thant we are not on a wired network but on a mobile network ?
G : babel establish routes quickly enough i'd say. There are two new options : hello and wireless, for hello_interval and
treating all interfaces as wireless. However, treating an interface as wireless doesn't lessen the hello_interval, it only
changes how babel estimates quality link, and cost.
U : Contact the server using vifibnet and not the underlying network when possible
G : done by giving the vifibnet address of the server. Anyways, if you give the 'internet' address of the server,
it CANNOT be reached via vifib, as there isn't yet a border vpn through which the internet traffic would be routed
U : The peer DB size should depend on the number of connection and the refresh time
G : ?! I don't agree, the db size should be proportional ( with a factor like 0.01 or less ) to the total number of peers in the entire network, with maybe a max size.
U : Remove the --no-boot option since we know when no node is avalaible
U : Remove the --no-boot option since we know when no node is avalaible
G : the no-boot option is only useful when the server knows no peer,
G : the no-boot option is only useful when the server knows no peer,
irl it should never happen, no-boot is a debug option
irl it should never happen, no-boot is a debug option
U : Ok, but the server knows when no peers is avalaible, doesn't he ?
U : Ok, but the server knows when no peers is avalaible, doesn't he ?
G : Well when no peer is available the SQL request ( + next() method ) raise a StopIteration exception
G : don't reconnect to server each time we repopulate in peers_db ?
G : don't reconnect to server each time we repopulate in peers_db ?
U : From what I've read on the internet, when you create a server object, you don't connect to the server,
U : From what I've read on the internet, when you create a server object, you don't connect to the server,
You only connect to the server once you send a request for a methode and then you can automatically use the same connection for 15sec
You only connect to the server once you send a request for a methode and then you can automatically use the same connection for 15sec
G : ok, it justs need testing ( for when some requests for the server will require to be plugged in the network )