Live data from Hacker News

P2P Matrix

matrix.org

101–110 of 178 posts

Re: P2P Matrix

#101

How does Matrix achieve linearizability in group chat / federation? I'm curious about what eng tradeoffs and so on have been made and so on. Imo zookeeper type system with an eventual transition to async bft consensus is the best practical approach today. Node join / leave etc is too hard a problem right now in non centrally managed p2p topologies.

The most interesting bit of Matrix academically is the merge resolution algorithm used to converge the room DAGs in a BFT manner. (It's not really consensus, given it only cares about being consistent locally). https://matrix.org/docs/guides/implementing-stateres is a good guide, or failing that https://matrix.uhoreg.ca/stateres/reloaded.html if you speak Haskell, https://github.com/matrix-org/matrix-doc/blob/erikj/state_re... for the original spec proposal, or https://matrix.org/docs/spec/rooms/v2 for the terse formal spec itself.

Edit: it's not "centralisation" :|

Re: P2P Matrix

#102

Just wanted to say thanks. I've been running my own homeserver for a little over two years now without any real issue. I somehow managed to convince 4 of my friends to use Riot and it's been great. We were originally using Group Me. My friends are not tech savvy and couldn't care less about software freedom or privacy, but I was able to convince them to switch by luring them with the fact that they could post unlimit…

thanks :) agreed that we need to find a better way of managing config upgrades though. YAML is great, but preserving customisations over config upgrades is impossible(?)

Yeah, I mean it’s not the end of the world. It’s probably not worth adding backwards compatibility for config files yet - not while development is so rapid. It would just add maintenance baggage.

Re: P2P Matrix

#103

Earlier quoted context omitted.

We're not aware of any performance problems on the matrix.org server right now (we had a breakthrough in performance last week), so I think something else is going wrong. What clients were you using?

I was using web and he was using the android client. Things started working when he switched to web too.

precisely which android client was he using? (and can he submit a bug report from it?)

My guess is that you were trying to do new-style verification, which requires RiotX, which is shortly going to replace the old Riot Android client.

Re: P2P Matrix

#104

Earlier quoted context omitted.

I was using web and he was using the android client. Things started working when he switched to web too.

precisely which android client was he using? (and can he submit a bug report from it?) My guess is that you were trying to do new-style verification, which requires RiotX, which is shortly going to replace the old Riot Android client.

I think he was using the old client, yes. I will ask him to file a report, I tried RiotX and it seems to work well.

Re: P2P Matrix

#105

Earlier quoted context omitted.

I am talking about the media store, the subsystem of the Matrix homeserver that stores all media that is uploaded.

Ah, yeah, that's less straightforward. checks the docs Looks like you could point it at IPFS "MFS" mount (Mutable File System) instead of whatever directory it's using now for its normal local storage media store (which I assume exists?), and that'd do the trick. Files stored in IPFS (so mirrorable through that, or whatever it is that you've got in mind) but appearing as ordinary files with normal names, so the norma…

Have you looked at git-annex recently?

https://git-annex.branchable.com/special_remotes/ipfs/

It takes a little bit to work out why you want it and why its so much better in that unixy way many of us insist on vs git-lfs (supporting ipfs should be a clue there).

*as a warning some of the defaults in last years git-annex 7 versions were aggressively annexing files in the git archives but fixed now.

Re: P2P Matrix

#106

How does Matrix achieve linearizability in group chat / federation? I'm curious about what eng tradeoffs and so on have been made and so on. Imo zookeeper type system with an eventual transition to async bft consensus is the best practical approach today. Node join / leave etc is too hard a problem right now in non centrally managed p2p topologies.

The most interesting bit of Matrix academically is the merge resolution algorithm used to converge the room DAGs in a BFT manner. (It's not really consensus, given it only cares about being consistent locally). https://matrix.org/docs/guides/implementing-stateres is a good guide, or failing that https://matrix.uhoreg.ca/stateres/reloaded.html if you speak Haskell, https://github.com/matrix-org/matrix-doc/blob/erikj/s…

I hope you reconsider this design decision.

What is the value in federation if people can come away with different opinions as to what was said in a conversation? Eg. for example a $$ contract negotiation and an attacker using something like a msg replay attack that gives different sides different views of what the contract value is.

Edit: Or does federation mean proxying & replication in this case?

Re: P2P Matrix

#107

Earlier quoted context omitted.

Will that fix things? Apparently, when I tried to DM my friend and invited him to a DM, the room should have been his username but was "empty room" instead.

It may. Riot can be a bit of a pain to get the initial handshake going. If all else fails just keep blowing up the room and retrying until it sticks. I've had to do that before with members of my team.

Are those new issues due to P2P? I've been using riot for some time last year and everything seemed to "just work". Was I lucky, or did it get worse?

Re: P2P Matrix

#108

Just wanted to say thanks. I've been running my own homeserver for a little over two years now without any real issue. I somehow managed to convince 4 of my friends to use Riot and it's been great. We were originally using Group Me. My friends are not tech savvy and couldn't care less about software freedom or privacy, but I was able to convince them to switch by luring them with the fact that they could post unlimit…

> The only thing that annoys me is when you release updates to the default configuration file and I have to manually resolve the differences in the middle of an APT upgrade. That's not a big deal though. Deploying with docker will eliminate this kind of issue.

You have to deploy 3-4 services to run your own with Docker, right? Synapse, Riot, Jitsi, etc?

Re: P2P Matrix

#109

Earlier quoted context omitted.

There are no jurisdictions where all possible information can be shared safely without hiding it. And IMO, software should maintain privacy by default - doing something less private should involve actively opting into that. Matrix, for example, creates e2e encrypted rooms by default, and even for non-e2e rooms, it doesn't announce the contents of the rooms to unrelated servers. If you want to publish the fact that yo…

> There are no jurisdictions where all possible information can be shared safely without hiding it. This is not what I am saying. What I am saying is that there are plenty of people in countries doing illegal-on-paper things but are largely ignored by their Governments. No one in Brazil is worried about torrenting, even though it is not legal. No one connecting to a Swedish VPN provider worries much about getting cop…

The point I'm trying to argue, poorly, is that implementing a feature where you can right-click and explicitly choose to download something a bit faster is... probably not worth the sheer amount of arguing for "integrate IPFS into Matrix" that I've seen at every turn, for the past few years. People largely seem to want IPFS because IPFS is their pet project, not for any particular edge that it'll give Matrix, and alternative solutions are dismissed out of hand.

Even before p2p Matrix was announced, people turned up in #matrix-dev every week and argued that Matrix should replace its existing, functional file sharing system with IPFS, but could never come up with a reason to put in the work.

Sharing multi-gigabyte files with groups of people in a public way is, yes, maybe something some people do, but if IPFS was uniquely suited for this and the integrated system was deficient, wouldn't people be posting IPFS links in rooms all the time right now, and be able to talk about why they're doing this? Then it'd be a lot clearer that this is a thing people actually want to do and maybe setting up a button to do it in fewer clicks would be worth it.

Re: P2P Matrix

#110

Earlier quoted context omitted.

IPFS doesn't help - you still need a store-and-forward architecture for messaging, so you might as well use that for images too. IPFS is not a store-and-forward architecture; a file does not get automatically stored by the system, so when the sender disconnects, the file is no longer accessible. There's "solutions" to this, like Filecoin, but nobody wants folks to be paying to upload images. Or, in other words - the…

My idea was more in that every p2p node of Matrix can also be a IPFS server, and be used to pin all of your own media + a small cache of your contacts/group media. You wouldn't need to save all of the media your homeserver is dealing with, but you still could be reasonably sure that your node would be able to find all media you are supposed to access. Given that the post talks about libp2p and how libp2p's main drive…

> + a small cache of your contacts/group media

This idea always sounds interesting and dangerous to me. There's a lot of content you really don't want to be a provider for for legal and other reasons. Caching it for yourself is one thing - public distribution is another.

Post reply on HN