Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request, add a optional group chat ability #163

Open
Tracked by #186
ASmith- opened this issue Aug 16, 2022 · 3 comments
Open
Tracked by #186

Feature request, add a optional group chat ability #163

ASmith- opened this issue Aug 16, 2022 · 3 comments
Labels
enhancement New feature or request

Comments

@ASmith-
Copy link

ASmith- commented Aug 16, 2022

Feature request, add a optional group chat ability

There are times encountered by many using ricochet-refreshed and other communications utilities when the user wished the application had a optional group chat ability for them to more quickly address a group of contacts at the same time rather than one at a time.

Thanks for your development on this encouraged communications application and your consideration on this request.

@odiferousmint
Copy link

odiferousmint commented Oct 30, 2022

I do not think that it is as easy as it sounds. Cwtch achieved group chats but I am not sure if they had to sacrifice anything[1]. Regardless, group chats might not end up being implemented anytime soon.

(It has been a while since the last time I read the current protocols and such.)


[1] Found this: https://docs.cwtch.im/docs/groups/introduction

@morganava
Copy link
Collaborator

I can comment on this broadly to give some context here.

So long term we definitely want some group chat functionality.

In the short-term we need to finish up our work on gosling and get that to a 1.0 stable initial release. The tldr there is that Gosling will replace the lowest level of the Ricochet-Refresh backend and provide a more secure+private by default foundation for a future chat protocol, and give users more control over their own privacy+metadata.

Once its ready is ready for prime-time, then we can re-imagine the Ricochet-Refresh chat protocol from the ground up, what features we want to implement such as group chat, and how to do so without sacrificing the sort of core properties we're going for:

  • privacy- absolute user control over what information they expose about themselves, if any
  • security - end-to-end encryption via tor's onion routing
  • metadata resistance - minimizing the sort of side-channel information leaks about the user
  • decentralization - no need to run servers, purely client-to-client implementation

A group-chat features makes the decentralization and metadata resistance requirements challenging, but hopefully not impossible.


At this point I'm welcome for discussion/ideas around how group-chat would be implemented, particularly in the context of a gosling backend.

I suspect the right way to do this is to require all members of a group chat to be contacts with each other, to avoid the need of running extra onion services specifically for group chats.

We'll need some kind of synchronization mechanism to handle branching and joining conversations as sub-groups inevitably shard-off believing the other members aren't online, and then rejoining.

We'll need to be able to somehow do group file-sharing.

etc etc

@morganava morganava added the enhancement New feature or request label Oct 15, 2023
@morganava
Copy link
Collaborator

morganava commented Aug 27, 2024

Nice blog post in CRDTs which will def be required for any p2p group chat functionality:

https://josephg.com/blog/crdts-go-brrr/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants