Fantastic article. Should be required reading for all #FediDevs
Discussion
Fantastic article. Should be required reading for all #FediDevs
I have friends who are geeks who happen to have Crohn's and family members who have Crohn's, so I was invited by algorithm to a Crohn's support group. Irrelevant but harmless. Why would I want the same identity across groups that would allow more spurious (or politically dangerous) connections?
Multiple identities is a feature, not a bug, despite what Google, Meta and the rest want us to believe.
@ craignicol Redundancy. Resilience against losing the server that you're on by being on another server simultaneously.
Also, just because you can spread your identity across multiple servers and even server types, doesn't mean you can only have one identity.
Look at me, for example:
@ RockManJoe Hahaha.
Tell you what: @ Mike Macgirvin ?️ has decentralised Fediverse identities as early as 2011. He invented nomadic identity (https://joinfediverse.wiki/Nomadic_identity, https://opennomad.net/page/nomad/home) almost five years before Mastodon was made. And he first implemented it in 2012 on what would later become Hubzilla (https://hubzilla.org, https://joinfediverse.wiki/Hubzilla). That was still almost four years before Mastodon was launched.
Oh, and by the way: Hubzilla is very much part of the Fediverse. It is very much (albeit optionally) connected to and federated with Mastodon. I am replying to you right now from a Hubzilla channel which simultaneously and identically resides on two independent servers.
Nomadic identity is reality now. It is being daily-driven right now, and it has been daily-driven since long before Solid was even announced.
Solid is nothing but Hubzilla or (streams) or Forte (both are descendants of Hubzilla by Hubzilla's creator) as ordered from wish.com. A cheap and shoddy knock-off.
CC: @ Johannes Ernst @Tim Chambers @ Ben Pate 🤘🏻
# Long # LongPost # CWLong # CWLongPost # FediMeta # FediverseMeta # CWFediMeta # CWFediverseMeta # Fediverse # Hubzilla # Streams # (streams) # Forte # NomadicIdentity
Fantastic article. Should be required reading for all #FediDevs
@ Ben Pate 🤘🏻 Allow me to take a look at this from a Hubzilla/(streams)/Forte point of view.
@!{benpate@mastodon.social} rather than @[url=/@benpate%40mastodon.social]Ben Pate 🤘🏻[/url]. Then you're a) the only one to whom the message is sent (it literally doesn't even go out to any other server than mastodon.social plus my clone on hub.hubzilla.de as can be seen in the delivery report) and b) the only one who is granted permission to view the message.As a decentralization radical, I still fret about identity verification systems relying on DNS.
DNS is not a self-sovereign digital technology. My domain name can be revoked by governmental fiat.
More and more these days, I find that an unacceptable vulnerability.
I want to do one better, though, which is mostly orthogonal to this: I want to go to lemmy.world and log in with @j12t and post, on that lemmy server, while being identified by that Mastodon-hosted identifier. Otherwise nobody knows it's me!
http://evanp.me/2024/04/22/cross-server-interactions-in-activitypub/
What I have in mind does not need protocol changes as far as I can tell. It needs OpenID-style SSO (Mastodon as the IdP, Lemmy as the RP in my example) into a local Lemmy account that can continue to have its own local identifier, but in the UX my Mastodon identifier is shown.
(I don't have a detailed proposal yet, but it sounds like it's possible, and right now I'm just floating a requirements to see whether anybody else agrees ...)
If you want to try it - you can log in to my demo Discourse instance using a Mastodon, Hubzilla or BlueSky account: https://discourse.mythik.co.uk/
I imagine this will work with Mastodon/Lemmy/etc as the RP, but I haven't done any work on the "how does posting work" part of it!
I like the principles behind this. Don't fully understand the details of it yet. Let's talk this through:
I visit Lemmy and sign in with my Mastodon account. I like a cat video. Does Lemmy use something like the C2S API to publish the activity via my Mastodon outbox?
Sounds doable.
It may require a common, more well-defined activity schema than we have today, so that each server knows what is being said.
Another is to post to Lemmy which then publishes into the local actor’s feed, but with receivers showing the mastodon identifier instead — with a rel=me alias set backing up the equivalence. (There may be a few bumps, not entirely fully formed thought)
e.g. if mastodon-android, pachli, tusky, toot, lemmy-android, etc all supported the same C2S import methodology or you could move keys around (or cross sign them)
((I know there's another migration proposal hanging around somewhere))
make transferring or renaming usernames and transferring posts easier...
This would be a vast improvement to "FEP-3b86 Activity Intents" which is trying to improve inter-server UX without changing the protocols too much.
It would be a lot of new engineering for every project that wanted to participate, but worth the effort for sure.
We'd have to talk about how this works on mobile/desktop apps as well. So much Fediverse is happening OFF of the web, and it would be a shame to build a spec that gets this UX wrong.
This ...
https://fediversity.site/item/9f514756-42b7-4e3d-9a5e-2561fae9c8ce
... could have been a really useful contribution to the discussion with about 90% less snark and links to examples. Here's a couple of good starting points for work on portable identity in AP;
https://wedistribute.org/2024/03/activitypub-nomadic-identity/
@ Johannes Ernst The first step is already done:
Forte, @ Mike Macgirvin ?️ most recent project from the same family that started with Friendica 15 years ago, is the first and only stable Fediverse server application that uses ActivityPub for nomadic identity. Nomadic identity itself is a concept created by Mike in 2011 and first implemented by himself in 2012 in a very early version of Hubzilla which he called Red back then.
This means that you can have the exact same channel/identity (think Mastodon account, but without its own login) on multiple server instances with one account each. If one server goes down, you still have at least one clone (depending on how many clones you make).
@silverpill is working on implementing this on Mitra. It's still only available in development versions, though. The difference is that Mike had already created a whole bunch of Fediverse server applications with nomadic identity since 2012; he "only" had to port nomadic identity from the Zot or Nomad protocol to ActivityPub. Silverpill, on the other hand, has to implement nomadic identity in something that was built upon ActivityPub with no nomadic identity.
Both recognise each other's nomadic identities. (For comparison: Mastodon doesn't recognise any nomadic identities. It takes the two instances of this Hubzilla channel of mine for two fully separate identities.) But that's all for now.
The next step, and that's way into the future, would be to be able to clone from Forte to Mitra or from Mitra to Forte. This would give you one identity on at least two server instances of two separate Fediverse server applications.
The obvious downside is that you won't be able to take everything with you everywhere when you clone to other server types. For example, if you clone a Forte channel to Mitra, you won't be able to take your permissions settings, your permission roles, your friend zoom settings, the contents of your cloud storage, your CalDAV calendars and your CardDAV addressbook with you over to Mitra. That's simply because Mitra doesn't have any of these features.
What you envision is another step further. And that's the adoption of nomadic identity via ActivityPub and ideally also OpenWebAuth magic single sign-on, another one of Mike's creations, by all Fediverse server applications. And I mean all of them. Including extremely minimalist stuff like snac2 or GoToSocial. Including stuff that isn't actively being worked on like Plume. Including stuff that's dead, but that still has running servers, like Calckey, Firefish or /kbin. And including Mastodon which stubbornly refuses to make itself more compatible with the "competition" in the Fediverse and adopt technologies created by anyone else in the Fediverse, even more so if that someone is Mike Macgirvin.
In other words, this won't happen. Mastodon would rather turn itself into its own federated walled garden by becoming incompatible with all other ActivityPub implementations.
What many Mastodon users who know nothing about decentralisation wish for is another step further. And that's to create one account on one server instance of one Fediverse server software, no matter which, and then to have full-blown user permissions on any instance of any Fediverse server software.
Like, create one account on mastodon.social, go to a Pixelfed instance, post pictures Instagram-style, go to a PeerTube instance, upload videos, go to a WriteFreely instance, blog away, go to a Hubzilla hub, build a webpage, all with only your mastodon.social login.
Of course, this is impossible to do. This would mean that if you create an account on one Fediverse server instance, it would have to be cloned to all 30,000+ servers in the whole Fediverse instantaneously. And if you start your own instance, it would have to trigger 30,000+ servers to clone their tens of millions of accounts and channels over to your instance.
Usually, when I explain this to people who want to use everything with one login, they tell me that they don't want to use every server in the Fediverse. No, but they want to use any server in the Fediverse. Any one of the 30,000+.
And they want to use it immediately. Like, go there, use it with full-blown local user permissions right away, no delay.
Now you may argue that their account or channel could be cloned to that server when they visit it for the first time. Drive-by cloning, so-to-speak. Still, won't happen. Cloning takes time. I myself have cloned enough Hubzilla and (streams) channels over the years to be able to estimate just how long it takes. And none of my channels has ever contained tens of thousands of posts and thousands of pictures.
Besides, drive-by cloning would inflate Fediverse instances senselessly, not to mention bog them down with extra network traffic. Whenever you visit a Fediverse server instance for whichever reason (like, you want to look at a post on Friendica or Hubzilla to see what it looks like without being botched by Mastodon), your account or channel would automagically be cloned to that server instance. Another account (and channel, if necessary) on that server instance, another deluge of posts and files flooding into the database, and that clone would have to be synced with your 600 other previous drive-by clones on the 600 Fediverse server instances you've visited before.
Extra nefarious: Some "websites" that have to do with Hubzilla or a certain aspect of Hubzilla are parts of Hubzilla channels themselves. This includes the official Hubzilla website. If you visited them, you'd create a drive-by clone on the Hubzilla hub which hosts that website.
So if someone set up a single-user Hubzilla hub with their personal channel and a website channel on it, and the website is interesting enough, and 10,000 Fediverse users visit it, it'll end up bigger than the biggest current Hubzilla hub within days. It'll have 10,001 accounts, namely the owner's account with two channels and 10,000 accounts with drive-by clones, automatically created by the 10,000 external visitors.
But this will remain utopic not only because it's technologically pretty much impossible and very much not feasible at all. It also requires a mechanism for one Fediverse server to recognise logins on other Fediverse servers. You know, like OpenWebAuth. You want your Mastodon account to drive-by clone itself, Mastodon will have to implement OpenWebAuth, and I mean fully implement it.
There actually is a pull request in Mastodon's GitHub code repository that would have implemented client-side OpenWebAuth support (= Hubzilla, (streams) and Forte would recognise Mastodon logins). This isn't even about full-support that'd include login recognition on Mastodon's own side. This pull request has been there for two years. It was never merged. And it probably will never be merged.
This means that the Mastodon devs have practically rejected OpenWebAuth as a feature to implement. Won't come. Ever. Not even half of it.
And this should say everything about the chances that Mastodon will ever implement nomadic identity.
CC: @ william.maggos @ Richard MacManus @Tim Chambers @ Ben Pate 🤘🏻
# Long # LongPost # CWLong # CWLongPost # FediMeta # FediverseMeta # CWFediMeta # CWFediverseMeta # Fediverse # Mitra # Hubzilla # Streams # (streams) # Forte # OpenWebAuth # SingleSignOn # NomadicIdentity
Hi @j12t @tchambers @benpate,
isn't #discovery without #webfinger (hostnames and dns in effect) a #fallacy and thus #centralisation in disguise?
I'd love to know more about what you're thinking here.
I don't think we're replacing #Webfinger. I think we're trying to follow through on #WhatCorySaid at #FediForum (https://www.youtube.com/watch?v=7_Gs1t0qe78)
...which is basically: Let regular people take their account to a new server any time they want, without relying on awful XML/CSV import/export jobs. This would go a long way to solving Fediverse UX issues and preventing enshitification.
Is there more that I've missed?
Hi @benpate @j12t @tchambers,
oh, I see. I thought of near instant and frequent nomadic moves without a host-based identity. (Don't know why)
What do you think #WhatCorySaid @pluralistic means with "their account" - all interactions ever? With or without a time machine at hand?
Ask a sci-fi author and get a solution based on time machines. grr.
but doesn't the ID live somewhere? I'd worry the people running those services eventually exert power...
I think we need servers based on locality with a shared set of proven rules most of those kinds of servers can adopt. and that server software needs to handle what most people want to do. most personal accounts are on one of these.
but of course this requires breaking out of the dedicated app/server concept we brought over from the corporate world.
There was a great concept that came up at #FediForum - the identity of Theseus.
Perhaps it's okay if we have MANY identities, so long as we can reliably bind them together. Imagine rel=me links on angeldust.
Servers might come and go, but my identity straddles all of them (somehow, TBD) in a way that can be unified at the UX level by other servers.
Sean mentioned this in his article:
https://deadsuperhero.com/my-dream-fediverse-platform/
I'd love for this to happen but we're also stuck in the stage of replicating corporate platforms, instead of thinking about what we can do that they can't.
#ghost and #wordpress are doing this by making the article an AP item, instead of linking to it from a post. Maybe lemmy and mastodon should merge. most people don't post videos so maybe they don't need a #peertube account. maybe it should function more like podcasts. same with #funkwhale and #bandwagon.
My unpopular opinion: I love making decentralized clones of corporate tech.
Historically, innovation happens in startups who take a risk and break new ground. So, let them figure out the costly product/market fit. OSS products ALWAYS lag behind the corporates.
We just need to 1) copy them one-by-one 2) expand their value prop with the unique advantages of an open, federated network of millions of existing users, 3) win fair-and-square in the marketplace.
I know this takes time to get our heads around too. it was exactly this situation when TV started, they were doing radio plays in front of a camera etc.
Here's his post about the UX sins: https://www.timothychambers.net/2025/06/18/113327.html
I love this article, and can't wait for Part 2. It is right in line with https://deadsuperhero.com/my-dream-fediverse-platform/
I've been getting started on a UX hit list for #Emissary but there's only so many words I can type in one day. Perhaps we can chat once you've put your thoughts into the next blog post?
@benpate @j12t @deadsuperhero Thank you Ben! I'd welcome that!
A space for Bonfire maintainers and contributors to communicate