From 80e3a0a866cc5ed2f10b71e06e792c2dd02a4101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= Date: Wed, 11 Dec 2019 19:38:48 -0500 Subject: [PATCH] Update Group chat feature (design draft) --- Group-chat-feature-(design-draft).md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Group-chat-feature-(design-draft).md b/Group-chat-feature-(design-draft).md index 56bd5254..1f65c3d4 100644 --- a/Group-chat-feature-(design-draft).md +++ b/Group-chat-feature-(design-draft).md @@ -1,4 +1,28 @@ -**!!Currently this patch is only a draft following our meetings!!** +# Synospis + +The goal of this document is to describe how group chats (a.k.a. **swarm chat**) will be implemented in Jami. + +A *swarm* is a group able to discuss without any central authority in a resilient way. Indeed, if two person doesn't have any connectivity with the rest of the group (ie Internet outage) but they can contact each other (in a LAN for example or in a sub network), they will be able to send messages to each other and then, will be able to sync with the rest of the group when it's possible. + +So, the *swarm* is defined by: +1. Ability to split and merge following the connectivity. +2. Syncing of the hitory. Anyone must be able to send a message to the whole group. +3. No central authority. Can't rely on any server. +4. Non-repudiation. Devices must be able to verify old messages validity and to replay the whole history. +5. PFS on the transport. Storage is managed by the device. + +# Scenarios + +## Create a Swarm + +*Bob wants to create a new swarm* + +**IN CONSTRUCTION** + + +--------------- + +**!! OLD DRAFT !!** Note: Following notes are not organized yet. Just some line of thoughts.