[HN Gopher] The problem with federated web apps ___________________________________________________________________ The problem with federated web apps Author : hlandau Score : 63 points Date : 2023-07-01 12:06 UTC (10 hours ago) (HTM) web link (www.devever.net) (TXT) w3m dump (www.devever.net) | revskill wrote: | As i see, the fediverse was born to fight with monopoly systems ? | ilaksh wrote: | I think we could support decentralized protocols like IPFS or | Freenet 2.0 at the browser level. Or even perhaps build in some | type of UDP that could be easily enabled or a separate download. | | I assume these ideas are blocked partly because companies like | Google that have influence over browser features very much do not | want a decentralized web. | | Tying web pages to specific servers is also maybe something that | deep down people won't or can't accept or understand about | changing. | | Maybe part of it is that it's hard to make p2p protocols work | well and so people just aren't willing to try to tackle that and | the challenge of getting that technology into browsers at the | same time. | gochi wrote: | This doesn't really solve the problem, as it's incredibly easy | to get IPFS support in your browser right now with a simple | extension. No tinkering necessary. Yet IPFS is still rarely | used, even within highly tech-literate communities. | Pannoniae wrote: | I think the main problem is the cognitive and the technical | overhead. Most users just want to use the site, they don't care | about the underlying infrastructure. Federated services always | have a cognitive overhead (where do I register? who do I follow) | which centralised services don't have. | | The real solution would be a regular, centralised service run by | a non-profit. | David_SQOX wrote: | Any amount of the use of words like "instance" or "federated" | just confuse people. "Cognitive overhead" is the perfect phrase | for this issue. | | In the RedditAlternatives sub you can find the most hilarious | responses to "I don't understand lemmy, it's way too | complicated!". Quickly someone will respond with "It's not | complicated at all..." then proceeds to type out a paragraph of | instructions and FAQs without a hint of irony. | | Like you said, users just want to hit the ground running. They | don't care if your using php/asp/vbb/[insert a multitude of | framework names here]..decentralized, partially | centralized...they just don't want to know. | | For the record I do like Lemmy, but I'm a sucker for novel | implementations. | kelvinjps wrote: | I would like to see a p2p architecture.Something that relies more | on the clients,like how bittorent and rss work | rurtrack wrote: | Why pretend request headers don't exist? Any app can send a | request header to the same URL and have the response tailored, or | am I missing something here? | ape4 wrote: | mail is federated, but web mail apps seem ok | syllablehq wrote: | I've had the opinion for years that any federated social media | platform should fallback to email as a default. This helps | solve the problem of bootstrapping an audience. You should be | able to "tweet" at your friends by using their emails. It | should show up on the public record as an unclaimed account. | | That account could authenticate at any time through their email | to claim it. You could send a "tweet" by just sending an email | to post@this-new-platform.com. [follow-up verification link can | be sent to approve with one click to prove email.] | | I don't understand how this idea isn't more obvious to all | these new platforms. We need to lower barriers to entry to | decentralization. | Brighthurst wrote: | That's a good point and it illustrates what the solution is | too. Email, is a series of protocols: POP3, SMTP and IMAP; thus | they don't suffer issues with HTTP (a different protocol) that | this article describes. The Web mail apps are just a client to | serve your email protocol data to you. While the web apps do | suffer from the HTTP issues, you at least have the freedom to | switch your clients, and even the servers of your email data. | notatoad wrote: | webmail doesn't tend to have the problem of sharing pieces of | content via hyperlink, which is the problem the author is | talking about. | | fediverse apps do fine as clients to access pieces of content | through their own dedicated communication channels, in the same | way webmail clients do. | gsatic wrote: | Mail breaks down as soon as everyone starts broadcasting to | everyone else. | | Also the reason why ppl behind mail and chat never saw social | media coming. Social media can't work on top of those protocols | so they thought it would fail. | | Nor did anyone imagine that everyone has such a desperate | craving for Attention or this Need to broadcast their thoughts | to the entire planet every day. Its still not clear why this | even has any value. Its sort of like trying to build a brain | where every neuron has broadcast capability to every other | neurons. Our brains would just fry if such capability existed. | There would be so much noise nothing would make sense. | | But ppl have decided this is what they need to build to escape | Google and Facebook or whoever. And the whole story doesn't | really make too much sense. | platz wrote: | confused how the author is defining 'application'. | | Is it a server-side or a client-side entity? Seems to use it | interchangeably at different points in the text, perhaps | purposefully, perhaps not. Or if there is another property that | that defines it as an "Application", what is that? (and how is | that different from a 'Resource') | tedunangst wrote: | Mailing list posts show up on HN all the time, but I've never | seen anyone complain that they can't reply right there in the | browser. | forgotmypw17 wrote: | I don't think it's as huge of a problem as this article claims | because: | | a) you can request the same resource from multiple servers | | b) it is not just the address bar which can control the server | it's requested from -- servers can link to each other. | | Of course, if one server is unavailable, the browser may not know | to try another... but that's a small improvement which can be | added. | lolinder wrote: | I don't think that the author explained it very well, but the | difficulty with (a) is that currently, when you follow a | fediverse link, it will open in whatever server the original | poster uses, rather than your own server. Odds are you aren't | logged into the same server that they were, so that leaves you | unable to interact until you jump over to your own server and | access the same document. | | This can be remediated somewhat within fediverse apps, because | they can detect cross-server links and convert them into | internal links if possible. But that doesn't help following a | link from HN. | | There might be a browser extension already to solve this | problem--it would need to know which instances your server | federates with and how to translate links to those instances | into links to your server. | INTPenis wrote: | I might be misunderstanding OP here but that's not how I see | it. In fact, the Mastodon web UI frequently shows profiles | and posts from other servers on your own "home" server, in | your own format. All example.org (your home) does is request | JSON from eample.com (the remote), and displays it in | whatever format fits your home server. | | And it seems to me that it uses the first option that the | author suggests, being example.org/user@example.com/thread | lolinder wrote: | That's when you _start_ on example.org. But if I copy and | paste a URL to you and you end up on the post on | example.com, the best that Mastodon can do is suggest that | you search for the link on your home instance. | rektide wrote: | Axiom 2a of the web emphasizes this, | | > _a URI will repeatably refer to "the same" thing_ | | And further, | | > _the significance of identity for a given URI is determined | by the person who owns the URI, who first determined what it | points to._ | | Which explicitly goes on to say ownership is not well defined | because different schemes can have different behaviors. | | https://www.w3.org/DesignIssues/Axioms.html#same | | The trick is to actually have clients know & understand where | instead to link people. If a server shuts down how does that | alt-location get persisted & spread? | | Effort has faced headwind, but I also really dig Signed | Exchanges, which let's servers sign the content it sends & then | bundle it together (WebBundles) so other servers can serve it | in a trusted way. But the _browser_ will only trust the content | for 7 days, because as per this article, the dns owner might | change & thats the security compromise. But an app could still | parse & use that content, which makes extra sense now that we | have Certificate Transparency expectations. | basch wrote: | I agree where the author is going. | | A problem with the federation is the combination of the | identification, client, and backend into an instance, yet | depending on the web/nets dns. I'd like to see more of a | separation between the account, client, and data akin to google | reader / third party reader client / rss. Before reader shut | down, you could log into any reader client with your google | account and all your feeds followed. | | A good fediverse client would have separate settings pages for | your accounts, and what you follow. I should be able to share a | link to data that anyone can open in the client of their | choice. | | Another way to solve the authors problem is to make a new | protocol. | Avamander wrote: | > a) you can request the same resource from multiple servers | | Can I? With PeerTube for example it's a massive hit-and-miss. | Many mirros don't have the torrents or vice versa. There's no | reproducible way to mirror/federate YouTube content and so on. | lyu07282 wrote: | The problem is also that federated doesn't really solve the | problem of decentralization and that's the problem we ought to be | solving. I don't want to create an account on the X instance of | the fediverse, I want to create an account on the fediverse. It | should be one big fediverse, which instance I use should be | completely transparent and irrelevant. Coupling accounts to | instances of the federation might be the easy solution, but it | doesn't solve the problem we actually should be solving. This was | already something I disliked about Jabber/XMPP and this was 20 | years ago, we ought to have solved this by now. | ibz wrote: | Nostr solves this. You don't need to "create an account", you | just generate a key pair. That is your account. On what relays | you store your data is orthogonal to this. As long as an event | is signed by your private key, it is your event. | conor- wrote: | I think DIDs[0] are an interesting idea for dealing with the | problem of centralized registration in federated systems. | | It would be great to be able to create one identity that if I | want to leave an instance and bring all my data with me to a | new instance I can do so without friction. That's currently a | big issue I have with Matrix for example -- there's no way | for me to go from @user:matrix.org to @user:myowndomain.com | and have that be the same identity with the same friends | list, etc. | | [0] https://en.wikipedia.org/wiki/Decentralized_identifier | Arathorn wrote: | We're currently working on account portability | (https://github.com/matrix-org/matrix-spec- | proposals/pull/401...) and experimenting with glueing | bluesky style DIDs onto it (so as to provide DMs for | bluesky via Matrix, should they want them) | conor- wrote: | Ah, as usual if there's a complaint there's an open spec | proposal for it. Thanks for sharing! | toyg wrote: | The minute you introduce the concept of "key pair", you've | lost 99% of people. | lyu07282 wrote: | True, but you might be able to store it/hide it away in | some DHT behind a username and passphrase, even that might | not be necessary. You can solve a lot of complexity in the | protocol by good frontend people who understand UX. | | Even Whatsapp is using PKI, its just all hidden away from | the user. | nickorlow wrote: | Yeah, Apple's passkeys is trying to do this too. Their UX | is good but it's still pretty immature | DANmode wrote: | I think this is the decade this problem goes away. | | Of course, the phrase that gains traction won't be | "keypair". | mac-chaffee wrote: | That looks closer to the right solution, but... | | > Remember, your private key is your identity in Nostr, so if | it is compromised you'll lose your followers and will have to | start from scratch rebuilding your identity. | | This is the same gripe I have with home servers on the | fediverse: home servers come and go, and private keys | sometimes need rotating. Making you lose all your friends and | content when that happens is not an acceptable tradeoff. | | I think the solution is entirely separating "identity" from | every single other concern such as security (private keys), | hosting (home servers), and public identity ("display name"). | INTPenis wrote: | Yeah Nostr is cool but like others have pointed out, there's | an even steeper learning curve. And besides that, Nostr | claims to be censorship proof, which sounds cool on the | surface but will inevitably lead to a cesspool of hate and | personal attacks. | mid-kid wrote: | unlike censored platforms like twitter that become a | cesspool of hate and personal attacks. as usual it depends | on who you interact with. | INTPenis wrote: | Twitter has the option to steer the moderation in any | direction they want. | Brighthurst wrote: | Yeah, as far as I can tell, nostr does indeed solve the | issues discussed ITT. I think it stems from the fact that | nostr is a protocol, just like HTTP. So instead of federating | or decentralizing on top of http, we needed a different | protocol all-together | sieabahlpark wrote: | [dead] | imtringued wrote: | Either you control what is being relayed or you don't. The | latter was not very successful (zeronet was a CSAM cesspit). | | If you choose control then you end up with the fediverse, | because there is no such thing as the "one big fediverse" if | every moderator makes different decisions. | [deleted] | mcdonje wrote: | Tim Berners-Lee's Solid project is working on that. Put data in | "pods" that are stored on pod servers, which are federated. You | can self-host. | | It could be a federated layer of identity & personal content | decoupled from social platforms. | | https://solidproject.org/ | jameshart wrote: | > I don't want to create an account on the X instance of the | fediverse, I want to create an account on the fediverse. It | should be one big fediverse | | You keep using the word 'fediverse'. I do not think it means | what you think it means. | | The whole _point_ of a 'fediverse' is that there isn't a | central authority for accounts. That an account on any of the | federated systems is an equal participant in the system. That | spinning up your own federated host to issue accounts is | allowed. | INTPenis wrote: | That'll never happen for two reasons, decentralization means a | user-driven internet. It has to, even if corporations have the | freedom to join, decentralization by default means any private | person can host a part of it. | | And when users host things they give of their own resources to | other users, which means there is trust involved. And whenever | trust is involved we need a better insight into who signs up. | For example; request access with a bio, or a donation. | | The other reason is that what you describe is centralized | authentication, to a decentralized backend, so it defeats the | purpose. Who owns the authentication? | | If we want freedom from a corporate internet, we'll just have | to bite the bullet and accept a certain learning curve. | | Which is also why the centralized corporate services will never | go away, and most likely remain a majority. | nickorlow wrote: | Yeah, I agree it all feels very disconnected. I think this | problem extends to the communities on federated platforms too. | Taking a look at the Reddit like federated alternative (lemmy), | there's multiple instances of the same 'subreddit' on different | servers. Makes it hard for everyone to gather. | | I think federated projects really look at federation as an add | on to their platform, not a core feature. E-Mail did this well | where everything was automatically federated by default (I.e | you can send email from anywhere to anywhere for the most part) | whereas some fediverse software, specifically lemmy, require | that federation be enabled (and I believe you choose to | federate with servers on a per-server basis). | | Where I work we're working on a solution to this where your | identity remains sovereign between servers [1]. We currently | have a Twitter-esque microblogging demo setup [2]. | | [1] https://gitlab.futo.org/polycentric/polycentric | | [2] https://polycentric.io | postpawl wrote: | There's an open issue on Lemmy's GitHub about making it | easier to combine multiple communities on separate instances: | https://github.com/LemmyNet/lemmy/issues/818 | | Seems like something they're thinking about solving. | ktosobcy wrote: | But email is the same as xmpp or DMs on "social media" - you | can comunicate with various instances. the problem arise with | groups (so mailing list, multi user chat or "communities") - | in case of email you have mailing list which is not federated | and is tied to particular server / address... same issue so | it wasn't exactly solved. it's just it's used slightly | differently. | tuukkah wrote: | All I get from polycentric.io is "Please add Polycentric to | your home screen" (Android browsers call it installing) - | even after I added it to my home screen (Firefox on Android). | Works on Chrome though. | nickorlow wrote: | We'll look into it. Thanks for checking it out | lolinder wrote: | The big problem with federation-by-default in the current | incarnation of federated software (at least Lemmy, I'm less | familiar with Mastodon) is that you will likely end up | publicly hosting any content from instances that you choose | to federate with. | | With email, it doesn't really matter if someone is using your | email platform to spread controversial political ideas or | using it to share pirated media or whatever, because you're | not hosting it for the general public to consume. | | With the fediverse it's different. If I own fedifoo.app and | allow my app to federate with neonazis.app or tankies.app, | then eventually neonazi or tankie content will be accessible | at fedifoo.app/c/unpleasantcommunity. I don't want that, so I | defederate, but now the fediverse is fractured and "it | doesn't really matter which instance you choose" is no longer | true. | | Disabling federation by default helps protect new hosters | from the unintended consequences of federation, which is | good, but it leaves us starting out on a fractured footing. | AnthonyMouse wrote: | The solution to this is to have a unified namespace which | is distinct from hosting. So then /c/unpleasantcommunity is | only hosted by instances that choose to mirror it, but if | anybody goes to /c/unpleasantcommunity and their default | instance doesn't mirror it, it redirects to an instance | that does. | | Then you don't have to host anything you don't want to but | you still have a unified network. | cassianoleal wrote: | Basically Usenet then? | nickorlow wrote: | Yeah, I also think having the option to censor | communities in specific is a good way to do it. So you | could just choose not to host /c/hatefulcommunity. I'd | imagine blocklists and community reputation systems would | be created much like what exists with e-mail. | willi59549879 wrote: | i quite like how censoring is done in the fediverse. | there is no censoring but each user can chose to block | content from showing up in the client. i don't like the | idea of censoring. some authority decides what other | people are allowed to see. | nickorlow wrote: | I like it in principal, but I think it's hard to keep up | with spam in a manner like this. | AnthonyMouse wrote: | The generally right way to do this is to put actual | censorship on the far side of impossible but give | individuals good filtering tools. So then maybe your | instance provides a default blocklist, but if something | gets blocked, it isn't just silently invisible, it shows | up as a collapsed comment that you can unfurl or a | warning page that you can click through if you really | want to. And if you don't agree with an entry your | instance added by default, you can strike that one out | and choose to always see it. | | The key is to never let anything like a central party | impose censorship that can't be overruled by the user, | but still allow them to filter out 99% of the crap by | default. | nickorlow wrote: | Yeah, Polycentric lets server operators choose to censor | individual posts or entire users. Your client can query | anything that's censored from one server by querying it | from another where the content was published. It's fairly | easy to tell when a post is censored since each post has | a logical clock per user that is incremented per post, so | you can pick out any missing logical clock entries. | jdthedisciple wrote: | Oh wow so I'm not the only one who felt like this. | | Having different unsynchronized servers has been a gigantic turn | off for me. | | That's like the one thing that shouldn't be the case with | anything social online. | postpawl wrote: | The centralized platforms seem doomed to reach a point where | they're squeezing as much cash out of users as they can while | users provide their content for free. If we need to create | multiple accounts to fight back against enshittification, I | think that's a fairly minor downside for increased competition. | m4lvin wrote: | Good point, but I think the feature that I can paste any | fediverse URL into the search field on my own mastodon instance | and view it there, solves around 40% of the problem. | | There are also already browser extensions which automatically | redirect you to your own instance I think, but those need access | to all browsing :-/ | sacnoradhq wrote: | Phony "federated apps" are mostly "fragile self-hosted with | linkrot, convenience, and pseudo robustness". | | Robust federation works as a distributed overlay network and | doesn't require any leader. The irreducible issues become: | | 0. "Which systems should store what data, i.e., blobs (files), | entities, and entity sequences?" | | 1. "How many copies should there be of 0.)?" | | (1.5. "What will keep scrubbing 0.) for integrity and duplicating | 1.) below a given threshold?") | | 2. "Where should functions against 0.-1. run?" # | | 3. "How many copies of 2.) should execute?" # | | 4. "How should the operators of persistent systems recoup the | microtransactional costs of compute, storage, and networking of | 0.-4.)?" (Client has a pool of credits purchased through some | crypto means used to rent storage capacity, net transit, and | processing of media, metadata, and code #.) | | 5. "How many copies of next nodes and node paths do you | maintain?" | | 6. "Which nodes should this node remain connected to?" | | 7. "How many fixed default nodes can be run around the world to | always seed a node's initial network topology?" | | 8. "How much anti-correlation traffic should fill the encrypted | link when there is no traffic?" (Otherwise, it becomes very easy | to poison and unmask overlay networks.) | | # If the platform has a serverless function concept, where it's | unknown where it will run until it does. | acidburnNSA wrote: | > But this model breaks down because it wasn't designed under the | premise that interactive applications would then be built on top | of individual websites | | Heh I was just reading "The Innovators" by Walter Issacson and | found this interesting conflict between the inventor of the WWW | and the inventor of Mosaic: | | > There was something about Andreessen's browser (Mosaic), | however, that disappointed Berners-Lee. It enabled rich media for | publishing eye-catching pages, but that came at the expense of | making it easy for making normal users to be able to write as | well as read web pages. With Berners-Lee's browser, any user | could edit web pages just as easily as reading them, just like | using a word processor. But users of Andreessen's browser had to | write the HTML code themselves and upload it. Berners-Lee feared | that this might limit the ability to express themselves on the | web to those who were technically astute. | faraggi wrote: | Funny because Andersen also made the choice to use text based | pages instead of binary with the same profile in mind- making | it easy for users to make stuff. | INGSOCIALITE wrote: | What really grinds my gears is that all of the signup pages and | "how to join" pages just say to pick a random instance because | it's federated and it doesn't matter which one you join. | | What if the random one I pick gets defederated? Now I need to | find a new instance and make a new account? | | This will make federated services into even MORE echo chamber | ultra-moderated spaces than Reddit ever was, as the fear of | defederation will cause lockdown policing of wrongthink. | | I honestly think it may be worse for free speech. | | Then again, I've never joined a federated service and I have no | actual anecdote or evidence to back myself up, I'm kind of just | spitballing thoughts. | jayGlow wrote: | the lemmy instance I've looked at is already a terrible echo | chamber, as bad as some of the worst parts of reddit. I think | defederation is going to lead into more insular communities | unfortunately. | gmuslera wrote: | You need to decouple the location of the url from the location of | the resource. Like having a /resource/ branch with logic that | decide which server have the resource and redirects or proxy or | whatever to that content. And all locations have the same logic. | | So, wherever you start on, you will access the content of the | whole federation. | nickorlow wrote: | I've thought about trying to do something like this as a side | project. For lemmy in specific, I think having a "lemmy | directory" that redirects urls to their correct server would be | nice. (I.e lemmydir.com/c/homelab would 301 to | lemmy.ml/c/homelab. People would register their redirects on a | FCFS basis and some amount of activity on the community would | be required to register the redirect) | 9kaka001h wrote: | [dead] | pferde wrote: | Matrix tries to solve this with matrix.to | (https://github.com/matrix-org/matrix.to), which will eventually | hopefully segue into a separate matrix:// protocol in URIs. | mattdesl wrote: | This is where content addressable URIs shine. IPFS is still | pretty rough around the edges to use, but it allows hosting and | distributing assets on the web without them being tied to a | central server operator. | ibz wrote: | > you would need to decouple the resource being accessed from the | application being used to access it | | Nostr does exactly this. | Brighthurst wrote: | Yeah, I think nostr is the obvious solution when you realize | this article is all about the issues of | federating/decentralizing on top of HTTP. The P in HTTP is | protocol. So the solution is that we need a different protocol: | nostr ___________________________________________________________________ (page generated 2023-07-01 23:00 UTC)