top | item 19216527

France Enters the Matrix

389 points| l2dy | 7 years ago |lwn.net | reply

149 comments

order
[+] O1111OOO|7 years ago|reply
In my small bubble of tech news, France has popped up a few times. Found out recently that they are officially[0] using the privacy-respecting Qwant search engine. Several weeks ago, I learned that they have planned obsolescence laws[1] which makes them a pioneer in this area (from what I understand).

There's also an active non-profit organization using FOSS to create alternative, privacy-respecting, solutions to Google products (framasoft[2]). I mention this last one because I haven't come across a similar major undertaking (or similar mindset) in too many other countries.

Now they are evaluating Matrix for their communications needs. I can understand the importance of countries, nowadays, not relying too much on the services of companies tied to a specific country (namely the US) but I wonder what else is different about France? What else are they engaged in re: FOSS, privacy?

Or am I reading too much into this?

[0] https://en.wikipedia.org/wiki/Qwant

[1] https://www.bbc.com/news/world-europe-42615378

[2] https://framasoft.org/en/

[+] franky47|7 years ago|reply
French citizen here. For as long as I can remember, there's been a strong will in the French FLOSS communities to develop local alternatives to the ever-expanding reach of the FAANG/GAFAM, for many reasons. The obvious one being the export of data outside actionable jurisdiction, but it could also be explained by differences in ideology.

As for what else we're doing, there's La Quadrature du Net (LQDN)[1] which took part in the recent Google €50m fine, some projects by concerned citizens to keep a watch on politicians[2] and tracking in mobile apps[3], but one of my favourite things comes from the increasing will to release "OpenData" (public data sets from various sources)[4] to let collectivities, regions and smaller units build tools to solve their local problems.

[1] https://www.laquadrature.net/en

[2] https://projetarcadie.com/ (in French)

[3] https://exodus-privacy.eu.org/en/

[4] https://www.data.gouv.fr/en/

[+] pjc50|7 years ago|reply
France's position on this is essentially nationalist; local surveillance of the internet is strong following various terrorists attacks, and there isn't quite German levels of distrust of state security apparatus. But on the other hand they are outside the five eyes, run an aerospace and tech industry that has to deal with US industrial espionage, and are aware of the cultural hegemony of English language media.

(People seem to think that France doesn't have a tech industry; it very much does but little of it is consumer facing)

[+] sacado2|7 years ago|reply
I work in a French public lab, and the policy here (and in many if not most other public labs) is to produce FOSS based on our research. It has always been more or less a fact, but this is becoming an official policy, AFAIK: make it FOSS unless you have a good reason not to.

Regarding privacy: not my field of expertise, but France is far from paradise here, thanks to the terrorist attacks a few years ago.

[+] contingencies|7 years ago|reply
Also last October ANSSI, the National Cybersecurity Agency of France, released the sources of CLIP OS, a Gentoo-based hardened, multi-level operating system. https://clip-os.org/en/
[+] babayega2|7 years ago|reply
My first use case of FOSS was with Framasoft. Back in 2009. I had my first USB key, and downloaded all the needed softwares on my key[0] , notably SumatraPdf, OpenOfice and Mozzilla.

[0] https://framakey.org/

[+] _ted_|7 years ago|reply
France also wants to break Internet and culture sharing (and code). There is a new law project in EU that will give the power to big companies to control what we have the right to publish, and that makes the host platform legally responsible of what users post.

https://juliareda.eu/2019/02/article-13-worse/

There is lot of private initiatives to make great things, but no state vision to make things right. The only value they see is economical, but not for the people.

[+] on_and_off|7 years ago|reply
The gendarmes have also switched to linux. IIRC, the main reason was that is is cheaper.
[+] Bayart|7 years ago|reply
There's also big economic incentive for many countries to just go to FOSS solutions for their needs. It alleviates the need for self-sufficient local private corporations or huge public programs. Nothing speaks louder to a politician than saving on their budget. Or making administration easier (which is likely to be incredibly important in a country with a bureaucracy as Byzantine as France).

Now that the big hacker/open source FUD is mostly done for, I think you'll see a lot more countries deploying FOSS tech as a matter of fact an not as an ideological statement or an avant-garde trial.

[+] 1337shadow|7 years ago|reply
France also recruits hackers as part of their beta.gouv.fr community, they are pushing things forward to more open source from the inside of the government. Many of them are not only at betagouv, but also at laquadrature or framasoft and the like.
[+] agumonkey|7 years ago|reply
slight counter point, I think I recall education having a recent contract with Microsoft which wasn't super OSS to say the least.
[+] birracerveza|7 years ago|reply
I like the idea behind Matrix, but hosting it is really a pain. I've given up on it until it's a simple `docker-compose up -d` away from running a full instance.

To get back on topic, France has really got its FOSS movement moving. There are a TON of Mastodon and Peertube instances located there. It's admirable.

[+] spantaleev|7 years ago|reply
Being similarly frustrated with how complicated it is to set up, I've created an Ansible playbook to automate it all (and run all services in containers): https://github.com/spantaleev/matrix-docker-ansible-deploy

By default, it sets up Synapse and a bunch of other services around it that are necessary to really make it useful (Postgres instead of the default under-preforming SQLite; mxisd as the identity server; STUN/TURN server for WebRTC calls; riot-web; various bridges; etc)

[+] omnimus|7 years ago|reply
I dont know... i have been runing one instance for about 3 years and it is just

apt install matrix-synapse

and changing one yaml config to suit my needs

i am sure there is a dockerized version

[+] iodbh|7 years ago|reply
I've been running two matrix (synapse) instances for about 2 years and it's been pretty painless. My "personal" instance is hosted on a dedicated server running Ubuntu, and the package works just fine. The other one uses a slightly modified version of the code, and installing/updating it via pip is trivial. What part of the process did you find tedious ?
[+] Arathorn|7 years ago|reply
we’ve bundled official docker for synapse for a year or so now, and it really is as simple as docker-compose up -d? would be good to understand what’d going wrong.
[+] arendtio|7 years ago|reply
Could you elaborate on what kind of troubles you have with the hosting? So far I host only an XMPP server but I would like to know what kind of trouble I have to expect if I wanted to host a Matrix server too.
[+] zamalek|7 years ago|reply
> Because Matrix is inherently decentralized, no single server "owns" the conversations; all traffic is replicated across all of the involved servers. [...] Matrix is more like Git than XMPP, SIP, IRC, or many other traditional communication protocols.

The Matrix protocol is well worth the read. JSON-LD is a bit of a nightmare to work with, but the gist of it is a solid concept; it has drastically changed my approach to software design.

[+] acemarke|7 years ago|reply
I'm considering evaluating Matrix for some upcoming projects I'll be working on. Thus far I've just skimmed the front page and the FAQ.

Could you expand on what you found particularly compelling about the protocol / API, and also how that's changed your software development approach?

[+] Arathorn|7 years ago|reply
(Matrix is just JSON, we don’t use JSON-LD)
[+] agumonkey|7 years ago|reply
Forgot about json ld.. something is odd. in the xml days there was xlink/xpath.. now it's the same but with json trees. We're looping over syntax
[+] Forbo|7 years ago|reply
I finally got around to brushing off the year's worth of dust that had accumulated on my Matrix account and signed in to Riot on my phone, as well as their web client. I was pretty pleased with how easy it was to connect to a Freenode channel. So far it seems to be a decent experience, I'm looking forward to using it over the next little bit.
[+] sublupo|7 years ago|reply
Recently I'm hearing more about Matrix. Does anyone have any input as to the pros and cons of Matrix vs xmpp?
[+] fyfy18|7 years ago|reply
It's quite subjective, but my view is Matrix is what XMPP would like if it was written today.

The main advantages are it is using JSON instead of XML, and HTTP instead of custom protocols so it can work directly from browsers and with lightweight mobile clients. It also has a lot built into the core protocol, where as to get XMPP to do anything useful you will need to use a lot of extensions (and ensure the server and all clients support them).

The only con is it's still a relatively young project. I'm not sure I would want to rely on it as my main form of communication in a company just yet, but for personal usage it is fine.

[+] arendtio|7 years ago|reply
Well, technically both are valid approaches which get messages from one user to another in a federated way. Besides that, XMPP is an IETF standard which has proven it can adapt to changing requirements. Matrix, on the other hand, is a young project with more momentum and more consistent software landscape.

That said, I have quite a biased view on the topic, as I kinda blame the Matrix devs for splitting the federated communication community. XMPP is quite capable of delivering what everyone expects it to do. But lately, developers seem to be more interested in the new Matrix protocol (just because it is new). At the same time, many XMPP clients do not implement all of the latest features the standard has to offer and I wonder what the world would look like if the Matrix devs would have spent their energy on improving existing XMPP clients instead of inventing another protocol.

Edit: For completeness, you might like to take a look at the Matrix FAQ https://matrix.org/docs/guides/faq.html#what-is-the-differen...

[+] Zash|7 years ago|reply
From the point of view of an XMPP server developer, the main advantage of Matrix seems to be that they have a well-funded marketing department.
[+] upofadown|7 years ago|reply
It is possible to consider them different categories of things. XMPP solves the IM problem but conferences with lots of users are a bit awkward if you use a XMPP MUC server. Conferencing is to some extent a bag on the side of XMPP. You would probably be better off just using IRC.

Matrix is primarily about dealing with the issues of conferences with lots of users... I see it as more of an improved IRC than a replacement for XMPP.

[+] wcoenen|7 years ago|reply
> the 0.99 version of the home server code is ACME-capable and can get a certificate directly from Let's Encrypt;

How does this work? I assume a home server doesn't have a public DNS name, so what is used as the subject of the certificate then?

[+] detaro|7 years ago|reply
"home server" is the term for the server your account lives on in Matrix, not for "server you run at home", although you can of course do that.
[+] packet_nerd|7 years ago|reply
The federation requires a publicly accessible server to work. I got a cheap domain name, pointed it to my public IP (with DDNS), and port-forwarded to my server. Works fine for me.
[+] ypolito|7 years ago|reply
DNS is required for wildcard domains.

To issue a certificate for a specific subdomain, you just need to have an http server and serve the secret under the .well-known directory.

[+] denart2203|7 years ago|reply
Is anyone else increasingly uncomfortable with the "we'll solve the certificate problem by deferring to centralized registrars that surely keep their keys private from state actors." I mean, this is potentially not a risk if there is a recognizable way of communicating low-bandwidth fingerprints of the next encryption level, like ZRTP verification on voice. But note how WebRTC has done the same thing? And efforts to solve the problem are talked about and then, somehow, nothing ever happens with the standards.

It's enough to drive one paranoid.

[+] MayeulC|7 years ago|reply
Matthew's talk at FOSDEM [0] was really nice. I've been using Matrix (mainly trough Riot) for a while, and encouraged my technically-minded friends to jump on it.

However, I would like to get my family to use something else than WhatsApp (which I refuse to use). I'm planning to do so, once I can sort out the following:

- Riot is nice if you have a lot of high-density rooms (Fractal's "Banquet" use-case [1]), but not really there in terms of UX for small rooms with my family members

- I would like to self-host if possible. However, I need to ensure that the server is reliable enough, and synapse seems to be quite resource-hungry.

Regarding the first issue, it seems that France's Tchap would solve it nicely, from what we were shown at FOSDEM. Unfortunately, the Readme in their repo is still Riot's, and it would seem that I have to build it myself [2]. I'll look a bit more into that nevertheless, and it should improve by June, from the article.

Regarding the second one, someone recently linked to this Gnome mailing list archive [3] where (in the reply) Matthew details a bit more his (then) long-terms plans for homeservers. Having one homeserver per device would solve most of my issues pretty neatly. I am not sure how far it is in the roadmap. I am also curious to know what's the status on that specific discussion topic: I was discussing just this the otherday on #postmarketos-offtopic:matrix.org [4]. I was interested in having a unique matrix daemon on a phone operating system to provide push support, maybe as well as a Matrix protocol broker.

Otherwise, for self-hosting with ~10-200 users, it looks like synapse has shed a lot of weight recently, and other homeservers implementations seem to be picking up steam, so we'll see how that goes. I am not sure how synapse would handle a dynamic IP

For now, my gripes with the ecosystem are the following:

- There doesn't seem to be easy ways of migrating: accounts, homeservers (including address and implementation, ex. migrating to/from synapse, Dendrite, Ruma...).

- No easy way to manage multiple identities: work, home, etc. Multi-account clients or community-bound identities could probably help solve this. Ideally, it would be the later, and my account would be on multiple homeservers (backup plan for availability).

- The search functionality is really lacking on most clients. No way to search my own messages, or at a specific time, in a specific community, etc.

It's also kind of fun to have both COI (chat over IMAP) and Matrix making the front page at the same time :)

[0]: https://fosdem.org/2019/schedule/event/matrix_french_state/

[1]: https://blogs.gnome.org/tbernard/2018/05/16/banquets-and-bar...

[2]: https://github.com/dinsic-pim/tchap-android

[3]: https://mail.gnome.org/archives/desktop-devel-list/2017-Sept...

[4]: https://matrix.to/#/!VTQfOrQIBniIdCuMOq:matrix.org/$15496441...

A bit off-topic, but my registrar doesn't provide an API to update the DNS records on their servers. As a workaround, would there be a free dynamic DNS with an API out there? I don't care what the address would look like, as I would just use it as a CNAME record.

[+] Arathorn|7 years ago|reply
There's already people doing unofficial builds of Tchap which work against the public Matrix network rather than the .gouv.fr deployment - e.g. https://github.com/14mRh4X0r/tchap-android and https://git.snt.utwente.nl/14mRh4X0r/tchap-proxy, although I'm not sure it's useful yet as more than an interesting experiment.

On the riot side, we're trying to do our best to make it support both Barbecue as well as Banquet use cases (assuming that's not a contradiction in terms).

In terms of other points:

> Having one homeserver per device would solve most of my issues pretty neatly. I am not sure how far it is in the roadmap.

It's in the 'further still' column - we published the roadmap last week at https://matrix.org/blog/2019/02/15/publishing-the-backend-ro... - look for the card labelled 'p2p homeservers'.

> - There doesn't seem to be easy ways of migrating: accounts, homeservers (including address and implementation, ex. migrating to/from synapse, Dendrite, Ruma...).

There are scripts to do it, but it's a bit crap (similar to migrating between IMAP servers). We're working on fixing it properly via MSC1228 (https://github.com/matrix-org/matrix-doc/pull/1228)

> No easy way to manage multiple identities

Multiaccounts are next up for Riot.

> The search functionality is really lacking on most clients

yeah, we need to fix this.

[+] Andrew_nenakhov|7 years ago|reply
The only advantage Matrix currently has comes from it's relative obscurity. It has ONE implementation. Once things start inevitably emerge, it'll run into all the same problems that truly distributed protocols have.
[+] Arathorn|7 years ago|reply
it's true that there's only one implementation that's production ready. however, there are several which work sufficiently that they can federate with it (dendrite, construct) which look to be on the right path. it'll be interesting to see if that all falls apart when they come of age; let's see :)
[+] qwerty456127|7 years ago|reply
Does it support conversation trees like we do here on HN? Does it let you edit your messages?
[+] xvilka|7 years ago|reply
I wish they stop wasting time by developing this Electron abomination and focus more on the native and mobile clients.
[+] pmoriarty|7 years ago|reply
I haven't tried Matrix yet, but I've tried some other chat platforms like Telegram and Discord, and was really disappointed with them compared to IRC.

I had to use their closed-source, bloated, binary blob GUI clients, couldn't logs the channels I was in (and so relied on having to log in to their servers to get backlogs, which was super annoying), and needed invites to get in to channels.

Apart from the superior multimedia capabilities of these clients, I saw absolutely no advantage of them over IRC clients (which could do useful things like logs all mentioned URLs and mentions of my nick to separate, logged tabs, and which I could run from the terminal and even from within Emacs).

I really hope Matrix is better in this regard, and I'm trying to keep an open mind, but so far attempts to create next generation chat services have been really underwhelming.

[+] im3w1l|7 years ago|reply
I find it compares favorably to IRC and XMPP. File transfers and offline messages and encryption "just working" without having to check if my client, other persons client and the server(s) support it (or having to bring helpers into the mix) is worth a lot.
[+] Arathorn|7 years ago|reply
using matrix via weechat using the new python weechat-matrix (https://github.com/poljar/weechat-matrix) plugin should give a very convincing IRC on steroids experience; it even has e2e encryption landing. The emacs matrix client (mclient.el) is also in active dev again.

Riot is also good, but probably too bloated for your tastes :)

[+] elvecinodeabajo|7 years ago|reply
Matrix is totally open sourced. Server side and the official client (Riot) can be deployed anywhere under your own control.

Also, deploying a bridge you can connect Matrix and IRC rooms, creating a hybrid channel mixing Matrix and IRC clients in the same room. It's pretty cool.

[+] ishitatsuyuki|7 years ago|reply
While most of your complaints is valid for Discord, it doesn't hold for Telegram, which IMO has high quality clients, in terms of native look&feel, lightweight, and general UX.

Matrix on the other hand is like having everything half-baked. This made it an non-option for daily use and I ended up moving to other IMs and a bouncer for IRC.