Keychat's avatar
Keychat 1 year ago
Chat application network architectures are primarily divided into: centralized model, federated model, relay model, and P2P model. Chat software developed by major companies primarily uses a centralized server network architecture, such as WhatsApp and Telegram. Signal App also follows this model. Only large companies can run their own servers and have the greatest control. The XMPP protocol and Matrix protocol use a federated server network architecture. The most famous example of a federated server network architecture is Email. Users can choose which federated server to use. Servers communicate with each other, and users do not need to know which server their friends are using. Keychat and Simplex chat use a relay architecture. Users can choose which relay server to use. The main difference from the federated model is that relay servers do not communicate with each other. In the relay model, users find out which relay their friends use, adding user tasks but simplifying server operations. Each relay operates independently, simplifying network design and reducing maintenance. Since relays do not communicate with each other, this setup reduces data exposure risks and improves privacy. Keet.io uses a P2P model. Keet may be more suitable for large-scale group chats, whereas it might be less appropriate for one-on-one chats or smaller groups. Keet requires chat participants to be online simultaneously, or at least one party needs to be continuously online. (If there are any mistakes, please reply. Thanks)

Replies (14)

DZC's avatar
DZC 1 year ago
About messaging networks architectures:
Keychat's avatar Keychat
Chat application network architectures are primarily divided into: centralized model, federated model, relay model, and P2P model. Chat software developed by major companies primarily uses a centralized server network architecture, such as WhatsApp and Telegram. Signal App also follows this model. Only large companies can run their own servers and have the greatest control. The XMPP protocol and Matrix protocol use a federated server network architecture. The most famous example of a federated server network architecture is Email. Users can choose which federated server to use. Servers communicate with each other, and users do not need to know which server their friends are using. Keychat and Simplex chat use a relay architecture. Users can choose which relay server to use. The main difference from the federated model is that relay servers do not communicate with each other. In the relay model, users find out which relay their friends use, adding user tasks but simplifying server operations. Each relay operates independently, simplifying network design and reducing maintenance. Since relays do not communicate with each other, this setup reduces data exposure risks and improves privacy. Keet.io uses a P2P model. Keet may be more suitable for large-scale group chats, whereas it might be less appropriate for one-on-one chats or smaller groups. Keet requires chat participants to be online simultaneously, or at least one party needs to be continuously online. (If there are any mistakes, please reply. Thanks)
View quoted note →
The XMPP authors also made Telehash which was a JSON based P2P messaging protocol. Never really took off, but also interesting to look at for ideas.
Keychat's avatar
Keychat 1 year ago
In the previous version of the Keet website, it was mentioned that members of a room should stay online as much as possible, and offline members could sync messages from the always-online members when they come back online. This information has now been removed from the current website. If the node hosts the data and the client downloads from the node, I'm not sure if this is a standard P2P network, at least not like the Bitcoin P2P network.
Think of their node like a relay. If someone is online, then the data might be p2p but Keet acts as a blind storage peer too. I don't think they worked it out but I think they wanted to figure out an incentive model so others will do this too for payment. Like a cloud storage sort of thing but fully encrypted and no accounts. If they figure that out then you get a pretty reliable solution without keet being the altruistic backbone. Not there yet afaik.