Has anyone thought about using Syncthing as the engine for a decentralized messaging system? There has been a lot of excitement recently about BitTorrent Bleep, but that excitement is dampened by the fact that it is closed source. It seems like all the necessary functions are readily available in Syncthing; if you can synchronize arbitrary files, certainly you can synchronize text messages and file attachments. There is even an Android app published and in use already!
The clients of such a messaging system would need to create/destroy temporary Folder IDs as users begin/end “conversations” with groups of two or more people. Linking Device IDs to user identities would be straightforward, especially since the “Introducer” feature has already been implemented, as well as the “push” notification of offered shares. You can imagine that when you add someone to your contact list (i.e., the client app adds their Device ID to your list), that you also enable/disable the ability for your contact to introduce you to others. For example, Alice adds her friend Bob as a contact, and sets him as an introducer. All of Bob’s contacts that have enabled introduction to Bob’s friends (or possibly even to his friends-of-friends or to the public, etc) are offered to Alice as contacts that she can add to her list. This system would make connecting to your network of contacts a rapid and effortless process, because it would get easier as more people use the system and begin introducing others.
There would be other enhancements required, such as notifications when new messages are received (i.e. when folder changes occur), but there are probably minor additions. Thoughts?