Live data from Hacker News

P2P Matrix

matrix.org

111–120 of 178 posts

Re: P2P Matrix

#111

Earlier quoted context omitted.

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…

So it's true that P2P Matrix is currently full mesh (which is why it's staggering a bit as everyone trying it from HN piles on). However, you can absolutely do better than full mesh without going straight back to hub-and-spoke: you can use spanning trees (like Yggdrasil), or gossiped segmentation as libp2p's Gossipsub does ( https://blog.ipfs.io/2020-05-20-gossipsub-v1.1 ). Also, you don't need to scale larger than t…

The problem with hub and spoke is that the hubs hold the social graph and then become the target for censorship. I don't think there are any techniques employed by Matrix to mitigate that threat at this time (please correct me if I'm wrong).

In short, if you have a small network (under 10k nodes), I think P2P can work, but for networks of large scale (>10k nodes) I think you need hub and spoke, at which point the routing nodes in the center are the lynchpin. You can use some kind of mixnet tech to try to get around this, but that increases latency and computational overhead, thus lowering throughput. You can go the Signal route and throw the graph in an enclave, but there's still side-channel analysis (which is the thing that mixnets are trying to deal with, albeit I can't comment on their efficacy). Harry over at Nym has some cool ideas here.

I am not sure that spanning trees or gossip protocols solve the problem I'm describing, but, if they do, I'd appreciate if you could elucidate further.

Edit: Yes, I agree that N to N routing networks don't scale well. I think a K of N broadcast network can scale, but it's a tricky UX tradeoff.

Re: P2P Matrix

#112

I think Riot should change their name. It's horribly insensitive to have a project named like that given the current situation. Please show some respect for the pain and loss of so many real-world communities.

You might also have missed the fact that Riot has existed since 2016: https://en.wikipedia.org/wiki/Riot.im

Otherwise, I somewhat agree that my first reaction to the name when introduced to it back then was "whoa -- it sounds a bit violent".

Re: P2P Matrix

#113
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?

Empirically service workers don't seem to work in private browsing mode, and the demo relies on running Dendrite as a service worker. > In Firefox, Service Worker APIs are also hidden and cannot be used when the user is in private browsing mode. Says https://developer.mozilla.org/en-US/docs/Web/API/Service_Wor...

Doesn't any difference then become a way for websites to detect if you're in incognito, which is something browsers have been fighting back and forth every version?

Re: P2P Matrix

#114

I think someone needs to look into the onboarding process. My experience so far: 1: Clicked on "Try Now". 2: Was greeted with a blob of text. Spotted "The easiest way to try Matrix is to use the Riot Web ...". 3: Clicked on "Riot Web" because that is a link. 4: Got transferred to a different website with a lot of buttons on it. 5: Clicked on the green "Get started button" 6: Got transferred to another page with a bun…

I'm not sure whether you are talking about the regular Matrix network on purpose, or not.

Regarding the p2p app (https://p2p.riot.im), yeah, that's a proof-of-concept they bolted onto an existing client. They could have adjusted the login page.

I need to click "Create an account" for it to work, give or take one page refresh. Then I can open the room directory and pick a room.

However, I tend to like some of that hand-holding. Plus, when someone joins a chat system, they're generally introduced to it by acquaintances that already use it, so the next onboardings are easier. Not saying it shouldn't be improved, of course.

Re: P2P Matrix

#115

Earlier quoted context omitted.

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?

Federation is sending events between servers.

You could not simply replay a message as events, which contain messages, are:

* Signed by the sending server * Reference one or more parent events in the DAG * Have an event ID which corresponds to the hash of the entire event

So simply replaying a transaction from one server to another will result in the receiving server either dropping the request (but still returning a 200 for idempotency) or soft-faoling the event, in which the server will accept the event, but realixe it's fishy and not relay to clients.

Re: P2P Matrix

#116
post #90

Earlier quoted context omitted.

Depends on how 'casual', it's definitely usable and works - but there's still some effort required to figure things out. I've found the docs are generally pretty good and the community is helpful so if you're interested in playing with it it's worth it.

What is Urbit for? I mean i never understood whats it's real use. From what i've read i imagine it as some new stack that replaces networking and servers but then i found out that you have to buy namespaces that are finite? Why?

I actually don't think it's that hard to grasp, but people often don't explain it very clearly.

It's a from the ground up design for a serverless p2p 'overlay' operating system.

Overlay just means that you run an Urbit VM on top of a mac/linux OS and people can write applications for your Urbit VM. Your Urbit VM communicates with other Urbit VMs in such a way that the application design is p2p by default so the complexity of this is hidden from the user. This means in the future someone can start up their urbit node (which will just look like another application) and use the apps in it without needing any central servers.

Right now the main app in their release is chat, they also have a link aggregator app too.

The reason for the finite user IDs is because the founder believed that one reason for service centralization on the existing internet was the spam problem. When IDs are free people can make tons of them and spam others, complex algorithms via centralized services are required to fight this which leads to a client/server model and a handful of enormous corporations powering the services.

When you have a small cost on the ID you make it economically infeasible to spam people, you also make it easier to stop IDs from abusing the network (and other people). It’s also a way to incentivize people to run infrastructure nodes in the network.

The other interesting details are that it's written in its own functional language on top of its own functional like assembly. This has benefits around correctness that I don't totally understand - but the idea is if you were to redesign a modern computing system from first principles taking everything learned over the last 50 years how would you do it?

Regular users are never going to run their own linux servers to host their own applications on the modern internet, but regular users might use an application that is p2p by default and does the things they want. This leads to a better decentralized model at the application level that is not ad supported.

Ultimately it's out of the box private servers that you can run locally and easily share data between securely, without the need for a centralized company in the middle.

The project makes me think of Alan Kay when he talks about big ideas and 'having the chops' to implement them. It's crazy to throw away most of modern computing and build a functional OS from scratch in a radical kind of way, it's crazy for the product to have made progress since something like 2002 (picked up a lot when they got funding more recently) rather than fizzling out or being vaporware. I'm amazed that they have real software shipping that works, but they do. It's a project driven by a clear vision of how computing can be better than it is, which I think is an exciting thing.

Re: P2P Matrix

#117

Earlier quoted context omitted.

> 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…

The good thing with Matrix is that it's room-based, and I haven't really seen rooms with over 10k users. Presumably most of these nodes would be offline most of the time.

I can easily see routing being delegated to more powerful homeservers. That said, you do not need perfect routing to be better than hub and spoke at using the network effectively, and it seems to be what most current mesh networks aim for.

Re: P2P Matrix

#118

I think Riot should change their name. It's horribly insensitive to have a project named like that given the current situation. Please show some respect for the pain and loss of so many real-world communities.

You might also have missed the fact that Riot has existed since 2016: https://en.wikipedia.org/wiki/Riot.im Otherwise, I somewhat agree that my first reaction to the name when introduced to it back then was "whoa -- it sounds a bit violent".

Well, it's 2020 right now. Some things that used to be considered acceptable for the wrong reasons are no longer acceptable today. I do think that the project should take a clear stance against this horrible violence and racism, and show that they actually care about their potential users-- and not just about "cool tech", whatever that might mean.

Re: P2P Matrix

#119
post #85

I think Riot should change their name. It's horribly insensitive to have a project named like that given the current situation. Please show some respect for the pain and loss of so many real-world communities.

Should the very talented and accomplished progressive rock band Isis change their name? I don’t think so.

Um, they did exactly that, in 2018. And it was the right decision to make.

Re: P2P Matrix

#120

Earlier quoted context omitted.

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?

P2P is an entirely separate codebase & deployment. The issues here sound like a bug in the legacy Riot/Android app which is about to be replaced by RiotX. In general things have been getting progressively better.
Post reply on HN