How persistent is messages in Status.im mobile app?


#1

I first used Status.im when somebody told me about it at devcon4 and I think it is really great, it looks good and it is fairly easy to navigate.

Not knowing the inner technology I assumed my messages would be stored on some server persistently, but I haven’t tried it and I don’t have 2 mobile phones.

But what is persistent and what is not? From this thread (Operation Eat the Cluster: A Proposal), it sounds like something may even not persist more than 24 hours.

How would I store my messages for years reliably?


#2

Hi @kevinsimper,

messages are effectively only stored on your device, we have what we call mailservers, which will store whisper envelopes (the raw encrypted data), but have no access to the unencrypted content nor they know who is the sender/receiver. Their main purpose is to allow offline messaging (you send a message to B when B is offline, it is stored on the mailserver, B goes online it queries the mailserver), and not archiving.

We keep only 30 days worth of data, but the app online actually fetches the last 24 hours. Also eventually we are planning to have the community running this nodes, rather than Status.

So to answer your question, we are not going to store messages for users (although anyone can run a mailserver and store messages), we only want to provide a way for users to have offline messaging capabilities.

Hope it’s helpful, thanks for trying out status!


#3

thanks for that awesome @cammellos, it was really what I was looking for! Searching the forum on “persistent” doesn’t give and answer, neither does https://www.google.com/search?q=status.im+persistent so it is really great to know

I think this will come to a big surprise to many users, as it is contrary to the norm, especially because Status.im in the whitepaper it says

Utilizing the messaging-as-a-platform user experience, the Status mobile Ethereum client presents a familiar feel that’s convenient and well suited for mass adoption.

So a way to backup and restore messages would be nice and a message somewhere consistently to say that messages are not stored persistently :slight_smile: would that be a good idea?


#4

Thanks for the feedback,

certainly it needs a bit more clarity in the docs, as you rightly pointed out it’s not so intuitive.

In terms of backups and restore, there are currently two different view, Signal for example does not provide any way to have backups, as that would invalidate/bypass some of the security properties of their protocol, while other apps are more permissive.

We had many discussion about this and I believe as a company we are taking a more conservating stance and leaning more towards signal’s approach, but there’s plenty of other opinions as well, so it’s possibly not settled yet :slight_smile:


#5

I didn’t know that Signal doesn’t allow that on iOS only (https://support.signal.org/hc/en-us/articles/360007059752-Backup-and-Restore-Messages), that is a pretty unsatisfying thing, that leaves the users basically to screenshot all their important messages, because the users will find a way. It is kind of disrespectful when you data is locked into a app and you can’t export it. It definitely sets the tone of the app.


#6

On Android as well they don’t really allow you to backup, basically they create a file locally, which you will have to move manually if you want it to restore to a new phone (I guess the same method is not possible on IOS).

The main issue here is that any form of backup would likely invalidate forward secrecy if transmitted over the wire (acting somehow like a backdoor), so rightly or wrongly (it very much depends on the use case of the app), I believe they decided not to provide it.

Not sure if I would call it disrespectful though :), as technically a backup solution is trivial to implement, but they chose otherwise for the safety of their users (or at least that’s what they believe), and I understand their reasoning, although I see you point.


#7

Which is why it shouldn’t be “transmitted over the wire”. Just a trivial Export archive to encrypted file button would be enough for 99% of people. Obviously we could prefix it with an appropriate warning.


#8

Yeah totally, but if I as a technical user can’t decide over my data myself, then I think the app is working against me. Like it is a lock-in and that seems the opposite if I believe in open and accessible data.

This would be awesome and cover 99% as you say. And I don’t expect to be able to import again although it would be nice, a way to search it and view it somehow is a great start.


#9

they have exactly that on android :slight_smile: probably not feasible for some reason on ios, likely no access to fs


#10

I think if you can show it on the screen, you can output it to somewhere, sharing files on iPhone is pretty simple :slight_smile: http://osxdaily.com/2018/06/22/how-save-zip-file-iphone-ipad/ So putting it in a encrypted zip file and then triggering the Share dialog in the iOS app.