Any infrastructural project, similar to what we are building, has to develop concurrently with real life use-cases and prove that the technology is usable for practical applications.

As we have described in the previous articles, mobile on-demand blockchains can be applied in any mobile application that requires collaboration or communication among two or more people, be it ride sharing, money transferring, delivery service apps, etc.

All of them could be used as an example to demonstrate how Babble consensus enables temporary blockchains and how the new, disintermediated communication between the app participants changes the status quo.

Let’s first look at a time-stretched status quo. A group of developers builds a mobile app that catches a trend among the youngsters around the world. Though excited about the unexpected popularity, they are terrified by how grossly they have underestimated the amount of traffic the app attracts. The traffic quickly overwhelms a garage-based single machine that runs the app’s back end (think of Instagram in 2010). Developers now need to migrate from their local server to Amazon’s cloud service. Essentially with the same architecture, the app now has access to more computing power that scales with the app’s growth, but the server is simply outsourced to a third party. As the app remains free, it costs a pretty penny to keep the server running. The app developers now review the architecture of the app to break apart the server side into distinct functions known as components. Each of these components run in parallel compute containers that are event-triggered and ephemeral. Though delivering a huge benefit for the app’s scaling and optimizing the server costs, this architecture still does not eliminate dependence upon third parties.

How could a mobile application exist without relying on a centralized server?

To demonstrate the first use-case of decentralized applications that are built using Babble consensus and to encourage app developers to join our ecosystem, we developed Chatr.

Chatr is a demo app which uses the Babble Mobile library to enable multiple mobile devices to chat without a centralized server. There are a number of limitations that the app has due to its mockup functionality. Hence, it is not designed to be a real-life communication tool, but the functionality available is enough to to show the capabilities of Babble.

Here’s a brief principle of how Chatr works: the initiator of a conversation adds chat participants by scanning their QR codes. After the group is formed, the participants no longer need to be within physical proximity. Participants will be able to participate in the chat for as long as their respective IPs stay the same as they were at the time of connecting to Chatr.

Of course, requiring physical proximity in order to connect the chat participants is one of those limitations we mentioned above. We are currently working on an API that permits the adding of chat participants regardless of their physical location.

A temporary blockchain, on top of which Chatr is launched, stores the chat information for as long as at least one participant remains active. During this period non-active phones can rejoin and “catch up” to recover the chat.

If all phones leave the chat, the conversation is terminated and the information is deleted. Chatr currently deletes the blockchain when the application closes, but it can potentially be changed so that the blockchain is persisted.

Let’s have a closer look at the user experience of the current demo version of Chatr:

This is the home screen. Here the user can tap the group names to see current conversations, or choose to create or join a new group. Let’s create a new chat group to see how it works. To create a new chat the user should tap the new group button on the right.

2. To create a new group the user (initiator) needs to first choose a name for the group. To add new members to the group, the user needs to tap the plus button.

3. Time to add other participants to the conversation! This can be done by scanning their QR code.

4. In the meantime participants that want to be added should tap the “join group” button on the homescreen, then enter a username that the initiator of the conversation has created and tap the tick button.

5. Now the future chat participants can see a QR code containing their IP address, public key and username.

6. The initiator of the conversation scans all participants’ QR codes and upon completion taps the tick button.

7. Now the conversation initiator has a QR code with a list of everyone in the group, which he should then share with the group.

8. Chat participants should tap the tick button and then scan the initiator’s QR. Once they are done, they get forwarded straight into the conversation.

9. Once everyone has scanned the initiator’s code, he is ready to join the chat by tapping the tick button.

Here’s a quick visual recap of the process: