Social media platforms such as Facebook and Twitter have been extremely crucial in helping establish important political protests in nations such as Egypt during the Arab Spring, and mesh network based platforms hold importance in countries like China where national censorship prevents open communication. In addition to this, people in countries like India have easy access to smart phones because of how cheap android phones have become, but wifi/cellular access still remains expensive.
What it does
Our project is called Wildfire. Wildfire is a peer to peer social media where users can follow other specific users to receive updates, posts, news articles, and other important information such as weather. The app works completely offline, by transmitting data through a network of other devices. In addition to this, we created a protocol for hubs, which centralizes the ad hoc network to specific locations, allowing mass storage of data on the hubs rather than users phones.
How we built it
The peer to peer component of the hack uses Android Nearby, which is a protocol that uses hotspots, bluetooth, and sound to transmit messages to phones and hubs that are close to you. Using this SDK, we created a protocol to establish mesh networks between all the devices, and created an algorithm that efficiently transfers information across the network. Also, the hubs were created using android things devices, which can be built using cheap raspberry pis. This provides an advantage over other mesh networking/ad hoc network applications, because our hack uses a combination of persistent storage on the hubs, and ephemeral storage on the actual users' device, to ensure that you can use even devices that do not have a ton of storage capability to connect to a Wildfire network.
Challenges we ran into
There were a couple of major problems we had to tackle. First of all, our social media is peer to peer, meaning all the data on the network is stored on the phones of users, which would be a problem if we stored ALL the data on EVERY single phone. To solve this problem, we came up with the idea for hubs, which provides centralized storage for data that do not move, lessening the load on each users phone for storage, which is a concern in regions where people might be purchasing phones that are cheaper and have less total storage. In addition to this, we have an intelligent algorithm that tries to predict a given users movement to allow them to act as a messenger between two separate users. This algorithm took a lot of thinking to actually transmit data efficiently, and is something we are extremely proud of.
What we learned
We learned about a lot of the problems and solutions to the problems that come with working on a distributed system. We tried a bunch of different solutions, such as using distributed elections to decide a leader to establish ground truth, using a hub as a centralized location for data, creating an intelligent content delivery system using messengers, etc.
What's next for Wildfire
We plan on making the wildfire app, the hub system, and our general p2p protocol open source, and our hope is that other developers can build p2p applications using our system. Also, potential applications for our hack include being able to create Wildfire networks across rural areas to allow quick communication, if end to end encryption is integrated, being able to use it to transmit sensitive information in social movements, and more. Wildfires are fires you cannot control, and so the probabilities for our system are endless.