Hacker News new | comments | ask | show | jobs | submit login
A Call to Arms: Supporting Matrix (matrix.org)
168 points by Arathorn on July 7, 2017 | hide | past | web | favorite | 40 comments

(oops, the blog link melted under all the attention but it's fixed again now).

Just wanted to say that of all the communities on the 'net, HN has been one of the most enthusiastic about the potential of Matrix. Trying to build an entirely open decentralised network that can support better-than-Slack style collaboration is a tonne of work; I'd estimate it's about 6x more work than building the equivalent centralised service. Plus the amount of effort that we've put into decentralised end-to-end encryption (https://matrix.org/git/olm/about etc) is enormous, and now very nearly complete, having got solutions in place for (optionally) sharing message history on demand between devices, handling race conditions during splitbrains, etc.

In short, we've put a lot of work into Matrix and we really want to continue doing so with at least the same level of momentum we've had to date. But as of next week, this is going to require support from the community - both donations and corporate sponsorship, at least in the short/medium term. So if you believe in the promise of decentralisation and restoring power over communication back to the users, your support would be hugely appreciated.

Also, folks may be specifically interested in the 'Reflections' section at the end of the post, which points out that in the near future Matrix is going to be forced to address an even bigger issue than open comms - namely the ability to handle propaganda and let users filter their content (to avoid spam, propaganda, abuse, etc) without being trapped in an invisible filter-bubble or echo-chamber. This stuff is still vapourware right now, but could be literally world-changing if we get it right.

Anyway, thanks for reading, and thanks to those who consider supporting directly.

-- Matthew / Arathorn

As a competitor (or "competitor," I don't think decentralized services actually compete with each other in the traditional sense), I just want to say:

Matrix is an amazing project with an incredibly hard-working team. If you can afford to, please stop what you're doing right now and give them money. Or code. Or both. We can win this thing!

-- Urbit

One of the things that gives us (Matrix) enormous hope for the future is the shift we've seen in the Decentralised Web community over the last few years, where projects who in the past might have competed now support each other.

In the end, there is an incredibly small handful of developers working on decentralised infrastructure, who generally share very similar ideology and goals, pitted against an entire industry which defaults to holding users hostage in silos. We gotta stick together to prevail :)

So, Urbit: huge thanks for the support - we really appreciate it. And good luck on your side too!

I agree - I see this Benjamin Franklin ("if we don't all stand together, we shall all hang separately") attitude everywhere.

But I don't think this new attitude is an accident. It's not just because we're good people, or even good engineers. It's an inevitable consequence of what we're trying to do.

Fundamentally, all decentralized systems are one big federation. If two decentralized systems can't talk to each other, that's because no one needs to connect them yet. There is never a question of whether the connection can be made, as with centralized systems.

In short: for decentralized systems, the n in Metcalfe's law ("the value of a network is proportional to n^2, where n is its user count" - I think it's more like n log n, but whatever) is the number of users not in any decentralized network, but in all decentralized networks. (It also should add any centralized networks that you can gateway to.)

What this means in practice for Urbit and Matrix: if both Urbit and Matrix succeed, a gateway is inevitable. It's inevitable because (a) it will be demanded and (b) no one can prevent it. Then, Urbit will benefit from Matrix's network effect and vice versa.

So economically, we're not competitors. We're colleagues. So building a positive relationship is a professional no-brainer. In the new decentralized world, the only reason to be a jerk to someone else is that you're actually a jerk. You'll see this, but it isn't common -- at all.

(However, our domain is googleable and yours isn't. Owned! We'll just have to link to you :-)

Maybe it's only me, but I'm more comfortable for one time donations comparing to these per week/month/year long time commitment you provided. I guess I can choose per year and then cancel it immediately after the donation, but still, I hope you can provide a one time donation option to us.

(I can totally understand why you prefer these long time commitments.)

tbh we want to support both :) The bitcoin option is one way of doing one-time donations, and apparently liberapay may be considering it too. We'll also set up a Paypal.me shortly too.

Maybe consider a kickstarter as well. Qutebrowser apparently does this once a year so the main dev can work on it full time during the summer break from his university. Seems fairly effective.


qutebrowser author here - I think Kickstarter (or similar crowdfunding platforms) work best when you have a given timeframe (like the 1-2 months I have once a year) and a tangible feature to advertise as part of it. For qutebrowser, that was the new QtWebEngine backend last year (https://igg.me/at/qutebrowser) and a completely new config system this year.

Hey, thanks for your work, but I have one big issue:

You use the term "propaganda" like it's something that can be determined objectively and algorithmically the way that spam can. That's very concerning to me, seeing as mega corps like Facebook and Google are also starting to implement questionable protections against what they consider to be propaganda. And similarly, they also group them together with other issues like terrorism, hate speech, etc. That's exactly why decentralized and uncensored forms of communication are so important right now.

How are you planning to determine what is propaganda? By your own perception? Will you refer to a team of "independent experts" as the arbiters of truth?

I probably mangled this in the blog: the whole point of the decentralised reputation work we are planning in the future is to let users define and curate their own content filtering, deliberately making it entirely subjective and avoiding any objective or moral absolute attempts at filtering.

This is what is so exciting about the decentralised use cases of Matrix: one man's freedom fighter is clearly another man's terrorist, and it is not up to us to be an objective arbiter.

Instead, the plan is to let users themselves define their filters: inheriting reputation data from other people whose opinion they trust, and defining their own rules too. Critically, we want to visualise for users the shape of the filter bubble that they end up defining - so they can see what the rest of the world thinks of the content they read.

This would be something like: "98% of the world thinks this content is factually false, but we're showing it to you because you've strongly aligned yourself with Bob, who thinks it's the best thing ever"... but presented in such a way that it's interesting and fun to the user rather than a boring nag. Obviously the last bit is a client UX problem, but the fact remains that it's critical to build the underlying infrastructure for tracking reputation data in a morally relative and neutral manner.

Hope this makes it clearer. We are absolutely not in the business of defining "propaganda" ourselves. But we let users set themselves up as experts (independent or otherwise) as they desire, and it's then up to users to mix their own blend of reputation data based on who they rate.

Thank you very much for your reply. Highly interesting ideas there! Sounds a little like part of the system Daniel Suarez devised in Daemon and Freedom™ :)

Two principal problems are probably Big Money gaming the system and people not wanting to publicly disclose their views. In the worst case your scheme might end up serving age-old staples of propaganda: Falsely implying a consensus and the establishment of authority (of the most trusted users).

I'll keep a look out for how you try to deal with that in the future.

Interesting - will check out Suarez. You're right that doing this in a privacy protecting manner is going to be Hard: by definition it's asking users to disclose their views - although this doesn't have to be to the general public; it could be an opt in thing: eg "Alice wants to subscribe to your reputation data - Yes/No". Storing the reputation data so that it doesn't become a honeypot of metadata is harder however.

There is absolutely the problem that widely trusted people would use their position to push an agenda, deliberately or unintentionally. This is inevitable, as far as I can see, given we are assuming there are no moral absolutes here. So the best we can do is to ensure that users have visibility on the amount and shape of content being filtered out, access to whichever 'authorities' they chose to trust, and make it easy to view the world from different viewpoints.

Fun problems! I can't wait for Matrix to properly focus on it.

Thank god we can finally give money to support you folks. For the past year I've been waiting for the day that I can fund the development of Matrix (for context, in the past they made it clear that they didn't feel they needed funding because they all had jobs working on Matrix).

I have just pledged 50EUR a month (kudos for providing two free software systems for donations -- though GNU Taler would've been another nice addition). I would also pledge my time if I wasn't already working overtime on other free software work. To everyone who just reads HN comments and skips the articles -- if you have the means, donate: { https://patreon.com/matrixdotorg ; https://liberapay.com/matrixdotorg ; 1LxowEgsquZ3UPZ68wHf8v2MDZw82dVmAE }.

Matrix is truly a very revolutionary piece of technology, and they deserve far more support than they're getting. I'm gladly investing now in the hopes that the Matrix of the future will deliver on what I see them doing. I'm really hoping that one day people will switch to Matrix because of its features and not because I badgered them to do so. Here's hoping.

Good luck.

Wow, thank you cyphar! That is very generous and hugely appreciated :) We will be doing everything we can to keep Matrix growing and evolving as fast as we possibly can.

What is Matrix?

Matrix is an open standard for interoperable, decentralised, real-time communication over IP. It can be used to power Instant Messaging, VoIP/WebRTC signalling, Internet of Things communication - or anywhere you need a standard HTTP API for publishing and subscribing to data whilst tracking the conversation history.

Matrix defines the standard, and provides open source reference implementations of Matrix-compatible Servers, Clients, Client SDKs and Application Services to help you create new communication solutions or extend the capabilities and reach of existing ones.

What is Matrix’s Mission?

Matrix’s initial goal is to fix the problem of fragmented IP communications: letting users message and call each other without having to care what app the other user is on - making it as easy as sending an email.

The longer term goal is for Matrix to act as a generic HTTP messaging and data synchronisation system for the whole web - allowing people, services and devices to easily communicate with each other, empowering users to own and control their data and select the services and vendors they want to use.

Isn't HTTP already a generic messaging and data synchronisation system for the whole web?

How will Matrix be anything other than another stack in the field of silos?

Genuine question. I'm not trying to be combative.

Edit: After doing some more reading through the matrix docs, it seems that the goal is to make an extremely easy to implement/setup endpoint that any 'silo' can easily include. This Matrix endpoint will automagically connect to the Matrix endpoint on other 'silos' to facilitate message transfers.

Is this accurate?

HTTP itself doesn't give you any standard way to synchronise blobs of real-time data (IMs, VoIP signalling, etc) between servers, or even really between servers and clients.

Sure you can write a webapp which uses some combination of long-lived GET, PUT, websockets, HTTP/2 Push etc to 'push' realtime messages around the place, but there's no standard way of doing it; each app makes up its own fragmented and proprietary set of APIs.

So Matrix fixes this by defining a standard HTTP API (which can also be used with other RPC transports if you prefer).

Creator of Ruma (Matrix apps/libs built in Rust) here. If you're not already familiar with Matrix, this article won't help much in convincing you to support it. I'd recommend reading our Introduction to Matrix[0] and Why Matrix Matters[1]. Keep in mind they are written for a largely non-technical audience and are intended to explain what Matrix is conceptually without a lot of implementation detail.

I generally don't think Patreon is a good way to fund software development, but I will be contributing anyway because the work the Matrix team is doing is critical. Open, secure communication on the Internet is one of the most important and relevant issues today.

The Matrix team has been great to work with in developing Ruma. As Matthew mentions in the post, our development has been slowed somewhat by lack of updates to the Matrix spec, but they've had the Ruma team's full support in prioritizing end-to-end encryption in Riot, as it's simply a more urgent priority than enabling independent implementations of the spec. It's been clear to us that the only thing preventing improvements to the spec is the lack of bandwidth on the Matrix team, and in that sense, today's news is actually good news, because now we have a chance to help increase their bandwidth beyond what their parent company could provide.

[0] https://www.ruma.io/docs/matrix/ [1] https://www.ruma.io/docs/matrix/why/

We're trying to provide multiple platforms here for those who wish to use other mechanisms (e.g. liberapay and BTC); although interested to know what the concern is with Patreon? We're thinking of adding BountySource too.

Brian Smith had a good string of tweets that summed up my thoughts on it, but I can't find it now. There's two parts to why Patreon feels inappropriate for me: The units are too small to be realistic for a market rate salary for a software developer. If a single developer's salary is six figures, trying to fund a whole team this way a dollar at a time spreads the "crowd" too thin. Second: There's no established deliverable associated with the donation. It makes sense for people who are doing something like making YouTube videos on a regular schedule infinitely into the future, but for a software project, you want to see more specifically how the money will be spent, how much it will cost to complete a project, and what the expected timeline is. Kickstarter's model is much more appropriate for this. The developer can give an honest estimate, "We want to build X. It will take us Y time, and we need Z dollars to make it happen." Then everyone donating can better judge how much to spend and know what they can expect for their money. This is more fair to both the developers and the donors.

What advantage does Matrix offer over IRC?

Server-side history storage, optional end to end encryption, mobile clients with push notifications (the client doesn't have to maintain a persistent connection), voice/video chat, file uploads (and embeds for certain filetypes)... among other things.

Also it cleanly bridges to IRC so it's not a one-or-the-other situation. Was really impressed when I looked at it a while back.

I personally use IRC for text chat, and other tools for, say video chat (Skype), file uploads (a wiki, website, ftp, S3, etc), and so on.

You can also use OTR on IRC for end-to-end encryption, you can use IRC bouncers for persistent connections, bots to record history, etc.

I could see how someone might want all that integrated in one software package or service, though.

well, end to end crypto for one

You can use OTR to provide end-to-end encryption on IRC.

Aside from requiring everyone to install a plugin to do OTR, the crypto behind Matrix's Olm (based on Signal's Axolotl) is much better suited to asynchronus communication than OTR (and MegaOlm actually supports group chats).

There are many more benefits to Matrix, but just making clear that Matrix's end-to-end crypto is better than just plain OTR.

I hope this works well. I love Matrix and Riot. It's what I dream XMPP would be.

I'll do a donation, if anything, to show my support to what you are trying to achieve. I wish Matrix and anyone working on it the best.

Arathorn, links to matrix.org and riot.im on Patreon are all plain HTTP; is it voluntary? Thanks!

oops, the Patreon wysiwyg HTML editor was autolinking to plain HTTP; now fixed. thanks. (and thanks for donation!!)

Awesome, thanks again!

Please accept donations through OpenCollective as well. I'd prefer to donate through another open source project that I have great faith in.


Note that libreapay is also a free software payment system.

Why not do an ICO?

Let's just add this to the pile of generic unhelpful responses:

* Security vulnerability: Have you tried rewriting in Rust?

* Hard problem: Have you tried machine learning?

* Need funding: Have you tried an ICO?

Matrix's technology is decentralized by its very nature. I think ICO is appropriate as a consideration here.

We're considering it - there are some places where it fits very nicely (e.g. paying to prove you're not a spammer; providing a token for apps/widgets/bots with Matrix; money transfers within Matrix)... but we also have our hands very full with the core tech of Matrix itself without opening another battlefront.

Meanwhile in the short term, we're hoping that Patreon/Liberapay donations and corporate sponsorship will let us focus on the current work to be done immediately.

Are those things really comparable in scale?

It looks like the typical ICO with a half-decent execution and product backing it raises a few million dollars.

Yup, you're right that Patreon-style donations are typically $1K-$10K a month, whereas an ICO can produce millions of ether or bitcoin. So it's a tricky compromise: whether to pause core Matrix work to pursue an ICO (on the assumption that the ICO bubble doesn't pop in the next few months)... or whether to try to get corporate funding/sponsorship and Patreon-style donations in order to keep laser-focus on the Matrix core.

As per the earlier post: we haven't closed the door on an ICO; it will likely depend on how much sponsorship we get in the next few weeks.

I agree it's a hassle - it would be nice if there was something like a kickstarter for ICOs.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact