mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-26 10:58:02 +00:00
2.5 KiB
2.5 KiB
Channels
This supersedes the previous super-peers RFC, by reducing its scope to channels.
Problem
This doc proposes the scope for MVP for channels based on chat relays, as the first step to arbitrary large groups based on chat relays.
The technical difference of channels is that only owners can send messages and all members are "observers" who can send reactions.
From UX point of view, channels will be a separate thing, as one more action in the menu.
From threat model point of view, we want to protect from chat relays being able to act as owners - channel "identity" will be based on owners keys, as described in this rfc.
Solution
Minimal testable scope:
- protocol for managing owners changes and channel profile changes - probably based on some consensus protocol.
- message signing by owners - to authorize channel profile and ownership changes.
- make group link part of group profile, while delegating connection to channel to chat relays included in link data.
- messages sent from channel name.
- message forwarding by chat relays:
- all relays forward each message, client de-duplicates by message ID and highlights any differences between chat relays.
- forwarding operation should be persistent, resumable and batched, optimizing between latency and load.
Channels MVP implementation scope:
- split directory service from chat relay.
- message services to allow for fast subscriptions of chat relays to SMP servers using service certificates. It is in progress in this PR.
- fully migrate SMP servers to PostgreSQL.
- chat relay management (started in this PR), include chat relays into pre-configured operators.
- catch up with skipped messages (related to history navigation).
- manage chat relays in UI.
- member keys, for owners, profile signatures and for establishing e2e encryption in chat with admins. Possibly, profile keys as described in this RFC (option 2).
- reuploading files by relays for indefinite storage and maintaining channel quotas for files.
- operator content moderation.
- UI changes for channel/group creation.
Post MVP:
- pagination in member list.
- history "navigation" - request older messages.
- e2e encryption in chats with admins.
- message revocation from history by senders.
- message comments.