Discovery Services and breaking dependence from the Olsr plugin
Currently the eBrainPool client uses the Olsr routing messages itself for discovery. Our custom Olsr plugin sends out custom messages that signify the presence of an eBrainPool client on that node. This plugin also scans incoming messages for these custom messages and reports to the client upon discovery of other nodes with the client running.
This is bad design as was pointed out by Mitar earlier and reiterated by others at the workshop. This makes our application unnecessarily dependent on Olsr and also probably puts an extra load in the routing messages being sent out. Ideally discovery should be an independent function and our application should be able to work on any underlying network.
A few options were suggested :
While Zeroconf/Bonjour/Avahi/mDNS work well for smaller and local networks. Distributed Hash Tables have proven successful over the Internet. Telehash works with a routing system based on the Kademlia DHT.
Ideally we need a technology that works well across networks of all sizes and scales from a local network to the Internet. I have to say that I can't wait to start work on this :)
Special thanks to Mitar,Saverio,Pau,Gioacchino,Bruno and Magnus amongst others at the camp for the above suggestions :)