mlswg / mls-architecture

MLS architecture
Other
66 stars 26 forks source link

What is assisted joining? #244

Closed Bren2010 closed 8 months ago

Bren2010 commented 8 months ago

I genuinely don't remember what this term means and it is used in the architecture draft but not defined

kkohbrok commented 8 months ago

I think it's meant to be the scenario where a DS holds a GroupInfo and provides it to a party for an external join. Of course, the GroupInfo either has to contain the RatchetTree as a GroupInfo Extension or the DS has to provide it to the new joiner alongside it.

rohan-wire commented 8 months ago

My more general definition of Assisted joining is that an MLS client can join an MLS group without a member interacting with the new joiner in real time.

Often this is implemented centrally where the central DS function gets the GroupInfo from each Committer, or constructs it by inspection of Commits. However I think you could implement it in a distributed way if you assume availability of some non-MLS resource.

ekr commented 8 months ago

This term appears to exist exactly once in this document, and only in a negative:

If an application chooses not to allow assisted or external joining, it may instead provide a method for external users to solicit group members (or a designated service) to add them to a group.

It never appears in RFC 9420.

So I think rather than define it, we should just remove it and say rather than "assisted or external joining" we just say "external joining", which does appear in 9420