This commit is contained in:
epoberezkin
2023-09-07 09:05:01 +00:00
parent 82974f052f
commit 1a6c8840b8
4 changed files with 25 additions and 18 deletions
+19 -12
View File
@@ -3,24 +3,31 @@ sequenceDiagram
participant A as Alice
participant B as Bob
participant C as Existing<br>contact
note over A, B: 1. send and accept group invitation
A ->> B: x.grp.inv<br>invite Bob to group<br>(via contact connection)
B ->> A: x.grp.acpt<br>accept invitation<br>(via member connection)
B ->> A: establish group member connection
B ->> A: x.grp.acpt<br>accept invitation<br>(via member connection)<br>establish group member connection
note over M, B: 2. introduce new member Bob to all existing members
A ->> M: x.grp.mem.new<br>"announce" Bob<br>to existing members<br>(via member connections)
A ->> B: x.grp.mem.intro * N<br>"introduce" members<br>(via member connection)
B ->> A: x.grp.mem.inv * N<br>"invitations" to connect<br>for all members<br>(via member connection)
A ->> M: x.grp.mem.fwd<br>forward "invitations"<br>to all members<br>(via member connections)
loop batched
A ->> B: x.grp.mem.intro * N<br>"introduce" members and<br>their chat protocol versions<br>(via member connection)
note over B: prepare group member connections
opt chat protocol compatible version < 2
note over B: prepare direct connections
end
B ->> A: x.grp.mem.inv * N<br>"invitations" to connect<br>for all members<br>(via member connection)
end
A ->> M: x.grp.mem.fwd<br>forward "invitations" and<br>Bob's chat protocol version<br>to all members<br>(via member connections)
note over M, B: 3. establish direct and group member connections
M ->> B: establish group member connection
M ->> B: establish direct connection
note over M, C: 4. deduplicate new contact
B ->> M: x.info.probe<br>"probe" is sent to all new members
B ->> C: x.info.probe.check<br>"probe" hash,<br>in case contact and<br>member profiles match
C ->> B: x.info.probe.ok<br> original "probe",<br> in case contact and member<br>are the same user
note over B: merge existing and new contacts if received and sent probe hashes match
opt chat protocol compatible version < 2
M ->> B: establish direct connection
note over M, C: 4. deduplicate new contact
B ->> M: x.info.probe<br>"probe" is sent to all new members
B ->> C: x.info.probe.check<br>"probe" hash,<br>in case contact and<br>member profiles match
C ->> B: x.info.probe.ok<br> original "probe",<br> in case contact and member<br>are the same user
note over B: merge existing and new contacts if received and sent probe hashes match
end
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

+3 -3
View File
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://simplex.chat/,">
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://simplex.chat/">
<title>SimpleX Chat Blog</title>
<subtitle>It allows you to stay up to date with the latest Blogs from SimpleX Chat.</subtitle>
<link href="https://simplex.chat/feed.atom" rel="self"/>
<link href="https://simplex.chat/,"/>
<link href="https://simplex.chat/"/>
<updated>2023-07-22T00:00:00Z</updated>
<id>https://simplex.chat/,</id>
<id>https://simplex.chat/</id>
<author>
<name>SimpleX Chat</name>
<email>chat@simplex.chat</email>
+2 -2
View File
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://simplex.chat/," xmlns:atom="http://www.w3.org/2005/Atom">
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://simplex.chat/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>SimpleX Chat Blog</title>
<link>https://simplex.chat/,</link>
<link>https://simplex.chat/</link>
<atom:link href="https://simplex.chat/feed.rss" rel="self" type="application/rss+xml"/>
<description>It allows you to stay up to date with the latest Blogs from SimpleX Chat.</description>
<language>en</language>