@@ -19,7 +19,17 @@ title: polyproto-chat
19
19
20
20
[ Semantic versioning v2.0.0] ( https://semver.org/spec/v2.0.0.html ) is used to version this specification.
21
21
22
- ## 1. Federating direct/group messages
22
+ ## 1. Federation
23
+
24
+ This chapter covers the main federation mechanisms used to transfer messages between networks.
25
+
26
+ <!-- > tldr:
27
+ - send message to own server
28
+ - notify other members about update
29
+ - other members pull message from server
30
+
31
+ either that or we directly take advantage of encryption and do something more efficient that way. idk im tired i need sleepies
32
+ <-->
23
33
24
34
### 1.1 Direct messages
25
35
@@ -58,22 +68,22 @@ requests are verified correctly by the server.
58
68
59
69
``` mermaid
60
70
sequenceDiagram
61
- participant Charlie
62
- participant Server
63
- participant Alice
64
- participant Bob
65
-
66
- Charlie->>Server: Channel join request + KeyPackage
67
- Server->>Alice: Notify group of join request
68
- Alice ->>Server:
69
- Server ->>Alice: Channel join request + Charlie's KeyPackage
70
- Alice ->>Bob: Verify Charlie 's KeyPackage
71
- Bob ->>Alice: Verified
72
- Alice ->>Server : Notify group of new member: Charlie
73
- Server ->>Alice : Encrypted MLS Welcome
74
- Server ->>Bob : Forward: Notify group of new member: Charlie
75
- Bob ->>Server : Forward: Notify group of new member: Charlie
76
- Server ->>Charlie : Forward: encrypted MLS Welcome
71
+ autonumber
72
+
73
+ participant c as Charlie
74
+ participant s as Server
75
+ participant a as Alice
76
+ participant b as Bob
77
+
78
+ c ->>s: Channel join request + KeyPackage
79
+ s ->>s: Notify group of join request
80
+ s ->>a: Channel join request + c 's KeyPackage
81
+ a ->>a: Verify c's KeyPackage
82
+ a ->>s : Notify group of new member: c
83
+ a ->>s : Encrypted MLS Welcome
84
+ s ->>b : Forward: Notify group of new member: c
85
+ s ->>c : Forward: Notify group of new member: c
86
+ s ->>c : Forward: encrypted MLS Welcome
77
87
```
78
88
79
89
Fig. 3: Sequence diagram of a successful encrypted channel join in which Alice acts as a gatekeeper.
@@ -89,6 +99,8 @@ Bob and Charlie.
89
99
90
100
``` mermaid
91
101
sequenceDiagram
102
+ autonumber
103
+
92
104
participant Alice
93
105
participant Server
94
106
participant Bob
@@ -112,6 +124,8 @@ from the group. The Group owner is determined by the Client-Server API.
112
124
113
125
``` mermaid
114
126
sequenceDiagram
127
+ autonumber
128
+
115
129
participant Alice as Alice (gatekeeper)
116
130
participant Server
117
131
participant Bob
0 commit comments