unsenep2pdev / RetroShare

UnseenP2P is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform. (upstream Repository)
https://retroshare.github.io/
GNU General Public License v2.0
3 stars 5 forks source link

[Question] About new chat system backend #25

Open b1rdG opened 4 years ago

b1rdG commented 4 years ago

Hi!

I'm developing a Retroshare flutter app pushing the changes here. But, IMHO, Retroshare chat backend system is a little bit outdated.

Somebody said that maybe are you working on improve this?

Thanks in advance.

unsenep2pdev commented 4 years ago

Yeah, we have been working on new chat system and got up to code complete this week. Our backend chat system is based on GXS + Direct PubSub Pattern. So, we are adding publish-subscribe message pattern into GXS to provide real-time chat and offline sync with Gxs. You can check out from this branch: https://github.com/unsenep2pdev/RetroShare/tree/unseen-gxs-conversation, We are testing and bug fix at the moment. Hopefully, we will able to make a final release pretty soon. Once we finish the standard testing, we will checkin into our master branch.

b1rdG commented 4 years ago

Awesome, thanks for the work, sound really good!

Are you planning to expose it on the JSON API?

unsenep2pdev commented 4 years ago

APIs are exactly like Channel JSON API + Some other functions that specialized for Chats. We build into three different type of Chats: One2one, Group, and Channel chat messages. We can add JSON API after our release, but you can use Channel JSON API to write your Application for now. Once, we finish the testing phase. We will have more time to upgrade JSON API to support it.

b1rdG commented 4 years ago

Ok, I'll be expecting.

The "group" chats will work similar as the actual lobby chats?

unsenep2pdev commented 4 years ago

you can say that, but our concept of chat is conversation model. Everything (one2one, group, or channel) is publish-subscribe conversation. They are just one "topic type" of publish-subscribe message pattern.

b1rdG commented 4 years ago

What about the system for message encryption? For example, for p2p messages between identities, PGP is used. Instead, for lobbies is SSL (if I remember well).

Did you implement a new encryption system or did you use the already existing Retroshare code?

unsenep2pdev commented 4 years ago

We are still using RS Network connection. SSL or TOR network should work. However, in the future, we would like to replace the quantum resistant encryption from Unseen.is with it.

b1rdG commented 4 years ago

Thanks for answer, just one more question. I imagine the new chat system won't be compatible with the old one, so an adaptation of the actual frontend will be need. Are you planning to do that? And do you know when are we going to see this new chat system implemented on RS GUI? I'm thinking about implement directly this new chat system or just implement the old one meanwhile the new comes up.

xn-zhao commented 4 years ago

Please check out code from https://github.com/unsenep2pdev/RetroShare/tree/unseen-gxs-conversation You can build, run and test the new GUI with new chat backend. We are in process of completion. If you can help, please join with us.