I have seen Dorsey and co talking about the popularity of Bitchat in various areas where the internet is being shutdown or heavily censored by the local government and also in disaster zones where connectivity is down. But one weakness of Bitchat seems to be that it struggles in densely packed crowds (I seem to remember reading several accounts of users who tested it at music festivals where there wasn't any cell service -- the results were not great).
While flooding-based protocols often achieve high delivery rates, they are notorious for consuming a lot of bandwidth. Bandwidth is precious within a mesh network, particularly in large-scale densely populated protest environments where congested network environments can lead to dropped messages and ineffective communication.
Amigo is a group messaging app that is designed specifically for a large group setting where the flooding-based routing is not as useful. Amigo uses Blue Tooth Low Energy and Wifi to create a mesh network. But instead of relying on flood-based routing of messages, it relies on something called clique-based routing:
Clique-based routing provides a promising solution to the congestion problem. Instead of everyone propogating messages, a clique leader (a client within a limited geographic area) recieves messages from nearby protesters and propogates those messages to other clique leaders. Clique leaders also disseminate messages to those in their clique. In static clique routing, clique leaders and their respective followers never change. In reality, however, protesters move about and Amigo therefore proposes and implements a novel Dynamic Clique routing protocol.
In our Dynamic Clique routing protocol, there are election periods where clients within proximity of each other form a clique and elect a clique leader. These clique leaders then propogate and disseminate messages for their respective clique followers for a specified time period until new cliques are formed. Amigo’s leader elections are based on Android’s implementation where nodes choose a "willingness" value (0-100), indicating their readiness to serve as a clique leader. The node in each given region with the highest “willingness" value is elected as leader.
Our new Dynamic Clique routing protocol achieves up to 95% or higher delivery rates while sending far fewer messages than flooding-based protocols over the course of our simulations. This difference ranges from ∼2× to ∼50×. In other words, our simulations show that dynamic clique routing can achieve similar levels of message delivery at a fraction of the messages sent – important for smartphones, which are constrained by battery size and CPU capability, as well as for overall network stability.
The work being done on these peer to peer messaging apps that don't necessarily need regular internet service is very cool.
Amigo = Friend