-
Notifications
You must be signed in to change notification settings - Fork 5
Viral Spreading
qaul.net can be passed on from user to user. Every qaul.net device that contains a qaul.net installer for every platform, seeds the installers via a captive portal over wifi.
In qaul.net there are two kind of binaries:
- slim binaries (this is the installer for one platform)
- fat binaries (this is the installer for one platform that contains all the installers for the other platforms and can share them immediately after startup)
Every qaul.net program that owns all other binaries starts a captive portal during start up. The captive portal is built of three components: a (captive) DHCP server, a (captive) DNS server and a web server.
- (Captive) DHCP server: To automatically configure new users (IP, gateway, DNS server). The gateway is the IP of the device that runs the captive portal. The DNS address is the IP of the device that runs the captive portal.
- (Captive) DNS server: Returns it's own IP address as resolution for every DNS request.
- Web server: Shows the instructions and the download page.
New users that connect to qaul.net (not running the program qaul) automatically receive a DHCP configuration. As every captive portal in any Internet cafe, the name server delivers its own IP address as resolution for every domain name. Therefore every one interested can invoke the download and instructions page in his web browser.
All downloaded binaries from the web page shall be fat binaries.
All Installers downloaded via a captive portal are slim binaries. The slim binaries try to discover and download all the installers from another user immediately after start up. This process is divided into two parts, first it tries to receive the hash of an installer for each platform, then it tries to download this installer via file sharing. If a user with a fat binary is online nearby, this process usually takes only one minute.
Once a slim binary has all installers successfully downloaded it will start the captive portal on the next start up and start seeding the qaul.net installers.