Element raises $30M to boost Matrix
matrix.org
matrix.org
1) Element or other matrix components do not require a copy right transfer. That means Element is hard to re-license under another license than its current one.
2) The license for Element is Apache 2.0. A fine choice for any OSS project looking to maintain a healthy ecosystem of contributors for decades to come.
3) The ecosystem has a diversity of stakeholders and contributors outside of Element the company maintaining various components, integrations, etc. It's an ecosystem that already serves many millions of users.
4) Not all the Matrix components are under the Element umbrella (see 3). Element is probably dominant in this community but it's based on merit rather than ownership. E.g. the Matrix foundation is mostly run by people outside of Element. Even the Element apps have contributions from outside Element the company (see 1).
5) Decentralization is at the core of the Element sales pitch. They are unlikely to want to walk back on that; or even be able to do that without damaging their credibility. For better or worse, that's what they are selling and stuck with. And they seem successful with it too. Hence the investment.
That helps a lot with future-proofing the openness of an open-source project [1], and it's a critical detail often overlooked, mainly because it's a technicality of copyright licensing and most people understandably just want to know if something is open-source or not, without getting into the details.
The simplistic gist of it (not getting into differences between Licenses) is that if you contribute to an open source project that requires copyright assignments, then its only promise is that current versions of the code will remain with the same (open-source) license. Future versions might as well become proprietary while benefiting from your code. So depending on your willingness to accept that, it's an important factor to consider. Sometimes you just don't care, then all right just go ahead. Other times you might have a stronger position on this, then step back and think about it.
On the other hand if you contribute to a project that won't ask you for any copyright assignment, then your contribution is yours, its license cannot change in the future without asking for your explicit permission (or dropping your code altogether). This is, if your contribution was a significant enough work; I don't know where the line is drawn legally, but I know (from reading here in HN) that trivial enough contributions might not need permission to be relicensed.
[1]: On the other hand, it might hinder the ability to commercialize it, which might end up meaning that there are no devs pouring serious work into it, which in turn might end up meaning there is no project at all :-) "pick your poison", I guess.
If we look closer, I believe (not an expert, though) that without a copyright assignment your contribution would have to be kept with the same license. We'd be just getting into the fact that non-copyleft licenses typically allow to use the code for building proprietary software. But AFAIK the contributed code itself would need to be kept with the original license? (that's where my knowledge is lacking)
OTOH if I had signed a CLA, then your company would be within its right to entirely strip any attribution to give whatever license they see fit to the code I wrote.
There’s no devil in the details. The entire codebase can be taken proprietary right now and there’s not a thing you can do. You’re free to extend the last permissively licensed version.
Some of us prefer permissive licenses, or choose between permissive and copyleft depending on the nature of the application.
But here's something you can't do with my MIT licensed code: change the license to copyleft.
Point being, if one is contributing to a project with a permissive license, that should imply being a-ok with it getting rolled into some binary in a form you don't have access to.
If one is contributing to a project with a permissive license, that should also imply being a-ok with it getting rolled into a copyleft project too.
Examples of permissively licensed code being used in proprietary systems abound.
Has anyone ever successfully copyleft-jacked such a project? I grant that it's possible but I'm not aware of it actually happening.
That aside, any permissively licensed library used in a GPL program would technically fall under this situation, as it ends up distributed under the terms of the GPL. It just so happens that usually the libraries aren't modified by the application developer, so you can typically go find the original source.
If they are, those changes may be under the GPL, depending on whether the application developer kept the derivative version of the library explicitly under its original license, or licensed their changes under the application's license.
That depends. I don't know the current paperwork, but I assume assignments for GNU software still involve a contract promising to maintain a substantially similar free software licence.
Despite years of deployment, 90%[1] of the work is still done by paid Element employees rather than the community. Could you imagine a world where Microsoft make 90% of the effort to Linux and still tried to call it diverse?
Likewise, the vast majority (>80% anecdotally) of users on the main Matrix federated network live on a single instance centrally administered by matrix.org. Again, not a shining example of decentralisation at work.
My worry isn't about Matrix the protocol, though I think it leaves many aspects to be desired. My worry is that the fate of Matrix rests on Element Co, which seems to be a default-dead start up, repeatedly needs to seek funding, and nearly went bust in the past.
[1]: https://lobste.rs/s/emxymp/introducing_p2p_matrix#c_ilr501
The lobsters comment is from me, a year ago, talking about the spec and implementation work published by the Matrix core team - i.e. the contents of https://github.com/matrix-org. Matrix started in 2014, and the core team formed Element in 2017 to fund its work, so it should hardly be surprising that much of that code comes from Element employees. Just as if Linus had chosen to fund himself to work on the linux kernel by creating a startup, the balance of code in the kernel would be different. Nowadays I'd guess it's more like 75% of the code at github.com/matrix-org which comes from Element employees contracted to work on Matrix by the Matrix.org Foundation.
However, across the wider ecosystem, Element's contributions are an increasingly small minority. There are completely new independent implementations out there like Conduit.rs (rust server) or the whole FluffyChat stack (cross-platform flutter clients) which have almost no contributions from Element and build on entirely different codebases to the reference implementations at https://github.com/matrix-org. So, where it counts, I'd guess that Element probably does <20% of the overall code in the Matrix ecosystem?
> Likewise, the vast majority (>80% anecdotally) of users on the main Matrix federated network live on a single instance centrally administered by matrix.org.
Looking at the phonehome stats, it's more like 30%.
> My worry is that the fate of Matrix rests on Element Co, which seems to be a default-dead start up
Nope, if you read the Element blog post at https://element.io/blog/element-raises-30m-as-matrix-explode..., you'll see that Element is explicitly default-alive.
> repeatedly needs to seek funding
Nope, we didn't need to seek funding in this instance; we consciously chose to. We could have just continued profitably at a slower rate, but we wanted to go faster in order to compete with Discord & Teams etc.
> and nearly went bust in the past.
Nope, Element was formed after we lost funding for the original Matrix work... which is why we formed the company.
It appears that the data which is collected includes [1]:
Message senders
Message senders are never encrypted
Session/device IDs
Due to Matrix's design, encrypting this would break verification
Message timestamps
It's impossible to prevent timestamps from leaking, since the server can simply note when an event is received anyway
Room members (join/leave/invite events)
Join/leave/invite and other room events are never encrypted
Message edit events
While contents are not leaked, an attacker can know when messages are edited
Message reactions
Reactions are never encrypted
Read receipts
Read receipts are never encrypted
Nicknames
Nicknames are never encrypted
Profile pictures
Profile pictures are never encrypted
Put another way [2]: The Matrix ID of users, usually including their username.
Email addresses, phone numbers of the user and their contacts.
Associations of Email, phone numbers with Matrix IDs.
Usage patterns of the user.
IP address of the user, which can give more or less precise geographical location information.
The user’s devices and system information.
The other servers that users talks to.
Room IDs, potentially identifying the Direct chat ones and the other user/server.
--[0] <https://www.hackea.org/notas/matrix.html>
[1] <https://serpentsec.1337.cx/matrix>
[2] <https://www.hackea.org/notas/matrix.html#facing-the-real-and...>
All the stuff you enumerate is metadata that your server stores in order to store your conversations. Until P2P Matrix lands, if you're worried about metadata, only talk to people on servers whose admins you trust.
Congrats on your round. Best wishes for turning that into a robust truly decentralized E2EE communications platform that the average person won't shy from. Btw, I hope SNEK sticks!
Collected hashed at a identity server (you can choose) in case you decide that other people should be able to use the identity server to discover you via phone number
Those kinds of anchor clients leave me sanguine about the prospects of Matrix and Element.
As for decentralization, what the ~80% do is totally irrelevant to the other 20% of us. My company finally got off Slack (where 100% of users are trapped in a ransomware monolith) and we couldn't be happier. I federate with a couple other servers and it all Just Works.
Matrix is federated, and the way federated decentralization tends to play out involves a few big 'continents' and a vast archipelago of small instances. If you want true decentralization you have to force it with a peer-to-peer architecture, like Urbit or Secure Scuttlebutt.
Those have their place, but so does Matrix.
We only have 5 users, and we use coturn on the same machine, but three of those users are also linked to glitter and matrix.org channels/rooms. The ~/synapse directory weighs in at 5GB with 2GB of that being logs.
The setup took me a 'few hours' over two nights, but my work revolves around setting up services and software[0] - it may take someone else a couple of days to correctly set up and run it.
[0] uptime reflects the rolling nature of Gentoo, and I had a certificate update at the same time, reboots are inevitable. I start with Gentoo with any new online service, since I know the pain points and failure modes. This homeserver is run on a VM in a datacenter. I have no complaints about synapse so far.
The way you wrote it makes it sound like someone can make the project proprietary over night.
They cannot and I wish GPL people would stop pretending.
Whoever has a copy of the repo or even a snapshot of the source can continue using and developing it under the original license.
What one, strong contributor can do is make a proprietary fork and stop contributing towards the original open source one, possibly dumping prices and thereby starving the original project of code and donations.
So, yes, Amazon can spin up as many matrix servers as they want. And so can MS. And so can Google. Maybe that wouldn't be such a horrible idea as they have mutually incompatible products that loosely overlap with the matrix feature set; those things interconnecting would be progress. Email is doing pretty OK decades after MS tried to embrace and extend via outlook and exchange. Federated communication networks are nice.
So, that's a feature not a bug.
The problem with Apache 2.0 is that it's incompatible with GPLv2. That's the main problem with copyleft licenses, they are made as if they were the only FOSS licenses in the world and just introduce incompatibilites between different camps. Apache 2.0 vs GPLv2, GPL vs CDDL, GPLv2 vs GPLv3[1]. I prefer to go with permissive licenses and save myself the headache. Regarding Apache, a common solution is dual-licensing under Apache+MIT (e.g. the default for Rust projects created with Cargo), which takes care of this problem.
[1]: And "vN or later" is not a solution, since that's just a backdoor of a random org in US.
LGPL v3 didn't make things better.
When a license is "compatible", it allows you to relicense that code as GPL, sometimes with additional conditions.
This means that if you link it GPL code into a MPL code base, the GPL requires that entire code base to now be GPL. And as such all other code linked against it also must become GPL.
This can lead to accidentally violations.
On the contrary, you can use MIT, BSD, MPL, LGPL code in a GPL codebase without any issue. You can dynamically link LGPL in any codebase. You can statically link GPL in another GPL codebase.
This is all working as intended.
> All GNU GPL versions permit such combinations privately
IE, the copyright holder can permit anything they want, as they own the copyright
> they also permit distribution of such combinations provided the combination is released under the same GNU GPL version. The other license is compatible with the GPL if it permits this too.
IE the license grants the ability to add the GPL license that code.
---
Taking this to the MPL example: https://www.mozilla.org/en-US/MPL/2.0/
> 1.12. “Secondary License”
> means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.
> 3.3. Distribution of a Larger Work
> ... If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).
---
The MPL 2.0 is compatible with GPL because it explicitly grants the right to release MPL code as GPL. All the copyright holders of MPL 2.0 code have authorized this secondary licensing because the license they released it as says so.
This means that in cases where compatibility matters, then the MPL2.0 code base has all the additional restrictions that the GPL has. And the GPL is _all_ code, which means it spreads out from there. If you are using GPL-2.1, MPL-2.0, and APACHE-2.0 code in the same code base, there is a violation.
> There is no such thing as a GPL compatible license
...and later on:
> MPL 2.0 is compatible with GPL
It is GPL compatible because the GPL licenses can explicitly be added to it. Adding the license requires all of the restrictions that licence brings.
There is a lack of awareness and understanding of how this can transitively affect things accidentally.
For the record I am all for GPL code. I think the GPL is a fantastic license that has enabled great good in the world. But there are reasons why a company may not want to release code that is compatible with it.
So that if project A originally licensed as MIT is statically linked inside a project B licensed under the GPL then in the event that all copies of project A source code are destroied except those distributed via project B (a more likely scenario before mirror servers) then project A is now only available under GPL.
I believe that GP relies on the fact that GPL source code can only be statically linked with other GPL code and so "compatibile with GPL" means "can be relicensed under GPL" rather than "can be included as is in GPL works"
you are wrong about basic gpl code linking concepts.
Like if I said this comment is licensed under GFDL 12.34 and you thought GFDL 10.01 is “compatible” with it, it’s still mine to decide under what license it is licensed.
A popular phrasing found on many GPL projects are “Version 2 or later”, but that doesn’t mean you get to rewrite it to “AGPL 3 or stricter”. That’ll be a copyright violation.
1) buy FluffyChat and some serious UI designers, because Element is probably one of the worst matrix clients in terms of UX.
2) fix decryption issues that happen randomly even by just using Element on the matrix.org server: https://github.com/vector-im/element-android/issues/1721 as it's a real show-stopper once you hit it
3) add support for multiple accounts and identities (too many requests to list on the issue tracker), since federation is great, but it's not always wanted.
Disclaimer: I managed to convince a group of technical users to switch over to matrix. We stay for the principle, but not really for the experience so far. FluffyChat is the best client we tried on mobile. On desktop, I'm glad weechat-matrix and gomuks exist, because all the other clients "reek" to us. And even if you like the modern chat UIs, they're really not bug-free either.
Overall many clients and some severs to choose from, but I did prefer irc just for the simple-no-BS-clients alone (the protocol has nothing to do with it).
I'm genuinely curious why? I use it on desktop and mobile, and I haven't found it lacking in anything? I've heard this said before, but I don't get it
In addition to some decryption issues that made some of my friends hate Element (they could view messages on one device but not another one, and there was no clear action to fix this), one of the issues I think could be easily worked on is the settings: the current layout is way too complicated, too much scrolling, too many options, it doesn't feel clear at all. Also the stickers are really crappy: they are not useful for any serious chat (ie. work), and not useful for any fun chat (ie. friends).
You'd think this is a small complaint, but I've listed this as first as it's the biggest barrier to conversion. Ask the _same_ user to try FluffyChat, and no objections will be raised besides the expected "why another chat app".
I'm not a fan of the Element UI myself, although I "get it" as it's targeting to something more group-oriented like slack. The problem is that Element is currently neither oriented to plain users, nor it's great to technical ones.
If everything else had to stay the same, they should optimize for plain users on mobile and offer a better, more advanced desktop client instead.
If it's whatsapp etc then yeah, I agree, it is not going to work. But if it's Teams or Slack or something, then I don't see much difference. I don't think it is meant to be a whatsapp replacement, I think it is a generic chat tool that lets me integrate all my services in one place - kinda like Pidgen.
As you say, maybe this cash injection cam let them get a mobile client that can work as a whatsapp replacement (as I guess that is what most people are moving from)
You can keep element for advanced users.
I'd argue it's still not a great client for tech users either, but I see an evolution in that direction more likely than the opposite.
Further, there's virtually zero documentation for end users. There are no in-app explainers as to what E2EE is or why anyone should care, leaving the onus on operators to document and explain these things to non-technical users.
But everything is just a bit off. The text is a bit too spaced out for IRC users, the icons a bit too small for people coming from Slack and Discord. Colors are seemingly chosen at random by the coder and don't jive well together. The "These people have read the backlog this far" notification is just plain useless. It is death by a thousand cuts really. The small things stack up and make me not like using Element for Matrix.
I do love Matrix, the underlying technology, in theory.
IMO they just need to bite the bullet and make a truly user friendly mobile UI to replace Telegram, WhatsApp, FB Messenger etc. And a proper client for the major operating systems that's not too different from Discord and Slack.
On Quassel I can have 30 channels open without having to scroll. On element only 10 or so. That's way too few considering the number of bridges available.
They have a high density xchat mode but it only affects the chat view, not the room list
Has this changed recently? I would like to give it another shot as I want to support the tech. Can someone with use experience please comment with their experience on the speed?
I’m on matrix.org pretty much every day now, and it’s a lot better than it was. And when I use my own server to talk with other local users, I never have any latency issues.
They have made several rounds of significant scaling improvements since then. It's almost never slow for me any more. (And even if it was, I could always just choose a server other than matrix.org, or run my own.)
Your third point is a client side feature. If you meant that you want Element to have that feature, then yes I agree. But in saying that, it wouldn't surprise me that it's not high on the priority list when most clients (of any chat app) have this feature.
As a tech user, I still don't find the element UI great. It's clunky, quite slow and generally not intuitive, and wastes a lot of screen real-estate.
I'm using slack and discord and I find both to be _significantly_ better for group work.
But actively trying matrix on mobile, I still found the simplified FluffyChat UI much more usable on mobile anyway. Element is this sort of annoying middle ground which is not great for either.
The third point is also important, because matrix is one of the few systems where you can have a private network for your work. You know, just like slack (again, the "group" they're apparently targeting?). Great feature. But if you, like me, would like to use matrix for both work and other communications, you're stuck.
So in the end you run two clients. Element for work, fluffychat for everything else? And maybe shildychat for your other private group (I wish this was a joke).
I wouldn't be against it (the _clear_ distinction between accounts is important!), but element is already a memory hog. You really don't want multiple instances running.
Other apps built on Matrix do not look like Slack, e.g. Fluffychat, which looks very similar to Signal.
We also have a group of technical users on Matrix, where we were formerly on IRC. Nobody complains about Element and most prefer it over the native clients they tried (but it doesn't rule out the possibility that everyone hates all native clients here).
This is also just anecdata with a sample size of "handful of users", but from the other side.
I personally would love to have a native Windows and Linux client I really like (preferably the same), but so far I've had no luck. The Android version of Element is perfect for my usage pattern though.
https://invent.kde.org/network/neochat https://gitlab.gnome.org/GNOME/fractal
I never think a concrete issue will affect me. But over the last weeks I've been affected exactly by 2). Today I finally figured out that it had to do with the sender having turned on the setting "Never send encrypted messages to unverified sessions from this session". It's terribly implemented, because it gives the sender no feedback that they break any unverified receivers, and the unverified receivers only see an obscure error message. For more details, see my issue report: https://github.com/vector-im/element-web/issues/18255
Also +1 on Element's terrible UI and UX. It was designed by programmers instead of UI designers, and you can feel that. I always find it weird when people talk about Element being a good client. It's literally the best of the worst. From the thousands of open issues (5000+ Web, 1000+ iOS and Android each!) you can clearly see they have an organization problem. Even most volunteer open source projects are more organized. I hope at least 30 million will be enough for them to hire some talented people and build a better management.
I have the feeling most of them are hackers. Hacking and experimenting with new things like Matrix P2P is great, but it's not enough to have consistent output. You need to manage an organization, and I have the feeling they aren't capable of doing that. On that note, I'm surprised they managed (pun!) to get 30 million of investment.
As I said before down thread (https://news.ycombinator.com/item?id=27974054), there’s nothing bad about thousands of issues, quite the reverse in fact. Many are feature requests that may or may not be implemented.
A large number of open issues means the project is growing and many people are have ideas for new ways it can improve.
Compare this to other projects with the illusion of quality because most bugs haven't been reported, or because their developers routinely dismiss and close reports of bugs that they don't feel like fixing, just to keep their bug tracker looking clean.
Indeed, the contents of the Matrix/Element/Synapse issue trackers played a significant part in convincing me that the developers are making good decisions, and that investing my time and contacts in this network would also be a good decision. That was over a year ago, and I do not regret it. The project still looks very much on track to me.
Their FAQ link in menu bar just links to their GitLab issues page, and AFAICTA nowhere on their site does it actually explain what FluffyChat is or which what network it operates, etc. (clearly from context I infer it is Matrix)
> Element is probably one of the worst matrix clients in terms of UX.
If you ask nicely, I'm sure they will give you back all the money that you paid for it.
But your point 2 is spot-on:
> 2) fix decryption issues
Part of the problem is that Matrix nukes your crypto keys every time you log out. This traces back to Element's heritage as a primarily web-based app, where there isn't really a great local, durable place to store your secrets. Not having local on-device storage is painful when the protocol encrypts messages to individual devices rather than to users.
The fix is to set up encrypted key backup, aka secure server-side storage. Then all your keys from all your "devices" (including real devices and web sessions) get safely stored in encrypted form on the server, where you can always find them. You have to use a second passphrase to generate the new key-encryption key, so it's a little annoying. But the fix is pretty magical. Suddenly everything just works!
I guess what I'm trying to say is I read this comment and my thought wasn't, "Oh, I guess those problems are handled", it was, "Oh, this projects advocates have a lot of contempt for their users."
What I object to is the way our community viciously tears each other down. "This open source product is the worst thing ever! Kill it!" This crap is not productive. It's harmful.
We're up against companies who want to monopolize markets, lock us in to proprietary platforms, and own our data forever. And then when somebody finally comes along and tries to do the right thing, we attack them for not being perfect. F that noise. So, yes, I have contempt for this attitude.
(And no, I have no affiliation with the company being discussed in this article.)
I call this honest criticism. My hope is to push matrix as an open protocol, to push matrix as a slack replacement and I genuinely wish the greatest success to the element foundation.
I currently cannot say "element is awesome". Matrix as a protocol and ecosystem is awesome, but the client... I can't say that.
https://github.com/syphon-org/syphon
Like I said, it's still very much in Alpha and needs quite a bit of work, but the UX flows and design have been well received by others. Though there is an opinionated default UX and design paradigm, there is a focus is to make everything customizable and the theming options are growing over every release.
The goal is to eventually find a sweet spot between Discord and Signal and bridge the gap to Matrix between those communities.
I have a demanding day job and other obligations that keep me busy, but I spend nearly all my free time and every vacation in the last year working on this project. We're constantly looking for other contributors and there's several other ways to help including donations. Feel free to join the official room for updates to track progress and please feel free to reach out with feedback!
https://matrix.to/#/#syphon:matrix.org
Additionally, I just merged Multi-account support this week and it will be in the next release. Not sure of any other Matrix client that has this feature, so there's some unique features that we're focusing on to set it apart.
Mirage has this but it's the only one i know of. it also didnt seem to work with cross device signing last i tried it.
I was under the impression some of the desktop clients had it in the form of swapping CLI flags on start, but it seems to support switching under the settings menu in the latest release. Much like email, many people will have more than one user they'd like to swap between so very glad to see other clients adding this feature with user friendly UX.
There’s a magic here in the interoperability and fact that so much hard work has been done to make it ready. The ability for this and IPFS to work together is pretty remarkable in the scope of what can be created.
Incorrect.
https://github.com/matrix-org/pinecone
It's nowhere near mature/stable, but they are definitely working on it.
Also, P2P overlays already exist in multiple forms.. Yggdrasil, Nebula, Tor, etc. Yet another example of them trying to re-invent the wheel when it isn't even necessary. Tox already does this.
Matrix was not designed with that goal in mind.
Here's a sneak peek at some of our interfaces:
Even email can carry arbitrary payloads, federates natively and scales extremely well.
Haven’t tried developing for matrix yet but I’m intrigued by its inertia right now.
Coincidentally, that spec change proposal looks to have been posted exactly one year ago today. Doesn't look like there's anything concrete yet, but still there's obvious opportunities for combining a content-addressable object store API with a distributed content-addressable file system back end.
https://github.com/matrix-org/matrix-doc/blob/travis/msc/ipf...
It could theoretically fail in the IM space and still succeed in the data sharing space. For instance, you could build an Activitypub-like ecosystem on top of it.
THIS is one of the main reasons that I'm such a fan of the matrix protocol. Yes, the chat use case is by far - for now - the most popular direction...but i can envision many other use cases (not just, say, for IoT devices)!
1) Kill the electron crap. Just look how awesome, fast, funcional, beautiful and feature-rich telegram is
2) Kill synapse. Is close to impossible to run a home server with all that python shit going on. Dendrite is the way I guess, but it is super resource-consuming to have a small home server (and slow)
3) Make it accessible and interesting for the casual john doe: FluffyChat is one possible route
I'm really curious, if they manage to burn through 30 million and still keeping Element being crappy. At least thanks to Matrix being an open protocol anyone can develop a better alternative.
Is a reference "homeserver" implementation supposed to go into production on a large scale?
Sure, Synapse's performance isn't great, but still. Last summer I was able to run Synapse on a 1 vCPU, 1 GB RAM droplet from Digital Ocean. I had 100 copies of a bot running, each with their own room, constantly sending messages and replies to each other. With all 100 going at once, it was super slow. But with fewer bots, or with a lower chance of replying to a message, it worked pretty well. Not bad for like $10 / month.
Also, if you want light and fast, check out Conduit, the homeserver written in Rust: https://conduit.rs/
[1] https://github.com/spantaleev/matrix-docker-ansible-deploy
> Note: This project is work-in-progress. Do _not_ rely on it yet.
Last I checked it also didn't support federation.
3) Yes
One of the problems with a server at home is connectivity, because every second your service is not reachable, you are not serving your users well. In general, I would say that I have a very stable connection, but once a year or so I have to disconnect the internet connection for some reason and it doesn't feel right to steal your friends and family the possibility to exchange messages. Furthermore, I had some trouble with the dynamic DNS from time to time, which always caused the communication service to fail.
In addition, my backup strategy wasn't very sophisticated and at some point I had to search 200GB of data (broken filesystem) in order to restore the contact roster of all people on the server (the last backup was a few weeks old)...
So if you really want to, do it, but if you ask me, my clear advice is to run communication services at some professional hosting partner.
I'm yet to find a TUI client for matrix. I've checked those weechat plugins but the python one needs libolm3 dependency which is a hassle to install on my system and the Rust one is not ready.
Element webapp is clunky and slow. Element desktop is an Electron resource-hog. There is a Go client (gomuks) which was very buggy. I've also tried a QT client which was alright but not on-par with the official Electron webapp in terms of features.
I tried pretty much all third party Matrix apps, if you want cross device signing, there's only Element, an element fork and some of these half working flutter clients.
It's not great. The initial developer for the weechat client did a great job, but the move to rust has pretty much stalled from what I can tell.
I'll try it out. Seems like they implemented most code in a mtxclient library, so it might be possible to reuse it for other clients.
Things that are currently still missing: - online key backup: The asymmetric version allows server operators to insert keys and the symmetric one isn't yet supported by any client. I don't use key backup on my account, since I have enough devices that I don't need it and it makes bugs in E2EE harder to find. - cross-signing bootstrap: You need Element to enable cross-signing on your account once atm. - A toggle to only send keys to verified devices in a room and warnings if unverified devices are in a room: currently working on this - Fixing one stupid edge case, where we create new identity keys by mistake, if Nheko fails to open the database and this breaks E2EE for that login. Hard to hit by accident, but it happens quite a lot if you change database code and mess something up. :D
I think apart from that we are in somewhat good shape. I still have a few small things on my to do list and we obviously need to go through the code a few more times to look for mistakes and test it a lot more, but for 0.9.0 that should be doable. After 0.9.0 we'll probably look into fallback keys as well as dehydrated devices.
Subjectively speaking, it's one of the fastest and most fully-featured clients: it even supports desktop sharing with pipewire and gstreamer.
It's a lot easier to use once you get used to the Ctrl+K shortcut to select a room.
Bad: It's written in Flutter, and the keyboard/mouse handling still has flaws.
Ugly: The FluffyChat Matrix library used by FluffyChat (https://pub.dev/packages/matrix) requires contributors to sign a CLA where you sign away copyrights/trademarks, and perhaps even become obligated to assist the Famedly company in IP lawsuits.
Maybe I am unclear of what cross device signing is
I have to click away three modal popups during every single login, and it doesn't remember logins so I have to login every time I visit the page. It also asks me to verify my login/device on every login because it doesn't remember. This happens on two devices, with two different browsers.
I log in rarely enough that this doesn't accommodate me: my most recent browser login must have been two years ago or so.
I just tried app.element.io and it asks if I want to "store data in persistent storage" - maybe you clicked no a while back, and it is still blocked?
Either way, `virtualenv` is a drop-in replacement for `python -m venv` (or rather it was the other way around - virtualenv came first, but virtualenv still exists for different tradeoffs).
And then there's the "little" issue of it not being able to coexist with wee-slack. That's a bug Python 3.9, not in weechat-matrix, but still.
I mean, I still use it because all I really need is chatting in already joined public rooms and for that it's better than that Element/Electron crap, because it's still a weechat after all, but it absolutely is not ready for any kind of serious usage. It's just a quick hack that sort of maybe works, sometimes.
Unfortunately, I don't, yet. Still waiting on a decent TUI. I had my hopes up for weechat-matrix-rs[1] but it hasn't seen a commit in two months so I guess it's dead. And so I remain on IRC.
0.25% CPU right now, ~10 channels, some of them are 1k+ on Libera.
Hope e2ee arrives soon in Next branch.
Matrix has a fantastic B2B potential. It's just early.
The name of the protocol is very badly chosen though.
https://github.com/matrix-org/matrix-doc/blob/neilalexander/...
https://github.com/matrix-org/matrix-doc/blob/neilalexander/...
I would have thought it would work just like outsourcing your web server or your email service. You generate a DNS name and point it at their IP address. Then they get a certificate and start serving traffic for your domain. Easy peasy.
The enterprise potential for the Matrix ecosystem which includes Element is almost like what GitLab has done but for Git services and much more.
> The majority of the core team is now employed by Element, an independent company set up to hire the team and support Matrix's development. Other contributors are funded by their own employers or donate their own time to the project.
At least they are not fully reliant on donations and they have a solid way of making money.
It seems like the connection to Amdocs and their interest in collecting metadata for surveillance is a stain on the privacy-focused image.
Now it is too late to rethink the design to be less of a honeypot. So the only solution is P2P matrix. But even P2P matrix will need some way to back up the metadata so it’s saved between sessions. So again the honeypot seems unavoidable.
The tone of the part about connections to Israeli intelligence doesn’t read as “anti-Semitic” to me, as it’s pointed at motivations of the government spy apparatus and doesn’t make generalizations about Israeli or Jewish people. Though the tongue-in-cheek sarcasm is hard to untangle.
The overall tone is sadly that of someone who has spent too much time making internet memes, but I believe the author is a trained linguist with a sardonic sense of humor.
I love Matrix, it is actually my primary chat network. But the way these features are getting added makes me really disappointed. You don't make a secure protocol by stuffing as many features as you can then adding encryption later. You build a secure protocol by making sure that every feature added is secure from the start, otherwise it is rejected or needs to explicitly justify why it can't or shouldn't be made secure.
We're fixing this by working on P2P Matrix (as per the blog post - it's one of the main initiatives that the funding is going towards). https://matrix.org/blog/2020/06/02/introducing-p-2-p-matrix explains how P2P addresses the metadata problem.
The whole "heavily sponsored by the intelligence community" thing is a conspiracy theory. It's true that Matrix is popular with government and national security folks and Element gets money from them... but it's because they want the E2EE and data sovereignty for themselves, rather than because they are trying to torment their citizens(!!)
> finish building out P2P Matrix and get it live
ps: p2p is nice to have, but also comes with a lot of problems and and probably shouldn't be a first choice for many users.
In this case for example Matrix has been choosen as the Protocol to be used to connect all manner of Healthcareproviders, Healthinsurances and State Entitys in the Health sector in the future.
This is a highly fractured environment where there is alot of distrust and animosity between all the parties.
I see this e.g. as an incredible chance to provide matrix related services even for small companies in germany.
E.g. there are more than thousand software solutions that are registered with the health insurance companies to manage patient data and billing processes.
In addition, Matrix has been chosen for quite a few large deployments by governments, so there presumably are large-ish support contracts associated with those.
If that's enough to justify a 30 Million round is another question.
> there are no plans to use cryptocurrency incentives in Matrix or Element any time soon
Note the wording here... "any time soon" is quite different from "no plans, period".
My main gripes are that you cannot reset a password by username, and you cannot add a phone number that belonged to a deactivated account.
Is "spaces" similar to Discord channels? (#)
What makes spaces what they are is the ability to specify some rooms as belonging to a space, in the sense of a collection. Since spaces are just rooms, this includes other spaces as well (which are then called subspaces). This allows building a tree which can be used for e.g. representing a company hierarchy. A single room can also be a part of more than one space.
Spaces also have the concept of members. Soon support will land for the ability to restrict room joining to the members of the space a room belongs to. This will make it possible to use this as an on-boarding tool. For instance when an employee joins a company, they'd get invited to a company space, allowing them to see all rooms therein and join the ones they need.
There's also a distinction between public and private spaces. Private spaces can be used purely as a tool for personal categorization. This still needs to be supported server-side so that you can have the same view on all your clients.
True foundation directs the development of a standard, and considers the interests of all parties. But in this case, there is just one party that means anything - the company that creates the actual product - and it is obvious that the foundation is powerless to resist any of its initiatives. Which makes the Matrix foundation just a facade, to better appeal to some people.
not true, two more companies building on Matrix:
Element being made by the same people who made matrix, how much difference is there?
Is it not possible to see the source code? Is it not possible to partake in the development process in the same way most other open source projects work? Is it hard to connect to the network?
I see it more as a net positive given what is known.
Would you be happy if Google had the ability to unilaterally define web standards?
And given their goal of being a general underlying protocol, to be used in different specific professional industries, it would be very damaging to close down feedback or the protocol in general, from outside influence. A hospital might need a specialized client to handle the needs of the profession, while a ministry might have a third, one does not fit all.
But I see the skepticism, because if the protocol can be used by one party, which ends up hosting most of the servers, to gather metadata, then having widespread use would allow insight into a rather large dataset of people and countries. But the onsite premise of this software, is the whole reason that etc. the French government started to back the protocol and mistrust for foreign communication services. If you have secrets, why would you not just host this yourself? And there's the big difference between google and matrix, you can control all your data yourself, if you want. Totally block outside communication, setup private tunneling, separate a virtual network etc. I don't think twitter/whatsapp/whatever allows you to host their server infrastructure and block off access :-)
It's true that we (the team who created Matrix) also created Element as a for-profit startup to fund the core team to work fulltime on Matrix - and as anyone who works at Element will tell you, the reason the company exists is to grow Matrix and make it successful. In an ideal world Matrix ends up being a huge industry in its own right, effectively replacing the PSTN & email industries, and Element ends up with some small (10%?) marketshare alongside loads of other Matrix vendors out there doing their thing.
Just as XMPP wouldn't have happened if Jabber Inc hadn't bootstrapped the ecosystem back in the day; Element has a similar (but hopefully more successful) mission with Matrix. Or, perhaps similar to how Netscape helped bootstrap the open Web.
In other words: you are wrong; it's not a facade.
What is a good reason for Element to relegate itself to only 10% of its own market and allow other vendors to pick up the remaining 90%? Can you name a product or service which Element is unable or unwilling to provide that competing investment could make returns on? If you can, why not pivot into that yourself? Can you assure parties investing in Matrix that Element is a trustworthy and synergistic counter-party?
In a healthy ecosystem, the primary implementations do not represent most of the clients and servers.
HTTP for example is healthy because there are many http servers, many http clients, they're all pretty compatible and replaceable, and none of them represent the primary implementation with its own off spec quirks that others need to take into account.
From a purely capitalist perspective, 10% of a $1TB industry is better than 100% of a $10B company.
It's likely one that is responsive to user needs.
It's everything that capitalists say that they want: a healthy competitive marketplace.
On 'loads of completely independent implementations': how can those independent developers stop Element from pushing some hypothetical changes to the protocol you would want to introduce against their wishes?
Consider me not impressed.
The safeguarding positions are the directors of the Foundation (aka Guardians), which is very deliberately majority non-element (3:2).
Why not spend your time improving XMPP rather than complaining about Matrix?
If you wanted an open federated protocol, you could have spent your time adding to an existing federated network. Everything you do with matrix is easily possible with XMPP. Instead, you want a protocol fully controlled by you. I oppose this goal and spread of such products.
And yes, I do spend all my time improving XMPP.
What you see as NIH I see as building something from the ground up that works better than what was currently available.
Also, what you call a totally inconsistent ecosystem is what real ecosystem looks like. Matrix looks better in this regard precisely because it is not a protocol. It didn't yet deserve to have such problems.
I also don't think it'll ever be able to successfully transition to a real ecosystem because Arathorn here always brushes off concerns about governance of the protocol, which shows that he doesn't have the mature understanding of the nature of the problem.
- Finding a practical provider is nearly impossible, because all of the major ones closed their public XMPP service years ago, and most people don't know what qualities to look for in a small provider, let alone understand why those qualities matter.
- Even if they get help from a friend and manage to find a reliable server that supports the magic combination of XEPs that are needed to make things work, chances are that server is no longer accepting new users.
- Even if they manage to get an account on a featureful[1], trustworthy, stable, free[2] server, many don't last more than a few years, so there is a high chance that the user's new online identity will evaporate before long.
[1](Required features include end-to-end encrypted group chats with offline delivery, among other things.)
[2](Yes, free. That is critically important for mass adoption today.)
I'm not a normal user, in the sense that I have far more technical knowledge than most people who use messaging services. I actively used XMPP for at least a decade; probably closer to two. I tried last year to piece together an XMPP-based solution that my friends and family could use, but even I was unable to solve all the problems I found in a way that would work for normal users.
And then there's the client side, which is also problematic, as soupbowl said.
This has been the state of things for quite a few years. The only people I still see pushing for XMPP are people who have major blind spots. Some of them have experience only with small groups, and have not considered how a whole world of people conversing presents different challenges. Others (usually tech folks) have had a good XMPP provider and comfortable client software for so long that they have forgotten how much knowledge it takes to get set up in the first place. A few are people who run small for-profit XMPP services or develop XMPP software, aka conflicts of interest.
Dear Jabber, I'm sorry. I liked you. I had high hopes for you. I might even still consider you for niche purposes. But as a general purpose messaging network for regular people, you have failed. It would take a lot of effort and resources to make you viable, and I don't see any sign of that coming. The closest you came was when Google and Facebook embraced you, but those days are long gone.
Meanwhile, Matrix is succeeding. The rough spots are being fixed. The bloated clients are getting competition. The missing features are appearing. Even as a work in progress, it is already usable for some of us, and it's consistently moving in the right direction. Importantly, I can tell a regular person where to get it and (often with no help) they can be chatting with me in a few minutes.
This issue is hardly unique to Matrix.
Signal is a good example.
I could see a path to Matrix replacing email (and it's the only one of the current candidates I would be happy with doing that), but how could it end up replacing the telephone network? Does it have voice capability?
If either of us is on mobile, sometimes latency can creep in, but this also happened on whatsapp too. That's the nature of mobile IMO.
The foundation is not a facade. It has a rather clear governance system, and while it is predominantly populated by Element employees, that's mostly because most people passionate about matrix end up working there. When the fondation was set up, it actually had a 50/50 split between community members and elements employees in the core team, but the community members ended up joining element.
What makes matrix a protocol is that absolutely anyone can implement it, and anyone can get involved in the process to improve the spec.
it's often the same group of people too... Andrew_nenakhov "forgot" to mention it but he develops a XMPP client and likes to pop up in the comments ofpost on Matrix to complain
edit: I'm not really taking a side on either XMPP or Matrix, I wish for both to succeed but I'm currently disappointed by both. I'm just getting a bit tired of XMPP fanboys spewing FUD every time Matrix is mentioned
I recently had a particularly vexing issue in a small encrypted room of 3 people, new messages were shown as undecrytable and then only readable a few hours later, we never figured out why.
I re test it every few months/years because I hear it's getting better, the server is properly configured now, encryption system was remade, there is a new client, etc...
Losing my whole chat history each time made the endeavor even more frustrating. I know not everyone keep logs but I can search my Mails and Irc logs from 20 years ago and I find it really useful.
Sorry for the rant but since you asked. Like I said I fully support your work on Matrix, I just find it so ... frustrating and it make me sad because I really like the idea.
As part of the funding we're setting up a dedicated crypto team (at last) to focus on nothing but the remaining encryption problems. It's super embarassing that these failure modes can still exist today though - sorry :(
To be fair, other E2E chat solutions have similar problems, like Signal. It feels more to me like we did not properly crack this problem yet.
I have yet to try it again but definitely want to.
If it wasn't, I would not rule out developing a Matrix client (though doubtful, I don't really like the protocol and implementation)
@Andrew_nenakhov’s comment is on point. Normal initiatives of this kind are organized differently. This doesn’t look good regarding the future stability of the initiative.
---
On top of that @sprash has mentioned some valid concerns about Matrix being a potential metadata sponge (below in the comments).
Let me add some food for thought for you. Maybe you’re going to get suspicious too.
a) On the Matrix website, the one with the news about getting the 30M, we’re being given only two kind of information: who’s behind the leading round regarding the investments made, and what features are going to be developed due to that donation. Now, we know nothing about who’s actually giving the money, because both Protocol Labs and Metaplanet serve as proxies here. On top of that pointing the reader to the new features part seems to me like a: „forget about the money part, take a look on what we’re going to do with that, take a look on all those shiny things!!!”.
b) Both Protocol Labs and Metaplanet are kind of famous companies (proxies). The second one invested in the Boring Company for instance. It just looks so good. It’s like a miracle. Matrix is getting attention it deserves… But why on earth that happened? (take a look on (c)).
c) Protocol Labs has strange ties to World Economic Forum [1][2]. They are interested in Protocol’s work in the internet space in general. I don’t like that at all. I fundamentally don’t trust WEF and I consider whatever they „touch” cancer.
---
I’m on the market for something that’s going to help me and my friends replace Signal. Matrix looks very promising, but after a careful consideration it also looks like it really might be a metadata sponge. Yeah, it’s all rumors, and establishing real information about the parties involved and their motivations isn’t possible. But a suspicion is enough. It looks almost too good...
This is how I decided to go with XMPP instead.
Good luck. Make your own informed decisions.
---
[1] https://www.weforum.org/organizations/protocol-labs
[2] https://www.reddit.com/r/ipfs/comments/os8plh/the_world_econ...
[0] https://www.theregister.com/2021/07/27/element_seriesb_thirt...
[1] https://www.youtube.com/results?search_query=jaan+tallinn
One new server + consumer app combo could revive XMPP for consumers quite easily.
I think your argumentation is flawed. If your server+consumer app combo can do that, do that
- encryption wasn't really there (and still is experimental)
- decentralization does not exist to the degree that Matrix provides it
And Matrix is fundamentally different. It works somewhat similar to git compared to XMPP being more like IRC, which results in a completely different form of decentralization. E2EE is different as well - even if both are based on the Signal Protocol: Matrix encrypts for groups of people instead of single devices
I doubt Matrix would be where it is if they tried to bend XMPP
Not just using the same client for Facebook and your corporate chat instance?
Yes. You can find some lists of servers participating in the federation here: https://xmpp.org/getting-started/
It's just that XMPP providers are not required to participate in the federation. Sadly, large instances like WhatsApp choose not to.
Clients could encrypt messages using OpenPGP and the more recent OMEMO seems pretty reliable to me (Conversations, Gajim).
In 30 or 40 years all your messages might be public.
If current cryptographic primitives are fundamentally broken, all data can be decrypted if it is saved. This is why it is safest to destroy everything if you are worried about threats in the distant future.
Or am I misunderstanding the concern?
If data is only stored for a minimal amount of time, we lower the risk of an adversary acquiring it
How can deletion of a sent message be enforced? I realize that some messaging services offer this feature, but aren't they all misleading at best? Even on a centralized service with a trustworthy admin, the recipient can always copy/paste or take a screen shot.
I mean we have to encrypt with what we have, right? They could use lattices or something (my impression is this would be, er, hard on the battery, but that's a vague impression), but those could be cracked as well. They could be cracked first!
Let's just say it's a risk I'm willing to take, given that the alternatives appear to be either my messages being public right now, or communicating by snail mail and carrier pigeon.
It is very solvable in practice.
If I encrypt a TCP connection with AES (e.g. SSL) between my home and your home very few attackers have the ability and budget to capture that traffic, store it for decades and break AES with some quantum-or-whatever computers in year 2050. NSA and perhaps few others.
On the other hand, if encrypted data is shared publicly on DHT, a replicated database, a blockchain or similar, in year 2050 your nephews will see grandpa's entire message history.
On a practical level, that's a huge difference.
Score a point for urbit I guess: any channel is limited to those peers participating in it, so Mallory would have to get her hands on one of the planets which received the messages. There is no central point of failure because there is no privileged server.
If you're talking about the fact that Matrix stores your encrypted conversation history by default on the server: a) you can set history retention per room, b) if we saw a vulnerability in the encryption we could always go and re-encrypt the history (although it's a bit of a lost cause by that point :)
No, Matrix isn’t a public database or a blockchain. The conversations only are only replicated between the servers whose users participate in that given conversation.
You might as well be panicking about PGP archives getting compromised, or backups of devices with Signal history on them, etc.
I don't have a strong opinion on that, but this doesn't sound like an unreasonable thing to worry about. Maybe 20 years ago it seemed like some sci-fi stuff and nobody really thought about it. But then, let's be honest, nobody really thought about e2e encryption back then either. Now this stuff may be not truly an impending disaster yet, but, actually, not so far from it either. Not a big "no-no" yet, but definitely something to be thinking about. And, honestly, I do actually feel uneasy about trusting any secrets with 50+ years expiration date to some integer factorization crypto. Maybe there won't be any practical possibilities to break that in the next 50 years, maybe there will, who knows: but it simply isn't so outrageous of an idea anymore to bet against it. And that's kind of the purpose of cryptography: exaggerating even slightly outrageous possibilities.
[1]: https://github.com/libremonde-org/paper-research-privacy-mat...
Other articles mentions sending metadata only to servers you have users from (which of course can be a problem, but at least is explainable).
Needless to say Matrix servers and clients don't send any data (private or otherwise) by default to central servers. The only central services we have are the identity lookup service (i.e. map phone number & email to a matrix ID), which is strictly opt-in and various anonymous stats reporting (which is also strictly opt-in).
> However, there are no plans to use cryptocurrency incentives in Matrix or Element any time soon.
Good.
At least with this funding, I can clearly explicitly see they are NOT implementing a secret cryptocurrency coin to be listed on an exchange, but instead they are focused on improving the security and privacy features of Element and Matrix.
Well done!
Hopefully they also improve the UX and new user onboarding experience in order to gain wider adoption. I really want to promote Matrix for communities where I am involved but it lacks the product-orientation of Discord and Slack.
They're making great progress! There's still more work to do, but I've been very impressed by the improvements made by the Element team over the past year, ranging from many small details to large usability features like the UI for spaces as an easier way to organize communities
I've tried Element and FluffyChat on iOS. Element is very slow. They messed the sign-up screen somehow and iOS suggested a "strong password" but didn't remember it, or didn't assign the log in to it. I went to generate a new password and couldn't log in since it required me to confirm my session from other devices, then gave an error that I have none.
FluffyChat has a very unfriendly log in screen that gives zero explanation about Matrix or how you should type in your login with the server. Also, no validation (they could try to adjust your login with @ and : symbols automatically if they see something is wrong).
It's not like I want to dunk on their developers, but it's hard for me to see this protocol and its apps getting many consumer users when it's so unfriendly and alien to them.
Yes, some government European agencies and old-fashioned corporations who want an on-premises chat app would use it, but I don't care much about them.
how specifically? especially the ":"
I also think it didn't even accept user:matrix.org without the "@" in front.
Just looking at their GitHub, they have an ridiculous amount of 7000+ open issues (5k on Web, 1k on each Android and iOS). Assuming they'd use a generous 1/4th of the money to fix outstanding bugs, assuming no duplicate bugs, and assuming a 100$/hour salary for the developers, they can spent on average about 10 hours to solve each bug (30000000$/4/7000/100$).
As long as Element and Matrix continues to grow, I expect the number of open issues will grow indefinitely, and that is a sign of success.
Judging a project by its number of open issues is like judging a book by its number of pages.
See t2bot.io which has some bots with encryption hosted: https://t2bot.io/docs/encrypted-integrations/
For some data point, look at recent relicense of MinIO, Grafana, Loki, Vector.dev etc.
What non having copy right assignment means is that they can't change the license of existing stuff. But they can change the license of future stuff using existing apache v2 licensed code which is permitted.
Discord is not open-source, so I don't see how it's relevant; it's "communities" are primarily gamers & streamers. While there are some open-source communities based on Discord, the same goes for other closed-source platforms such as Slack & Telegram, and I'm sure the number of software development communities on Slack is (sadly) much larger than on Discord.
Of actual open-source options: Gitter, Discourse, Rocket, Mattermost, etc. - Matrix would seem to be competing relatively well.
I'm pretty sure Telegram is open-source (at least the client)
An open-source client would be relevant for something P2P like SSB/Manyverse*, but for all other tech the sourcecode of the server will be your primary concern.
* And even with something like Manyverse, the sourcecode of things commonly used as "de facto servers", like SSB "pubs", ends up still being extremely relevant in practice just because of the UX of using the platform.
Gitter was bought by Element, it's effectively a Matrix client now.
Discord is... for folks who have got lost.
Very few new communities are setting up on IRC. My impression is that until the Freenode meltdown, Discord was most common, followed by Matrix, then Slack, but the freenode disaster seems to have benefited Matrix more than Discord or Slack.
That's if you look at official channels, if you look at user counts in unofficial community groups as well, Discord has to be way in the lead. The Python community discord has about as many online users as Libera in its entirety, for example.
Arathorn: Please make it similar to how Zulip works, and not how Slack or Discord have implemented it.