Hello and good morning again. So I think we should get started. So I have fun. We are here something about Metrics 2.0 and how to break the communication silos and the UE Digital Markets Act. Thank you very much. Let's go. Good morning everybody. This is cruel and unusual to be here at 10 o'clock in the morning for me. Quite a lot of you guys. So thank you everybody for turning up to hear all about the latest things of Metrics and indeed the European Union Digital Markets Act. This talk is going to be in two halves. First of all we are going to talk about Metrics 2.0 and where things are at back there and then we are going to switch through to the DMA side. So don't think you are being short changed that the first half doesn't really talk about DMA because we will make up for it later. Unless I run out of time, which point will all be about Metrics 2.0. So hopefully folks know that Metrics is an open network for security and network for security centralised real time communication. I am Matthew and the project leads and co-founder. Metrics gets used for lots of things but today we will be talking about chat and VoIP. We will not be talking about fancy stuff like VR, AR or IoT. Our mission continues to be to build the real time communication layer of the open web where no single party can ever own your conversations where conversations are replicated in some magical utopia between all participants. Some stats. So this year I thought we would look at monthly active users reported home by servers. So when you install Synapse or then drive you have the option to go and report stats back to the mothership. If you do it ends up in a nice database called Panopticon and we aggregate it together to see where things are at. If you look at where things were at back in January of last year we were at about 2 million monthly active users and since then we have more than doubled up to almost 4.5 million active users, monthly active users. And people always ask when they see these graphs does this include bridged users. I asked Neil who wrote this and said Neil does this include bridged users. He said no. So these are real proper matrix users with access tokens talking on actual home servers. So it is not exponential at the moment but it is pretty reassuring linear going up and you can see how the wider public network is growing there. Another random metric which I think we have to talk about is Stack Overflow. Every year polls everybody on Stack Overflow as to what their favourite technology is and for the synchronous communications tool this year and this came out last week or the week before they asked people what their most desired tool was and also what their most admired tool was. And honestly we were pretty chuffed the matrix came in as the most admired I hyped synchronous communication tool going and even beating discord by 0.3 of a percent. Also the most desired open source one unless you consider signal to be open source which is a little bit controversial. So kind of fun to see that at least in the Geek Stack Overflow community people appreciate the stuff that we are doing with matrix. Now I wanted to talk about uptake across the sort of real worlds of matrix because the project does continue to grow and grow and decided to focus on the public sector. So what I have done is to try to map out all of the big public sector deployments I know of of matrix across the world and what I have tried to also do is to call out the minor problem if you have noticed that we have around funding matrix development at the moment. In that there are many dots on this map here and if we go from left to right we go from kind of thousands to tens of thousands to hundreds of thousands to millions of users on the size of these deployments and then the size of the yellow circles shows you roughly how much these deployments contribute back to the costs of the core team working on matrix with a matrix foundation or the folks who work at elements on the core team. And as you can see it's a little bit asymmetrical in that we have friends at BWI who support a lot the BV messenger an awful lot of element acts and matrix rest SDKs thanks to their support. We have the open desk project with BMI in Germany. We have the Phoenix streets which is sovereign workplace capability and done by data port. We've got some all the schools in NRW with Barring Point and Loginio and then there are some smaller deployments like in Sweden, US, UK, NATO, etc. But some of the really big ones like CHAP or Luxembourg or Hessin or Bavaria which are in millions of users are kind of contributing very very little back to the core project in terms of cash at least in 2023. We're hoping to fix this and hopefully all of these instances hence calling them out here. However, across 2023 honestly we had a really crap year. First of all we'd been depending a lot on COVID funding which evaporated as the pandemic sort of became a endemic rather than pandemic and general macroeconomic slowdown thanks to post COVID and the situation in Ukraine. This problem of lots and lots of deployments basically not helping fund the underlying dev. We also found a really interesting problem that the FSSE's mantra of public money for public code encourages governments to only fund features we find. It's like this is taxpayer money, we have to go and put this to something demonstrable therefore can we implement I know polls, can we implement location sharing, can we do 3D location sharing and we're saying guys what we really need is to support the core foundations. We need encryption that works, we need a Rust SDK that is indestructible in audited and all this stuff and it turns out the getting funding for the maintenance layer is quite hard. So really 2023 was pretty miserable, we had to shrink the core team as well as element significantly and this is basically manifested as forcing focus. So right now we are focusing on matrix 2.0, Synapse, Rust SDK, Enablement X on top, JS SDK for Enablement Web Enablement Core and nothing else. So I'm sorry but if you're hoping that I'm going to strap on an Apple Vision Pro and launch myself off the stage demonstrating VR and ain't going to happen this year, everything else is paused. Peer-to-peer matrix is on hold, pseudo IDs and crypto IDs despite the amazing work that Devon did over the course of 2023 to set up for account portability where you replace matrix IDs with public keys so you can port between servers completely shelved for now. Low bandwidth matrix so using noise and other transports for really low bandwidth is gone. Dendrite is continuing but some not funded by element for now at least. Critical bug fixes only on the old iOS and Android SDKs so the classic element iOS and Android apps if you haven't noticed have been since June. Libol, the old C++ encryption implementation again is just in critical bug fixes and security fix only mode replaced by Vitozmat, the Rust encryption implementation and poor old third room is completely on high since now and the team has gone on to other things involving Apple Vision Pros ironically. So this is also real shame as in a different world I'll be showing you some really cool stuff in third room and if you're interested in the 3D on matrix stuff go and check out the final release they did because it has an entire direct manipulation in World Editor complete with write your own like apps on top of it in real time and it was really cool. Meanwhile on the element side we ended up switching developments of Synapse to AGPL away from the Apache license as a fairly desperate measure to try to get folks who build on top of Synapse to contribute back to either the code or the costs of building it. So long story short for Matrix to prevail we really need your support so the foundation that looks after the spec many other aspects of Matrix now runs entirely independently with Josh Simmons he used to be president of OSI as managing director. They've gone and set up a governing board from across the ecosystem which is going to stay the direction of the project we have elections for that in April if you want to get involved become a member, vote, put yourself forwards for the governing board and you too can stay the direction of the protocol. Right now there is a funding drive that we launched earlier in the week to support the core spec work trust and safety bridging running matrix.org infrastructure and governance work and the target there is 900k please get involved if you're in this room and you're not just chipping in a couple of I think it's like 60 bucks a year from memory so whatever that is and coffee please please get involved and meanwhile do you remember that an awful lot of well almost all of gether.com slash matrix is actually maintained by the core team who now work at Element who donate and Element donate their time to the project so if you're a government hypothetically wanting to use Matrix please work with Element to support the underlying infrastructure. That said lots of people getting involved we have 716 individual donors already we've got some amazing companies like Beeper and Xwiki, Gamartic the German healthcare interoperability agency, Furcom obviously Element, Criphead and Thunderbird all signed up now as organizational members. So enough plea for help let's talk about Matrix 2 quickly so we introduced Matrix 2.0 last year at Fosn 2023 the mission is to make Matrix as fast and as usable as mainstream alternatives so practically speaking that means it syncs instantly logs in instantly and launches instantly you can join rooms instantly or at least fast you get native VoIP with entwined encryption and you get open ID connects this is not a new spat release yet I have to say that otherwise Travis will go and kill me this is showcased in Matrix Rust SDK and is then used in Element X and quite a lot of it in fractal 5 and 6 in Nome so I have to say last year when I stood here and used about Matrix 2.0 it was very alpha now we got the demo working at 3am the night before or something like that so all of 2023 has been polishing this and trying to get it into the proper production and in September we did launch it in the form of Element X ignition to everybody so they could actually play with rather than talking about it let me show you where things are at probably the easiest way to do that might be to just show you my Element X so hopefully that is coming up and is vaguely visible or perhaps not let me zoom in a bit is that more visible so this is just my personal account I'm not going to log in again apparently we've got a blinking stream apologies if we've got painful flickering of the slides sorry if you're online but this is kind of fun hello world you can see since last year many many things going on here we've got our read receipts going down the right hand side we've gone and got fancy animations as people go and heckle the animation obviously the login and the launch is as fast as it ever was but we've really gone and fleshed out a lot of the features here so for instance I could or not navigate my laptop whilst zoomed in I could for instance go and send a location share and this is using open street map and for mapbox and map Libre in the background and so I can go and say that I'm in Brussels and hit share on that and it'll come up I could go and show things like the rich text editor at least I thought I could although I might have it turned off on this account let me go and dip into our beautiful settings go into advanced settings turn the rich text editor on go back out again and now if I go down here I can say text formatting and this is an entire this isn't using the sort of native iOS macOS stuff this is a rough rich text editor that we actually bought that would be cross platform and cross android iOS and web I can say hello world like that again select bold it and I turn a link on it or whatever else I need to do by the way this is obviously the iOS app but running on macOS also runs on iPad I'm just doing it here on macOS because it's easier to demo rapidly and yes bundles messenger is from the bv messenger creators but if you use bundles messenger at moment at least nothing directly comes back to us just saying what else can I show you whilst I'm in here perhaps you can show a voice message which will probably get deleted by the by the moderation system but if I give it permission to use my microphone here you can see me blathering away like this I'm going to hit stop on it so I can obviously go and replay that here you can see me blather and go and hit send and if any like the moderation system will go and kick in and probably delete it because it's not helpful for people to go and send voice messages into rooms or not so as you can see things have gone and moved on an awful lot from where they were on element x a few years ago but we also have these beautiful gray dots which are surprisingly hard to put together these are unread status and one of the things we're trying to get right in elements some acts is calculating unread state correctly everybody I suspect will be aware that over the last year we've had a lot of problems with stuck notifications and unread state on element web and we were determined to get it right here on element x instead so um well else can I tell you that that's probably enough now let's go back to the actual slides and possibly zoom out a bit so let's quickly talk about the component bits of sliding sink of element x the big one here is sliding sink the idea is that the server should only tell the client about the rooms that the client needs to display so it should be constant complexity with the number of rooms rather than linear complexity with the number of rooms to say that it's been a bit of a journey as an understatement since last year we have rewritten the entire rest SDK implementation we've gone and added the unread room state as we mentioned but we've really come up against a fundamental problem here what is the right balance between server side calculation of the order of the rooms that you care about and the client side calculation now the original genius idea from yours truly was that we were completely rip off discord and we would calculate the ordering entirely server side the clients get the sliding window into that and then you recede you send updates to the client as the ordering changes on the server now obviously that's not going to work with end-to-end encryption because for end-to-end encrypted rooms only the client knows for sure what the correct ordering is but that will be all right we'll fix it up on the client and so you'll get the optimal solution pre-order on the server and then fix it up in the client it turns out this is a disastrous idea it is a real pain in the ass to implement it was a pain in the ass to implement it last year it was then a pain in the ass to reimplement it and throughout the point now where even I realized it was a terrible idea and people are saying guys please can we simplify this a little bit because the problem is that really clients are the only ones you know the right order end-to-end encrypted rooms are pretty common these days and so the fix up process would be entirely horrible and we've never really even got it right so what we're doing instead is to switch to sort primarily on the client and we use course heuristics on the server to send a rough estimation of the correct ordering I mean sort of naming this or dubbing it pragmatic sync however this is a subset if sliding sync but without the sliding bit so not quite implemented yet I saw that a PR pops up a few days ago from Ivan and three six eight on the rest SDK repository that does actually implement client slides and ordering as well as lays the groundwork for filtering rooms there now as a result we're not yet doing native sliding sync implementations because we are still iterating on the API as I said this is just deleting stuff now it's not a massive rework or anything it's just simplifying it to make it easier to work with as an API and lots of people say I'm not going to use sliding sync until it's native until it's fully in the spec seriously it's really easy to run one of these it is just a single blob of go you build it you give it a postgres database and you run it and you point one URL at it on your load balance so you're done all right I've done it and I never had to touch again enough of it to occasionally update it so please do dog food this play with it in element acts then on the end-to-end group void lots and lots of fun stuff let me do a very quick demo that I'm already running later on time let me go to call the element and you are welcome to try to follow along on this I gotta go and start a element call call here I'm going to check that into the false dem room so that the people can click on it as well now you may see if you look carefully up here that the URL has not just got a matrix room ID but it also has a password because this is now using end-to-end encryption backed by life kit as the selective forwarding unit and I'm hoping that somebody is going to be able to join this otherwise the demo might suck it a little bit oh there we go amundine again thank you for rescuing me thanks haha lengths anybody else welcome to jump in and we can crash the the wi-fi here I might even mute this um so this is in funny so this is really the great sort of the descendants of the demo that we did last year except this is real one oh hi Andy thanks for darling in at home um so what we're what we see here is a life kit based selective forwarding unit with end-to-end encryption using f-frames negotiated over matrix so that you basically get best of both worlds this is a normal matrix room it is can be integrated with open id connect but because it's using life kit on the back end it's only showing you the streams that you care about so if I were to go in fact this is pretty cool if I go to a foreground tab like that and then switch back again well slow switch to the other tab every all the other streams will have dropped off and if you're looking at my bandwidth up there you might have even seen it you can also see this is only doing like 300k out and 150k in which is not too shabby um at all so you can use this today I mean that's basically what we've been promising all along end-to-end encrypted native point now there is one other quick thing that I will endeavour to show um which is if I go over to my phone here I'm going to hang up on this one um I actually go and launch element x then we also have this embedded properly into um element x itself so if I go also to here and go over to my normal element web then this is a little internal room called void water cooler and this is a um basically element called embedded inside element web hopefully and you have the chat room here on the right hand side and if I go over here I'm going to click the join button and the demo gods are smiling on me then we will see that there are people in here too now you might think wow this is amazing he's just gone and I framed and hopefully the video will come in um the previous thing but what we're actually seeing here is a bit more exciting if the infotainer me let's focus oh that's interesting the screen share isn't working um from quite time for some reason that's annoying let me use the analog gap in a few locations here so there we go that's what you should be seeing um on uh my phone if the screen share was working correctly again you can double click on things to go and zoom in and you can see roughly what's going on except the stupid blurring has gone and blurred it out so let's take off the background blurring there we go much better so this is not just sent to end encrypted with a static key like the previous one this is actually using senders as um sender keys so it's using your same matrix identity um so here I am as my normal matrix account Florian is on um here's I'm indeed is on hers T-Mas on his etc so this is fully you know this gives you all of the properties that you get of normal matrix in terms of forward secrecy and keys which are rotating forwards and which are linked to specific people they even give you multiple devices as you can see because I'm actually using this as myself as Matthew on both phone and on the embedded thing so this is pretty cool this is the shape of things to go I'm element acts is only going to use this it's not going to use jitzy and we'll switch over from jitzy on element where we'll soon now and then we live in a promised utopic land utopic utopian land of end to end encrypted video right thank you um where are my slides here are my slides so all if you want to see more about this come to the dev room see interoperability with fluffy chat which is really cool demo because this isn't just element called this is standards based matrix land and yeah we just need to basically finish the spark and turn on everywhere then open id connect the great transition is in full swing if you haven't realized open id connect is going to make the world an amazing place it gives you pass keys mfa2fa single clip login via qr code complete with end to end encrypted identity no more emoji verification just scan a qr code and bang you are in um no more leaking passwords everywhere consistent off account management um actual proper password manager integration proper sso support access token refresh as well as scope so that you can lock down what things your app can do um here is a quick screenshot I don't have time to do an actual demo showing what the sort of ux is like when you log in now to a sso um thing in element x land or indeed from element web and it gives you obviously details about your ip address your scopes the privileges that you're granting the app and it really is a transformation from where we have been before you can run this today um by matrix authentication service it's a long side synapse written in rust it gives you the c y we do now have migration from synapse using the center mass tool it provides some backwards compatibility for matrix off but there are some missing bits it does require a native oidc capable client like element x or indeed labs on element web finally rust SDK work obviously this all hinges around rust SDK with the matrix 2.0 implementation there for sliding sync in idc we've added in this ui crate that gives you the high level ui components which basically power what we've been looking at then on the crypto side very happy to say that we have basically killed off use of libon in the main projects here everything is now using the dosmat it's merged on element web and react SDK and jessus dk on friday like three days ago and this finally lets us fix the end to end encryption bugs in one place and make encryption better in one place crypto reliability is now the name of the game we've made a new weapon called complement crypto which tests both rust and jessus dk against real home servers written in running in docker written in golang gives you unhappy puff and torture tests we have our hit list of remaining encryption issues and we are blitzing on going through them the race is on and then one of the advantages of having all of our encryption using the dosmats now is that as if by magic a draft post quantum xth pr appeared friend de mere he went to sabbatical for a few months and came back clutching pr 120 so post quantum coming potentially to the dosmat sometime soon so what's next get it all released get it audited native sliding sync get rid of the old SDKs completely potentially look at replacing jessus dk with rust SDK if you know lots of trust and safety work to be done funded by the foundation as well as bridging and then finally dma right let's actually talk what the talk is meant to be about dma so digital markets act mandates that communication services from big tech companies have to talk together the whole idea is that the user can pick their preferred service without being locked out from talking to their friends forces the big services to actually differentiate on being a better app rather than having a huge network of users and relying on the network effects to track people into that app last year we were about here where the rules started to apply and this year we are about here just before we have march the 7th is when legally the gatekeepers have to actually open up the silos right now there is only one gatekeeper matter specifically what's that and facebook messenger and we'll talk about some where things are there so we saw this as a once in the lifetime opportunity to see if we can use matrix as a common language to talk to these guys there are probably three main ways of doing this either they can do open proprietary apis and you can do a multi-head messenger a bit like beeper mini where you just have an app that goes and talks through to the random api albeit with permission this time or you have client side bridging where you install an app on the on your android phone that just copies messages back and forth between what's up and matrix so we actually built this and demoed it to the european commission last year in february just after fosdom and i mean it works but it's a bit hacky honestly alternatively you can have everybody talking the same protocol like matrix so for the last year we've really been experimenting with option three so the problem is that the gatekeeper has to speak precisely the same end to end encryption as the person connects into it and also within the encrypted payloads everybody needs to talk the same content good news though is that we picked the double raptor for matrix back in 2015 because basically it was best to breed and everybody was using it so nowadays everybody apart from apple uses lib signal or the does match or live on under the hood for end to end encryption bad news though is that the normal matrix dialect of all is not interoperable with lib signal so ohm is the encryption in matrix it was a clean room implementation of the double ratchet that we did back in 2015 but unlike lib signal we don't use x 25549 or x3dh instead we have separate keys for identity and signing so we've done two implementations of all ms of protocol live all min c plus puffs and the does match in rough however to do dma we have now added x3dh supports of the does match so that it can interoperate with lib signal and we've called this new dialect of all into all and you can go and look at pr124 as of about 2 a.m. this morning and to actually play with it and see that if you put the right constants in this will now interoperate all the way through to normal lib signal so this means that you can do a hypothetical matrix for dma architecture where you have a typical matrix plant like element x which talks matrix through to a home server which then goes and uses msc 3983983 and 3984 to bridge end to end encrypted semantics through a application service which we call a protocol converter this is not really a bridge it's maintaining end to end encryption so it is converting the matrix signaling through to the hypothetical gatekeeper signaling and then talks through on the gatekeeper side to their client but the lib signal there and the dos mats in interon mode on the matrix side can then talk directly so you're basically turning the signaling on one side through to the signaling on the other and as long as you can agree on a common content format of some kind like matrix events expressed in proto buffer something like that then you have the holy grail of being able to interoperate between matrix and a big big messaging service so the end result could hypothetically look something like this where you have different gatekeepers who use a protocol converter to talk through to the normal public matrix network or some subset of it you can have clients there like element x or fluffy chat or whatever going and then talking through other bridges and you'd have home servers that exist primarily to gateway into these gatekeepers and so plug them all together so does it work yes this could work so I got permission from matter to admit that we have done experimental implementations of this now with them as a not so hypothetical gatekeeper and it does seem viable complete with end to end encryption what I would love to do is to demo it to you right now but because they have a great big set of announcements coming up about their dma intro they don't want me basically breaking their news for them at stage on fostered unfortunately so you'll have to imagine in your mind's eye what's that for one side and element x on the other and messages flowing back and forth between the two with end to end encryption honestly that would basically be all the demo would show the catch is that we honestly don't know yet what will happen in March I mean there are some fairly big challenges here first of all what permissions would you need to actually use this protocol converter because the dma letter of the law says that as an organization you have to request permission to get into the whatsapp network so we've obviously done that already as element but it's very unclear is just because we've done it as element that we've suddenly done it on behalf of the entire public matrix network and everybody else well you'd hope but let's see also there's this whole question of anti-spam where at the moment folks depend an awful lot on knowing the IP address of the clients which connect through in order to determine whether this is an abusive user is it coming in through tour do we need to be more careful about what it's doing blah blah blah blah so there is a big debate as to whether we would need to expose a stable identifier of some kind like obfuscated IP address to the gatekeeper to help with anti-spam then finally a big one is that group chat is just unsolved I mean the current legislation only requires one-to-one dms and you know it's a basic functionality no void and so group chat is out of scope until 2026 as the first cut you could just do lots of on sessions or inter-on sessions and find it out like we did before we had magon but it's a bit clunky and it also gets things more and more baked into the double ratchet so it may we're hoping that by 2026 some a better approach might emerge but at least this can be used hopefully from the get-go in March 2024 so one of the things we've discovered along the way is something we've called linearized matrix so dma doesn't mandate any of the cool stuff that matrix does it doesn't mandate decentralized conversation history and it doesn't you know require decentralized control and what we've seen is that gatekeepers might see matrix it's a little bit overkill when implementing it natively just imagine a conversation where I turn up to somebody at WhatsApp or whatever and start going on about DAG replication and state resolution and decentralized ACLs and it's all so cool and they said you know perhaps understandably would say well that's very nice though but dma doesn't say anything about that and whilst we would love to implement state res in Erlang perhaps we just need to worry about some straightforward interoperability so is there a lights and architecture that could work what if we had a protocol that was compatible with matrix but skips all the complicated state res stuff knowing that we could bridge it into actual full-fat proper matrix when needed so Travis myself came up with this proposal called linearized matrix as part of the itf meany working group and it's literally the same matrix events and power levels even the same author events but rather than putting it in a DAG you put it in a linked list so it's much easier to play with because you just have a list of events and you can then bang it around the place in a hub and spoke server topology which is something that the gatekeepers might be willing to actually implement rather than full-blown matrix but then the second it goes anywhere near us law we can just actually find it out into proper matrix so we are having an implementation of this the amazingly named eigen server which is a bunch of types scripts about what a thousand lines of code for memory that shows just how simple it could be to implement this subset of matrix in practice it could like this and this one really is hypothetical like please do not read anything into the logos here but it would basically have normal full-fat matrix here one of the servers that is got permission to talk through to a gatekeeper like google might be in future would then talk proper matrix through there and oh no actually no sorry we're talking linearized matrix there and then say that conversation would end up hubs and only that conversation this isn't all the traffic but they would just be a given hub for that conversation to plug everybody together and it makes it a lot easier and more practical to actually implement in big table and Erlang or whatever on the right hand side well still still talking to the matrix world on the left hand side however linearized matrix has not gone entirely according to plan so what we have been doing is working within itf in this new working group called the more instant messaging interoperability working group now this was started by folks from the mls messaging layer security group end to end encryption working group and the whole idea is that they want to build we want to define a long-term protocol specifically for the subset of dma interoperability with the added twist of the leveraging all the good stuff that mls provides because weirdly enough if you built mls you want to have an application layer protocol that sits on top of mls we've been involved in this since the outset my tf-114 in philadelphia back in 2022 now and you will be surprised to hear that we turned up and said guys you don't need to do this we can just speak matrix no matrix already is this amazing end-to-end encrypted decentralized communication protocol and it got promptly rejected because decentralization was seen as overkill that's why we then came up with linearized matrix which also then got rejected because it was like hang on a second this gives us message history why would you ever want message history we don't need message history when talking to gatekeepers why does that have key value state events for arbitrary key value data that sounds very dangerous we don't want that and so it went through the itf process where it gets whittled down and reduced and reduced and reduced to the absolutely minimum subset of stuff that you need and then hopefully perhaps maybe expands out again one of the big debates has been whether Mimi should support interoperability with today's protocols like whatsapp or facebook messenger and critically the double ratchet or do you hard code the entire design to require mls for encryption so you can imagine that there are a bunch of people who really really have backed the farm on mls and a bunch of slightly more pragmatic people perhaps who have backed the farm on just wanting to interoperate with people and that debate has gone back and forth so we ended up forming a design team between folks on matrix side Cisco google wire phoenix and wicker to try and to build something from the ground up that would provide this on ramp from today's double ratchet world into an mls world the idea is that you literally can use this today to interrupt with double ratchet platforms like matrix or whatsapp but then also provide a really low friction way to steer everybody through to talk mls and there was a lot of back and forth on how this could look because it basically tries to solve this paradox that on one hand if you have mls you should use it as much as possible you should use it to synchronize state across the various folks in the cryptographic group and all the sort of benefits of mls however if you don't have mls you need to kind of fake something that looks a bit like it out of today's double ratchet and sort of linearized matrix stuff so we've been trying to glue together two pretty different architectures with a transition path between the two so we published that back in Prague in November in draft rosten mini protocol and in theory gets best to both worlds the layering does end up being a bit complex though and so for the last couple of weeks we've discovered that wire have done an entirely new draft which we are now trying to merge back together yay team work so to solve today's dma challenges meanwhile whilst we go through this wonderful process with itf we've also just been using plain old matrix so what comes next i've no idea honestly no idea what happens come much we'll see what dma api's meta ships on march the 7th as i said i'm not allowed to steal their fund on that looks as if we may be in the first organization element to actually implement against them so whatever happens hopefully it will involve matrix one way or another but that is the shape of dma things to come and i don't know why i was speaking so fast but apparently i've got two and a half minutes left have i actually finished early for the first time ever in 10 years of post-in thank you so just to remind you we need help friends do not let their friends use proprietary chat services if you benefit commercially from matrix and you want us to continue to exist please support the foundation use the qr code become a member run a server or buy an enterprise one from element build bridges and bots on your services build your amazing cool new project on matrix because tragically we're not going to be doing any fancy vr on matrix or midi on matrix or carry a pigeon over matrix or whatever it might happen to be you have to build your pigeon teleport to yourselves from now on but hopefully we've inspired you enough to do so follow us on mastodon or indeed blue sky or many many other things and spread the words thank you very much questions we have a question thanks for the talk what's the status of specifying the export import format for a matrix servers we can actually back up matrix and backing up postgres or whatever data is under it i didn't quite catch that was the question of speccing the server to server api to make it easy to right now a matrix server be it conduit or synapse or whatever yeah all the data in some data storage right if you want to back up a server okay sorry i get the question now so the question is data portability between home servers so you can migrate from synapse to dendrite or dendrite to conduit or whatever so there is deliberately not an msc for defining that right now because what we're trying to do was to do account portability because if you have switched out your matrix id's for public keys and you define either i guess either the client or perhaps the server gets to define the home of the account then the act of migrating yourself from synapse to dendrite would be to basically do an account port a bit like on gsm to switch where that public key resides so rather than having an export format and a great big wadge of jason or a kind of gdpr desar style thing instead the protocol itself does what it does best replicating data between different servers and therefore you wouldn't need an interchange format now this has some minor problems first of all as you just heard we've had to stop working on it and secondly it doesn't solve the gdpr desar use case where you need to have the data check out functionality at the moment synapse just does a very blunt way of doing that well there is a separate tool i forget what that expires exports the data in a huge indigestible blob of jason so i think it would be a useful thing to have it's not something that we're working on at the moment but if anybody in the room would like to write an msc for expressing a desar format which could also potentially be used as a quick fix for data portability between implementations that would be really cool and i'm sorry that in this instance perfect has been the enemy of good and that we invested the time that should have been spent doing that in doing account portability rather than desar tool excellent question anybody getting this per call uh do the nice video call with everybody joining that you did like few minutes ago uh is there any network optimization where like the clients were talking to each other or they were all going to the cloud and back just just thinking if you that was something you fought through now the acoustic in here is terrible i don't think how you've been hearing me i sorry i didn't catch that um about the video call where everybody joined yeah okay um we were just like considering if that there was any kind of optimization for limiting the bandwidth to the internet or there was any sort of right to pier okay it's bandwidth control for element cool okay so at the moment um the life care sfu has actually got really good um uh bandwidth estimation built into it so that adapts quite aggressively to your actual network conditions you saw how little i was using and critically it renegotiates between different thumbnails and if you scroll the thumbnails outside they disappear if as far as i know it should be pretty easy to also put additional constraints either on the client or on the server side to say hey never give me more than 320 by 240 will never give me more than 64k in that all of that was going bar in sfu on the server side so there was nothing happening peer to peer we still have peer to peer matrix for doing full mesh sorry it's more full mesh video is still a thing but if you wanted to scale to an entire room like this then yeah you need to have this like the forwarding unit um to go and bounce it around the place and i can hear you so much better without the microphone um any other questions i remember that back in the days you started to work on matrix because you had to work on rcs and it was crap and now rcs is like become a reality with google messages uh are you are you planning to make something interoperable interoperable with this or uh you just try to put it away it is so annoying to stand on stage and have to say that unfortunately we have nda's which mean that we can't talk about anything to do with that right now that's fine i tried so first of all thank you for keeping up all the good work for the dma stuff i think a lot of people will profit from that eventually without even knowing like who actually did that so thank you for that um i could i should point out that the dma stuff is all amondine's full she has the right angst and is willing to go to brussels and talk to people with the right angst whereas i just came in at the last minute and said oh brilliant let's play with double ratchets so but either way i'm glad that honestly we were able collectively to shift it forward my actual question would be to matrix 2.0 is there like a concrete roadmap how the roll out of matrix 2.0 will eventually happen and how backwards compatibility compatibility with for example legacy sso login and will element x support normal swing eventually for the roll off or something like that so i got the first half of that um and so a roadmap for matrix 2.0 is really land the remaining things as rapidly as we can it's very hard to predict the pacing of that because it depends entirely on how it's funded and uh no the reason it's not going as fast as we would like is that often we end up doing completely other work like somebody might turn up and say look we need the best screen reader support in element web 9 to man at which point the jsstk and you know other folks who might be working on the lower levels of element web end up doing accessibility which is great but it can completely starve out the lower level things and so work that might have happened you know next month finds itself shifted about six months because everybody was committed to go and you know do some other requirement so i'm afraid we don't publish a roadmap on it other than we'll do it as quick as we can i didn't catch the second half pack what's compatibility during the roll out for example will element x support legacy home servers that don't have sliding sync for example no no way it's um hard enough to make element x as um snappy as it is without also supporting the legacy authentication or the legacy sync and frankly it's also a sort of mechanism to try to get everybody to speak the brave new apis um so yeah we are not going to see legacy support and there at all instead we'll just optimize to make the matrix 2.0 spec stuff um as effective as possible thank you sorry going once anyway questions we haven't seen please wave your hand ah there hi so thank you for great talking for all your work especially on the dma side second that uh when it comes to dma the gatekeepers will they scope dma access to eu uses or how will that work that is precisely the sort of thing that if i gave you the answer to or my guests at the answer to would get me sued by method for breaking an nda so i don't know i'm afraid but they should be um announcing it in the coming weeks because obviously they need to go live on march the seventh and they need to try to explain to the world why they have um upheld the regulation in the way that they have and honestly i don't know if the answer i mean the the builds which we've been working with are um sort of coming down to the line they're all full of lips and text and they haven't been internationalized and the ui is very clearly still in flux so that's what i mean when i say i don't know we'll see it in the next couple of weeks right any last ones oh over there so if i understand correctly uh matrix 2.0 will require multiple services alongside synapse uh for sliding sync for example uh do you have a plan to provide the software distribution that combines all the needed uh all the needs the services thank you okay i think i caught that which is is there going to be a distribution that bundles together matrix off service and sliding sync alongside um synapse um so in the long term we want to have it natively implemented on both matrix off service is designed to be embedded as a rust module inside the python sort of host of synapse and likewise sliding sync eventually i hope will end up as a native module of some kind there too in terms of distributions um there are various options already so element provides its element server suite um supported distribution which is the sort of thing that we try to persuade governments and big enterprises to use there is also um slavis matrix docker ansible deploy ansible playbooks which again gathers it all up and runs it system d services um and i'm sure that there are other like um helm charts out there from the community there are also helm charts for bundles messenger um published on open code for the german public sector as well as ones for open desk which is the digital sovereign workspace there so there are a lot of options out there obviously with my element CEO hat on i really hope that people might actually buy the one from us so that we can keep paying the salary of people to build the underlying technology but um you can also go wild with any of the other distributions the whole thing is starting to feel a bit like linux honestly with different distros done by different people with different licensing and mentalities which i guess makes us red hat on the element side and i have 16 seconds left for any final final questions in which case i am actually going to finish early thank you very much yeah thank you very much post in wants to say also thank you to you with some sweet calories