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: Sync messages between devices #4830

Closed
kodsama opened this issue Dec 7, 2015 · 16 comments
Closed

Feature Request: Sync messages between devices #4830

kodsama opened this issue Dec 7, 2015 · 16 comments
Labels

Comments

@kodsama
Copy link

kodsama commented Dec 7, 2015

Hi,

It would be great that the mobile and desktop version contain the same messages, so that we can seemlessly go from one to another, for example that when we add a desktop client, it would ask to sync messages available on the mobile version.
Also when both are connected at the same time that they could share a kind of "message status" so that they could keep in sync.

@Dyras
Copy link

Dyras commented Dec 7, 2015

This is what I was expecting and I was surprised to see this feature missing.

@RiseT
Copy link
Contributor

RiseT commented Dec 10, 2015

I guess it's pretty difficult to implement full syncing in a privacy focused app. For the kind of syncing you're thinking of, it would be necessary to permanently store the full history of messages, media, etc. on Signal's server, which is - although encrypted - still a privacy risk (and, as a side note, increases server storage costs).

The only way I could imagine doing this without storing the data on the server is a direct device-to-device sync at times when two or more linked devices are online simultaneously. Usability-wise, that's not a perfect solution - as the devices have to be online at the same time for catching up - but at least it is a solution, and one without any privacy compromises.

Dropbox has a feature called 'LAN Sync' which does exactly that, although the underlying motive there is transmission speed rather than privacy:
https://www.dropbox.com/help/137
https://blogs.dropbox.com/tech/2015/10/inside-lan-sync/

With Lan Sync, there's only syncing within the same local network. Another possibility would be device-to-device syncing via the internet as well.

@mawed
Copy link

mawed commented Dec 10, 2015

If this is implemented it should be optional and with possibility to abort as it could be really intense for the (mobile) network

@kodsama
Copy link
Author

kodsama commented Dec 11, 2015

Couldn't we actuallty require both devices to be connected at the same time and that they simply share a checksum of the messages stored on each devices.
If one of the see that the checksum differs then they can ask the user to use a sync mode where they share the message history ?

This way you can have control of it and use P2P sharing which would reduce the privacy problem :D

@Dyras
Copy link

Dyras commented Dec 11, 2015

I definitely think directly sending the message from one device to the other is the way to go. Since every message sent/received after linking the device is delivered to both devices I don't see this as a big issue. I would very much prefer if they put their gunpowder into use for something else. I wish we had more themes, for example.

@lorenzhs
Copy link

At the risk of being slightly off topic, I think core functionality like working synchronization should be a much higher priority than adding more themes.

Also I must confess that I'm not quite sure what your intent is in this issue. Sync of new messages (i.e. from the time you link the devices) is supposed to work. If it doesn't, that's a bug (like mine in #4859). Or are you referring to syncing old messages, i.e. those sent and received before the Desktop client was linked? Then you should say so clearly.

If that is indeed what you mean, then this issue will probably go away within a couple of weeks as your history is populated with more recent chats. How often do you really go back to older chats?

@Dyras
Copy link

Dyras commented Dec 11, 2015

Sorry for being unclear, I've had a crap day today. I mean old messages, not new messages after linking the desktop client.

@lorenzhs
Copy link

Ah, thanks for clearing that up. Then let me attempt to rephrase the issue statement, maybe @MaralAfris can adopt it for the first post:

it would be great if Signal could sync the entire message history to a new device being linked. It's a bit unclear what would be the best way to facilitate this, but probably opening websockets to the server and having the server pass through the data without ever storing it would be most reliable.

@RiseT
Copy link
Contributor

RiseT commented Dec 11, 2015

Now I'm the one being confused. If this is supposed only for old messages prior to linking, I wonder how the syncing of new messages after linking technically works.

Let's say I've got Signal on my mobile phone, which is online all the time, and I've got some notebook with an already linked Signal Desktop. Let's further say that I don't switch that notebook on for a couple of months. One day, I switch that notebook on and start the already installed & linked Signal Desktop. So where does Signal Desktop get all of those messages from that arrived on my phone in the time period between linking the notebook (couple of months ago) and the current day? From the server?

@lorenzhs
Copy link

I don't know how this is implemented cryptographically, but yes, the messages are stored fully encrypted on the server and downloaded once you connect. This is the same as what happened previously if you switched off your phone for a month -- the messages would still arrive, and they'd still be secure. Since this isn't really related to the issue at hand, I don't think this is the right place to discuss this really.

@heyimgay
Copy link
Contributor

From the phone if it's still in your history.

A new message type saying "this is the checksum of the last message I received" and is timestamped so we know which messages to send.

@RiseT
Copy link
Contributor

RiseT commented Dec 11, 2015

@lorenzhs Thanks, but I'd say it's crucial to understand this for discussing the feasibility of the topic/issue at hand.

@heyimgay Thanks for the info.

@scienmind
Copy link
Contributor

Syncronization may be done after linking the devices using the regular method, which is just using Signal Messages.
(As Moxie mentioned, all communication between the linked devices is done by Signal messages.)

The issue with backlog syncing is the size of course. But backlog syncing can be done at least for the textual contents (as done in plain-text backups). It would be better than nothing, and in such case size should not be a problem.
Judging from this PR a while ago: #4019, signal should handle 100MB message just fine.

(Off topic: @RiseT, as far as file syncing tools go, you should have a look at this free, opensource project: https://syncthing.net/. Great tool, no storage on 3rd party servers)

@kinghat
Copy link

kinghat commented Dec 14, 2015

i think this would be awesome as well. the messages shouldnt need to be stored on signals servers.

@lorenzhs
Copy link

There is a matching Signal-Desktop issue, signalapp/Signal-Desktop#444 - not sure if I should close that one?

@signalapp signalapp locked and limited conversation to collaborators Dec 16, 2015
@2-4601 2-4601 added the desktop label Dec 24, 2015
@automated-signal
Copy link

GitHub Issue Cleanup:
See #7598 for more information.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

10 participants