Follow

Instead of servers it'd be nice if software was and

Not only should we not ve reliant kn centralized corporate hosting, we should be able to just use whatever devices we have on hand without extra server maintenance.

@mauve #1 reason i want p2p: i wanna make networked apps that i don't have to worry about ever going down due to cloud BS :p

Agreed. The only thing holding us back is online persistence. I've always felt that server-based networks represent a transition phase until the telcos allow us to run persistent secure servers on edge node devices. I think that will only happen once IPv6 is the baseline - and/or we do away with certs that are tied to domain names (and by extension persistent IP addresses). All of these things are happening, but there are a lot of infrastructure and business models that need to change before they're 'normal'.

@mauve I think the proliferation of NAT makes that harder and harder.

@skryking Yeah NAT can be a pain. Have you been keeping up with some of the latest p2p networking stacka that are tackling it? Hyperswarm for example has great hole punching capabilities using DHT peers and IIRC they have a built in relaying thing for peers that can't ve hole punched. Works oretty quickly and reliably too. Only dowbside is it has a strong dependency on node.js so it's hard to embed in non-js apps.

@mauve yeah unfortunately that still depends on your traffic having to be routed through someone else super-node. Makes the network become much more of a branch and leaf system with pints of failure that can effect larger chunks of the network. I really do need to get into the code and play more.

@skryking Yeah big mood. At least these fays relay discovery is automatic and nodes automatically advertise as relays if they have a stable IP so it's a bit less centralized. IPv6 would be v convenient but it's still unavailable to so many regions 💀

@skryking really it's becoming less and less of a burden... yggdrasil, tailscale, zerotier, nebula, veilid, and other projects/products make NAT traversal easier and more transparent than ever
@mauve

@mauve have you ever tried to write an application that works like this?

I can tell you from experience, it's practically impossible.

everyone is in ipv4 NAT jail
ipv6 when???
if your app doesn't have a URL, who's going to use it? ( network effect of established platforms )

I agree that this is how things should be! But its unclear to me how to get there. Or even where to start.

IMO we have to start with self-hosting, then move to community/group hosting, then try to use those trusted community-run publicly dial-able server constellations as a pseudo-standard for how to bootstrap more P2P oriented apps. But I think it still has to load in the web browser the whole time. Any sort of publishing use case will have to be compatible w/ unmodified browser.

But hey, with the new WebTransport API, that's going to get a lot less painful soon!!

@forestjohnson I've been making p2p apps for years and have done consulting for companies that made their own. :)

P2P in web browsers is defs a nono since the browsers security model and browser vendors won't allow it any time soon.

I defs don't mean to say that people shouldn't self host, it's just that that's not where we should stop.

More unmodified browsers these days are getting support for loading sites from IPFS for example.

For NAT stuff holepunch.to and socketsupply.co are good.

P2P in web browsers is defs a nono since the browsers security model and browser vendors won’t allow it any time soon.

@mauve @forestjohnson actually that’s changing, webtransport with the serverCertificateHashes option makes connecting from a secure context to an ip address that doesn’t have a real https cert possible!

@em @forestjohnson Yeah webtransport is defs going to make it easier for browsers to connect to dhts and "native" networks. I worry that it still doesn't give us enough however.

It doesn't (yet?) give a way to host servers listening on incoming connections. It can't do UPNP and other negotiations with the router, and it can't do multicast UDP for local peer discovery.

Still a good step though!

@mauve @forestjohnson right, you’d need to relay webrtc signaling messages over those webtransport connections to support connections in to the browser

@em @forestjohnson Yeah! FWIW the libp2p ecosystem seems to be abstracting over all these details so apps can focus on "dialing" into peers based on public key, and it figures out the transport and relaying.

@mauve @forestjohnson the libp2p ecosystem is a mess with incorrect docs and half-working implementations

@teal @em @mauve

At least last time I was looking at this, the libp2p libraries worked OK for apps, just not for browsers / interoperability w/ browser stuff.

I think a large part of the problem is that what libp2p is trying to do is kinda impossible, the image that they "sell" where it "just works" with pure p2p and no server, is and always will be unrealistic. Because of the "original sin" of ipv4 and NAT, there will always be a need for a server / rendezvous point.

I still use the UPnP client from libp2p, I its really good IMO. git.sequentialread.com/forest/

I think webrtc is the way to go for publishing cuz it supports browsers, I like the Pion webrtc libraries cuz I can fairly easily get server<->server, server<->browser, and browser<->browser, working, and it has a feature where you only have to open / forward one UDP port on the server so it makes it easier to host. WebTorrent is also pretty cool.

@forestjohnson @teal @em Big mood. The hyper-modularity and dynamic nature of libp2p and ipfs makes things hard. I generally stick ti reading source code when I want to know what's going on.

Regarding centralization, these days dht nodes can be used for rendevous and packet forwarding which is pretty handy. Would be cool if there was a webrtc enabled dht that could do stun and turn on any node with a stable ip.

@mauve Are you familiar with #Veilid ?

I think it's a new app platform that might tick some of your boxes.

@sundew Yes! Pretty high on my todo list. Main thing that's been holding me back is figuring out how to get it into url formats to retrieve content in my p2p browser @agregore

The system seems pretty neat tho.

Sign in to participate in the conversation
Mauvestodon

Escape ship from centralized social media run by Mauve.