Live data from Hacker News

P2P Matrix

matrix.org

71–80 of 178 posts

Re: P2P Matrix

#71

Does anyone have a guide/instructions for self-hosting a Matrix server? I'm not sure which server to run, I heard Synapse is a bit heavy and there's a lighter Rust alternative? Which one should I use? Is it okay to run it at home, or will I lose messages on downtime? I assume other hosts will retry when my connection is back up?

I used this Ansible playbook [1] on a Digital Ocean droplet. Very easy to configure, fully-featured.

[1] https://github.com/spantaleev/matrix-docker-ansible-deploy

Re: P2P Matrix

#72
This is the dream. From the end user's perspective there has never been a good reason to have a centralized server between them and the person they want to talk to. If Matrix can pull this off it has the potential to go way beyond chat. I will be following them much more closely following this announcement.

Re: P2P Matrix

#73
post #65

Earlier quoted context omitted.

You don't lose any messages with downtime if others in the group are on different home servers

That sounds great, thanks. Unfortunately I just tried to use Riot.im on the default server to talk to a friend (also on the default server), and my messages aren't getting to him or his to me, so it looks like Matrix still has some way to go.

Use Mozilla's homeserver instead. A far better experience, presumably because it runs on New Vector's modular.im infra. Supports SSO (can even sign in with your Firefox account).

Re: P2P Matrix

#74

Earlier quoted context omitted.

Sure, if IPFS gets that feature, maybe it's worth it. (Although maybe not - at that point IPFS is just an overweight tooling for downloading files from a list of known peers block by block.) I wouldn't hold my breath though.

> at that point IPFS is just an overweight tooling... Only if you assume that your only use case is to have private communications. There are a lot of use cases and jurisdictions where sharing files do not have to be private and would benefit a lot from having redundant nodes doing the distribution. The tooling is already there, why not benefit from it?

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 you're downloading a file to the world, you should have to actively opt into doing so, every time - you should treat this like reporting your downloads to your Government voluntarily.

Re: P2P Matrix

#75

Earlier quoted context omitted.

That sounds great, thanks. Unfortunately I just tried to use Riot.im on the default server to talk to a friend (also on the default server), and my messages aren't getting to him or his to me, so it looks like Matrix still has some way to go.

Use Mozilla's homeserver instead. A far better experience, presumably because it runs on New Vector's modular.im infra. Supports SSO (can even sign in with your Firefox account).

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.

Re: P2P Matrix

#76

Earlier quoted context omitted.

The contact social graph in signal is stored inside of SGX using a service called contact discovery. Signal is attempting to design the system such that Signal can never know whose contacts are in your phone as a service provider. They deal with side-channel leakage of lookups from the contact DB into the enclave using a technique called linear scan which is a constant-time bitwise XOR operation on every contact. Thi…

> If you still don't think what Signal is doing is enough, you can run your own signal (or matrix) server, but then you are running a very, very valuable server from a graph analysis perspective. ...which is precisely why we’re working on P2P matrix. No servers; nowhere for metadata to accumulate (other than the clients, of course).

I understand the goal. I don't understand how a peer P2P system is going to route large groups at scale. I don't think phones are powerful enough to deal with the kinds of routing you need for large scale comms services.

In general, as the number of nodes in a comms graph increases, the overhead of synchronizing the comms between those nodes increases to the point that noise dominates signal, which is why most comms networks end up being a hub and spoke system instead of a mesh. I think that mesh can potentially work in the ~10k node range, but I don't think you can have multi-million node mesh networks, which is what a P2P system will need to function at scale.

I would be thrilled to be proven wrong, but my knowledge of networking suggests that in a high node count network, the overhead of synchronizing node state dominates network traffic.

Edit: In summary, I think that in most big comms networks, the endpoints do the encryption and the servers do the heavy-lifting of routing. Again, I would love to be proven wrong.

Edit 2: Just to be clear, I am excited for the way matrix pushes the envelope on comms tech. I think it's cool to see active development in these systems wherever it comes from. My caution is only about what I've seen in pure mesh-networking systems (and the dangers of self-hosted systems becoming the very centralized systems users thought they were escaping from).

Re: P2P Matrix

#77

Earlier quoted context omitted.

Use Mozilla's homeserver instead. A far better experience, presumably because it runs on New Vector's modular.im infra. Supports SSO (can even sign in with your Firefox account).

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.

Re: P2P Matrix

#78
A big question that I don't see addressed in the text or asked here yet: why does this require the user to not be in private browsing mode? Some necessary API that's not available in incognito mode? Is the restriction temporary?

Re: P2P Matrix

#79

Hi @Arathorn, any work on using IPFS as the media store? It seems like this would be also a really good project for Matrix and doubly so for p2p matrix...

I thought part of the point of how IPFS is designed is that you don't need to "implement" it, you just ask for a hash (file) in the IPFS mount and it goes and grabs it if it's not already there? Should just be a matter of handling IPFS URLs correctly. Which, I guess that's something to implement, kinda, though if you already have a handler for 'ipfs://' and Matrix passes off a click on such a URL to your OS to handle…

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

Re: P2P Matrix

#80
post #78

A big question that I don't see addressed in the text or asked here yet: why does this require the user to not be in private browsing mode? Some necessary API that's not available in incognito mode? Is the restriction temporary?

I'm not a web dev, but I'd guess this is because the implementation relies on browser storage, which is removed when a private browsing session ends. So possibly it would work, but only until the tab / window was closed?
Post reply on HN