News for hackers. Stuff that matters.
Re:Status.im Invests $5M in Riot.im by nirv on Monday January 29, 2018 @12:56PM (#16259234)
I have never heard of Status.im[0], but I'm glad that the Matrix protocol[1] and it's major[2] client implementation Riot.im[3]—received significant financial resources.

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.

[0] https://wiki.status.im/The_Status_Network_Whitepaper

[1] https://matrix.org/docs/guides/faq.html#what-is-matrix

[2] https://matrix.org/docs/projects/try-matrix-now.html

[3] https://riot.im/

Re:Status.im Invests $5M in Riot.im by pablanopete on Monday January 29, 2018 @02:02PM (#16259791)
Hey there! Sounds awesome, I'm with Status and would love for you to check out more about what we're all about. https://wiki.status.im/The_Status_Network_Whitepaper

We're super supportive of matrix and their protocol, Riot will be getting a huge overhaul from how I understand

https://matrix.org/blog/2018/01/29/status-partners-up-with-n...

their latest blog post on this investment goes over the details of what all they are hiring for.

Re:Status.im Invests $5M in Riot.im by nirv on Monday January 29, 2018 @03:09PM (#16260246)
I don't know how this will end up, but thank you for taking risks supporting open-source federated comms. I hope this will give a mature, free alternative for those of us who are not enthusiastic about the ubiquitous centralization and vendor-locked technologies.
Re:Status.im Invests $5M in Riot.im by snvzz on Monday January 29, 2018 @09:50PM (#16262531)
>Matrix is an excellent, federated post-XMPP/IRC protocol

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.

Re:Status.im Invests $5M in Riot.im by Arathorn on Tuesday January 30, 2018 @07:34AM (#16264739)
> It had problems with signatures when messages contained a certain field, so some messages appeared and others were missing.

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:

  {
    "origin_server_ts": 1517313544657,
    "sender": "@kitsune:matrix.org",
    "event_id": "$15173135441073284GrtsX:matrix.org",
    "unsigned": {
      "age": 277
    },
    "content": {
      "body": "Yep, almost a year ago.",
      "msgtype": "m.text"
    },
    "type": "m.room.message",
    "room_id": "!eUGMvloIjhBoAwlyRh:matrix.org"
  }
You get:

* `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!

Re:Status.im Invests $5M in Riot.im by snvzz on Tuesday January 30, 2018 @10:45AM (#16266166)
> issue

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

Couple questions:

- 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?

Re:Status.im Invests $5M in Riot.im by Arathorn on Tuesday January 30, 2018 @05:51PM (#16269840)
> 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.

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.

Re:Status.im Invests $5M in Riot.im by snvzz on Wednesday January 31, 2018 @04:59AM (#16272753)
>whenever you send a message in a room

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.

Re:Status.im Invests $5M in Riot.im by Arathorn on Wednesday January 31, 2018 @06:12AM (#16273025)
there is no such server interval setting, and there never has been? i can only assume that this was the retry schedule doing exponential backoff, trying to contact servers that are down. currently we don't have the concept of shared retry hints (as deciding whose hints to trust would be hard), so every server has to work out which servers are available in the mesh itself. After about 10 minutes it calms down.
Re:Status.im Invests $5M in Riot.im by snvzz on Thursday February 01, 2018 @01:48AM (#16280041)
homeserver.yaml

# The federation window size in milliseconds

#federation_rc_window_size: 1000

federation_rc_window_size: 60000

That's how high it needs to be set, apparently.

Re:Status.im Invests $5M in Riot.im by Arathorn on Thursday February 01, 2018 @03:35PM (#16285609)
That doesn't control how aggressively the server connects out to other servers though - it limits how rapidly the server processes inbound requests; upping the window from 60s to 1s means that it will only process 10 requests from a given server in a 60s window (rather than 1s window) before deliberately falling behind. Interesting if changing it helped your problem; not sure how to interpret that.
Re:Status.im Invests $5M in Riot.im by anderspitman on Monday January 29, 2018 @04:39PM (#16260853)
Been using Riot for a couple months. The web app can be a bit sluggish, but I can't think of a single complaint about the mobile app.

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.

Re:Status.im Invests $5M in Riot.im by ATsch on Monday January 29, 2018 @04:55PM (#16260978)
As far as I can tell (and from asking the developers), this is simply caused by the matrix.org servers being overloaded. Other homeservers don't seem to have this issue.
Re:Status.im Invests $5M in Riot.im by anderspitman on Monday January 29, 2018 @05:04PM (#16261044)
Good to hear. I was hoping that would be the case, and obviously it's not bothering me enough to do more than a cursory google search.
Re:Status.im Invests $5M in Riot.im by piroko on Wednesday January 31, 2018 @06:55AM (#16273180)
I’ve been running my own homeserver for over a year now. As long as I’m not joined to the “giant” rooms like #matrix:matrix.org and #riot:matrix.org, my user’s messages send instantly. Definitely recommend running your own server if you can manage it
Re:Status.im Invests $5M in Riot.im by anderspitman on Wednesday January 31, 2018 @06:23PM (#16278486)
Excellent. I can and will soon. That's actually how I started out, but had some other performance issues. After a bit of googling I realized I'd need to read a bit more before running my own copy of synapse (was also uneasy about the security implications of all the federation stuff and want to make sure my server is hardened enough before I open those ports).
Re:Status.im Invests $5M in Riot.im by osense on Monday January 29, 2018 @02:05PM (#16259812)
There's a Weechat plugin [1], however I remember it having problems with UI lags. In addition, the official Freenode bridge on matrix.org often has problems as well, but that's what I get for not bothering to run my own bridge. At least it seems like the Weechat plugin is under active development. [2] I should give it another try.

[1] https://matrix.org/docs/projects/client/weechat.html

[2] https://github.com/torhve/weechat-matrix-protocol-script

Re:Status.im Invests $5M in Riot.im by jtl999 on Tuesday January 30, 2018 @05:11PM (#16269575)
I think they fixed the Freenode bridge recently.
Re:Status.im Invests $5M in Riot.im by floatboth on Monday January 29, 2018 @01:22PM (#16259451)
You don't need Electron. It's just a web app. I just run Riot as a pinned tab in Firefox.
Re:Status.im Invests $5M in Riot.im by thomastjeffery on Monday January 29, 2018 @01:49PM (#16259652)
That doesn't make it any less clunky or sluggish.
Re:Status.im Invests $5M in Riot.im by NoGravitas on Monday January 29, 2018 @02:01PM (#16259770)
Eh, it reduces the memory overhead to run it in your existing browser rather than run a separate browser runtime just for Riot.
Re:Status.im Invests $5M in Riot.im by mtgx on Monday January 29, 2018 @02:24PM (#16259952)
Status is one of the first "mobile chat app" cryptocurrencies to be funded with a ton of money via an ICO. It's actually why I was saying here about a year ago that Moxie the team should be putting Signal on the blockchain somehow if they want serious funding.

Once again we see that cryptocurrencies can be an extremely positive influence on open source projects through the funding they can provide.

Re:Status.im Invests $5M in Riot.im by marknadal on Monday January 29, 2018 @02:20PM (#16259930)
As an alternative, we've worked really hard on making E2E key management super easy: https://github.com/amark/gun/wiki/auth

It is P2P not federated though, and the UI might be worse or better depending on your tastes. ;)

Re:Status.im Invests $5M in Riot.im by duozerk on Monday January 29, 2018 @01:28PM (#16259484)
Yes, riot sucks both in its current "desktop" implem (electron indeed) and the web version - tried it about two months back. You can tell there's possibly something worthwhile there though; eventually it may become usable for work.

I found the way the software tries systematically to push the user towards the "official", centralized matrix server distasteful though.

Re:Status.im Invests $5M in Riot.im by Kudos on Monday January 29, 2018 @02:19PM (#16259927)
> 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.

Re:Status.im Invests $5M in Riot.im by amandine on Monday January 29, 2018 @03:00PM (#16260178)
Indeed, trying to find the balance between "accessible for your average WhatsApp user" and "powerful for more advanced users" is still something we're working on. Nothing deliberate here.

- Matrix team

Re:Status.im Invests $5M in Riot.im by tomcooks on Monday January 29, 2018 @02:58PM (#16260171)
It is already usable, try it now and you'll be surprised.

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?