We, a small group of tech-savvy people, tried to use Riot client in the early summer of 2017, but it was far from being convenient for work needs. Poor UI/UX, overcomplicated E2E-keys sharing, sluggish interface (Electron, as you might have guessed) and awful mobile app. I'm not sure of the current status, but I hope now they'll be able to increase the pace of development and quality of the product, since Matrix is an excellent, federated post-XMPP/IRC protocol, which we lack today.
Upd: references and clarifications.
We're super supportive of matrix and their protocol, Riot will be getting a huge overhaul from how I understand
their latest blog post on this investment goes over the details of what all they are hiring for.
I have my doubts about this. So many IM systems have got this wrong before that there's no reason to give anyone the benefit of the doubt.
I, too, have looked at matrix at some point. I setup a server, created a user, joined a couple low traffic rooms in their main server, and found major practical issues on their protocol's behaviour.
It had problems with signatures when messages contained a certain field, so some messages appeared and others were missing. This seemed very unorthogonal (why is the payload not just a field of its own? Why do messages have so many fields? Why is the signature code different on both ends?) and left a bad impression. To top it off, the server was making me hit my ISPs (pretty bad ISP) connections per second limit. It was opening connections to hundreds of servers, constantly, which seems like seriously bad for scaling, considering I had only joined two low traffic rooms.
So, I fear this is going to be the same Jabber/XMPP bullshit all over again.
Apparently, development focus isn't on making the basic protocol perfect, but on UX nonsense and adding features (think "reaction animations" and other such crap) to try and attract the riffraff. No better than your average commercial IM "app".
I do strongly hope I'm wrong, but I'll stay in the sidelines for now; I did shut my server down because of the connections per second problem. I might give it another go in the future, once their golang server implementation gets there.
Did you file a bug on this? We're not aware of any signature problems whatsoever in Synapse (or Matrix).
> Why do messages have so many fields?
So looking at a message like this:
"body": "Yep, almost a year ago.",
* `origin_server_ts`: the absolute TS the sending server claims
* `sender`: the matrix ID of the sender
* `event_it`: the UID of the event
* `unsigned.age`: a relative TS for receipt on your local server (added by your local server, hence being unsigned)
* `type`: the namespaced type of the event. In this instance, `m.room.message` is the general purpose Instant Message event type.
* `content`: arbitrary JSON to describe the contents of this type of event. In this instance, it's a plain text message with a given body.
* `room_id`: the room the event's been sent in.
This doesn't seem unreasonable? (but I may be biased thanks to working on it).
> To top it off, the server was making me hit my ISPs (pretty bad ISP) connections per second limit.
Oops. This might have been a while ago before we improved the connection pooling for federation traffic? What's the limit?
> Apparently, development focus isn't on making the basic protocol perfect, but on UX nonsense and adding features
We're trying to do both. A perfect protocol is useless if it doesn't have flagship apps which make it usable by normal people. Right now the protocol is relatively good; the Python/Twisted impl is very heavyweight (but getting better); Riot (as a flagship app) also has perf problems but it hopefully headed in the right direction.
Dendrite should be an enormous improvement on the serverside when it gets there however!
To be clear, it got solved, and it happened several months ago.
> the Python/Twisted impl is very heavyweight (but getting better)
Constantly near-saturating rpi2 cpu while doing effectively nothing last time I turned it on. (70%+ cpu time). This is why I'm thinking I'll wait for golang until I try again.
>Right now the protocol is relatively good
- If I delete my server database, start anew, and join a room I used to be in, will I end up in a bad state, or are things more robust these days? I remember reading about it somewhere.
- Does the server _still_ solve a bunch of names and open hundreds of connections / server event interval or whatever it was called?
It should end up (eventually) in a consistent state, but it can take a while to sync up again.
> Does the server _still_ solve a bunch of names and open hundreds of connections / server event interval or whatever it was called?
It's still full mesh, so whenever you send a message in a room, your server has to make a HTTPS hit to every other server which is participating in that room. In a massive room like Matrix HQ, this could mean 800 hits or so. It shouldn't do DNS every time, and it shouldn't open a new connection every time, but haven't checked the connpooling recently; hopefully it hasn't regressed.
Just to be clear, I saw this behavior without sending anything to any room. Just by being in the room.
If the server interval setting was 5 seconds, it'd literally do hundreds of connections every 5 seconds.
# The federation window size in milliseconds
That's how high it needs to be set, apparently.
My biggest concern at this point is that messages seem delayed sometimes by a few seconds. I don't know if this is an optimization issue, or some deeper problem with Matrix's protocol/distributed nature, but it can be annoying if I'm trying to carry on a real time conversation with someone.
It hasn't affected me too much overall, and I'm optimistic it will eventually be sorted out.
Once again we see that cryptocurrencies can be an extremely positive influence on open source projects through the funding they can provide.
It is P2P not federated though, and the UI might be worse or better depending on your tastes. ;)
I found the way the software tries systematically to push the user towards the "official", centralized matrix server distasteful though.
Seems like they're simply trying to reduce friction for the on-boarding process to me. Characterising it as distasteful is taking the piss a bit.
- Matrix team
Web version works smoothly on my 2009, 4gb ram laptop and the android version is faster than Whatsapp on my samsung galaxy 1.
Had no idea there was a desktop app, will try it out but why use that when the web version works so well?
Status.im hasn't done much other than raised a huge round of ICO, so they're sitting on all this money they can use to buy out other "competitor" protocols. Sure, they have a prototype beta and I guess beta testers are using it, but they don't even have a working app on the appstore.
Their (Status.im) strategy seems to be use their treasure chest of money and gain traction by acquiring other protocols (It may sound like a "partnership" but essentially the whole deal seems to be that these projects that received investment are expected to integrate with Status token)
I would have no issue with this approach if they actually HAD launched a product, but like I said, they don't even have a production app.
Riot has been around for a while, and they have an actual product. I think it sucks that an organization with more money can just buy out another org with less money. I would have loved to see Riot build their own destiny with their own tokens instead of raising capital from a competing messaging protocol.
There is no acquisition here, nor any expectation to use Status token. The only idea is for both projects to help each other, and if Status can help financially Matrix might help otherwise (e.g. provide a bridge to Whisper, Ethereum’s own real-time communication protocol and as such exposing all of the Matrix ecosystem into Ethereum and vice versa; continue working on Olm/Megolm such that it could be used for E2E encryption in Status etc).
As Jarrad says in their blog, we are all trying to provide a decentralised Web and no one knows today how it will look like in the future. By supporting other opensource projects Status is only trying to move the needle and promote open solutions rather than proprietary ones.
We at Matrix are very glad that some projects use their ICO money for the greater good, and in this case it will allow us to spend all our time and focus on polishing Riot, getting Matrix out of beta, finalising end-to-end crypto, rather than open yet another battle front by doing an ICO, or getting distracted by raising more funds or doing too much consulting work.
Matrix might get to an ICO some day, and/or New Vector might get enough revenues to be sustainable and able to support both Riot and core devs for Matrix. But these are later steps.
Our side of the story is here fwiw: https://matrix.org/blog/2018/01/29/status-partners-up-with-n...
Status has a very close to working MVP; developing an application completely based off of new protocols and a decentralized environment is no easy task and much R&D still has to be done with Ethereum and the whole ecosystem in general before any of these new systems are production ready; and Status aims to stay true to the ethos of keeping a completely decentralized interface and system while supporting others in the ecosystem that share that same vision.
If you sign up for our alpha on status.im you can test out our (already functional) product. The majority of work left to be done is in performance and security audits.
- Contracted Matrix Dev
Right now, my only complaints are that there are some notification settings that you can't change from the app, and that the user interface is a little redundant. I'm highly optimistic though.
I know it's annoying, and I do avoid doing such things in general. I'd have never done it to get people to switch from proprietary centralized service X to proprietary centralized service Y.
But Matrix/Riot is special and worthy of such evangelism. It's the first federated secure IM system with a good user experience and instant messaging desperately needs to move away from today's proprietary walled garden hellscape.
I had hoped XMPP would pull it off, but it didn't. For a time it seemed Google Talk would make that happen, but Google bait and switched us.
I'm hoping that Matrix/Riot can pull off what XMPP failed to do (and Google arguably actively sabotaged), and I'm willing to strain friendships with social pressure to convert people one person at a time.
Because that's how you build movements. One person at a time.
There are some rooms that bridge IRC, Gitter and Telegram using Matrix, of course providing native Matrix access too.
At the moment, it's the only messaging platform that I use. I use regular texts to talk to everyone else.
In my case, I don't need everyone to be invested into the network for it to be worth it. I'd say that around 95% of my daily communications are in the one Matrix group chat, so I've reduced my reliance on centralized services quite a bit.
I've set a general long term goal for myself to gain more control over my own data. The first step was purchasing my own domain and migrating away from Gmail. This is just another small step.
I feel like it only takes a handful of active users in your network to make the app worthwhile, though. I use a variety of messengers (including Riot) to talk with different people and don't find it burdensome, even if it is suboptimal.
Is this a problem with the blockchain community? Repurposing long-established words for their own use ("crypto", "os")?
The status investors paid to build a new platform, and the team is unable to deliver this.
By paying an existing open source project, yes we all win, but that is not what people (not myself, are you crazy... lol) paid for.
I distrust for-profit messenger apps, no matter how good their intentions are. Sooner or later, they'll sell my data :(
I think the idea is that those phone companies are scared of WhatsApp and Messenger. It's to their advantage to fund an open, federated messenger bus, so their attempts to compete with them work well globally.
This B2B market has the virtue that it allows improvement and maintenance of an open, consumer application, without contradicting revenue from business uses.
I'm not sure if this is still the ultimate revenue plan, would love to know!
But I'm also not sure they need to have any of your data.
The riot.im client lets you connect to your own Matrix server rather than an "official" one, so they're not really able to monitor your usage or know who you are unless the app is phoning home.
Maybe it's collecting analytics data? Would love to know. I only use the Riot.im app on mobile and use other clients for desktop usage.
- Dev who wrote Riot's Analytics
Digital oil. Makes the world go 'round.
The Riot IM site confuses me a bit, I had thought it was an open source client you could run on own server - but I don't see anything about that there. Did some digging on matrix and found one mention of vector code on github - not many details...
Is there someone I can send $100 that can spend some time explaining to me how to set this up on my own server, and how to mod it a bit so that for example, most logged info is destroyed after 24 hours and things like that?
After spending time and money on rocket chat I've come to find the value in hiring an expert / professional in the sphere to consult with before drinking the koolaid and going all in on the flashy promises on home pages.
added contact info to my profile thing here, I hope it works.
Now if someone would put $2 million into buddypress, and mastadon (I think that's what its called) I would think we have a future that is possible without the F and G overlords.
Matrix is the protocol - it is a standard. So there are many servers being implemented. But most of them are Alpha/Beta software. The server from matrix org everyone uses now is called Matrix Synapse. It is written in python. If you don't need extreme performance (thousands+ clients) then go with that. On debian/ubuntu it is simple as apt get matrix-synapse but it can be installed as any other python app. Then it is basically about setting one config yaml file (homeserver.yml) and you are done. Lots of guides here https://matrix.org/docs/projects/server/synapse.html
I run matrix synapse for smallish org and we also tried rocket chat and mattermost. Riot was by far most stable and fastest. Rocket chat was very sluggish and mattermost had problems with mobile notifications (i think you have to pay them for notifications or something like that).
Don't get me wrong, I'm a big fan of XMPP, but the lack of progress is quite upsetting.
Google and DDG do not provide Matrix servers and probably will never do (big players are not interested in federation in general, not just XMPP), but isn't the entire point of federation that you host your own?
Check out conversations.im and dino.im for modern clients.
With these components, you can host your own messaging platform.
Naturally, if you're making a new channel for a group, you have to ask everyone in the group to join it. That's the case whatever messenger you use.
There is crypto now for private messages, but it is a little clunky to setup still. I hope that the funding helps make this better!
For friends I've shared keys with, it works really well. Of course, right now people will only join for ideological reasons. That's OK though!
I also invited some friends to join my Matrix server directly, but there wasn't much pickup yet. But that doesn't matter since I'm already connected to the places where people are via Matrix.
It's extremely easy to fingerprint the devices that someone is using (it literally tells you right within Riot) and by design could make it easy for someone to track you or target your device if there are any known exploits for it.