@InnocentZero FEP-ef61 all by itself isn't a magical solution. It's just one element in implementing full-blown nomadic identity (https://joinfediverse.wiki/Nomadic_identity) via ActivityPub, but it's far from being the only one.

See, nomadic identity wasn't invented just a few years ago or so, and it wasn't invented for, on and with ActivityPub either. It was first introduced in Fediverse software that works vastly, vastly different from Mastodon and from most of the rest of the Fediverse. I'm daily-driving what became of this software.

The beginning of nomadic identity: the Zot protocol, Red and Hubzilla


Nomadic identity was invented in 2011 by @Mike Macgirvin who had made Friendica (https://friendi.ca, https://en.wikipedia.org/wiki/Friendica, https://joinfediverse.wiki/Friendica) as early as 2010. (Friendica is the oldest still existing Fediverse software, by the way.)

To put this into perspective: The concept of nomadic identity is over four years older than Mastodon. And it predates the first ActivityPub implementation by some six years. (Ironically, the software that first implemented ActivityPub is essentially the same software that first implemented nomadic identity.)

One issue that plagued Friendica is an issue that plagues everything decentralised: Servers shut down out of the blue, and users lose everything. That's why Mike had the idea to make identities not only portable (as in, easy to move from one server to another), but nomadic (as in, absolutely identical clones of the same identity exist on multiple independent servers at the same time, so if one server shuts down, you lose nothing).

Still in 2011, Mike designed a wholly new federated protocol named Zot to implement nomadic identity. Mind you, he had already designed a brand-new protocol from scratch for Friendica.

In 2012, Mike took his own Red, a development-grade fork of his own official development fork of Friendica. He pretty much ripped the whole backend out and also most of the frontend, and he basically developed an entirely new server application, now built against Zot. This was necessary because Red would have to handle identities completely differently from Friendica in order to make them nomadic.

See, Friendica handles identities just like Mastodon and almost the entire rest of the Fediverse: Your identity is your account, your login. You have one identity per login, you have one identity per server. All your data, all your stuff is stored directly in your account.

But you can't clone accounts. It's way too tedious to separate the stuff that must be cloned (contacts, messages, settings etc.) from the stuff that mustn't be cloned (login credentials).

So Mike created the concept of "channels" (https://joinfediverse.wiki/Channels_(Hubzilla_%26_(streams))). They're basically containers for your identity that contain everything except the login credentials on the servers. They can easily be cloned and moved as a whole.

Red still exists in a way: Later the same year, it was renamed the Red Matrix. And in 2015, it was completely refactored, it was greatly expanded in features and functionality, and it was renamed Hubzilla (https://hubzilla.org, https://en.wikipedia.org/wiki/Hubzilla, https://joinfediverse.wiki/Hubzilla). Hubzilla is where I'm commenting from right now, and this channel has been cloned for longer than most Mastodon users have known that Mastodon exists.

Nomadic identity via only ActivityPub: (streams), Mitra and forte


FEP-ef61 was created by @silverpill, developer of Mitra (https://codeberg.org/silverpill/mitra) in 2023. The goal was to take non-nomadic, account-equals-identity Mitra and make it every bit as nomadic as Hubzilla. Not by rewriting the entire backend against Zot (or its newest version known as Nomad) and then bolting ActivityPub support back on, but by using nothing but ActivityPub itself without rewriting the backend.

Development and sparrings partner became Mike Macgirvin himself who, at that time, was working on the streams repository (https://joinfediverse.wiki/(streams), https://codeberg.org/streams/streams), a Nomad-based fork of a fork of three forks of a fork (of a fork) of Hubzilla, somewhat slimmed down in features (it isn't a full-blown, jack-of-all-trades CMS unlike Hubzilla), but every bit as nomadic as Hubzilla.

The two worked out a way of using ActivityPub and only ActivityPub to establish nomadic identity. Not only to made Fediverse identifiers independent from servers, but to actually use ActivityPub to clone identities with everything attached to them between servers.

Eventually, FEP-ef61 was defined, and (streams) and Mitra became the first Fediverse server applications to understand portable identities as per FEP-ef61. (streams) was the first nomadic Fediverse server application to understand them, but it still uses its native Nomad protocol for its own nomadicity. Mitra, all by itself, still isn't nomadic to this day; it uses a client named Minimitra for nomadicity.

The first Fediverse server application that actually uses only ActivityPub for nomadicity, all the way to cloning and syncing channels, is Forte (https://codeberg.org/fortified/forte). It came to exist in mid-August 2024, essentially as a byproduct of an accident. (streams) had to juggle so many identities already, ActivityPub identities, Nomad identities, Zot6 identities, that when FEP-ef61 was merged into its release branch, it confused all these identities and didn't connect or federate with anything anymore. In order to find and fix the issue, Mike Macgirvin himself forked his own streams repository and ripped out any and all support for protocols that weren't ActivityPub. This required Forte to use ActivityPub for everything that (streams) used Nomad for.

Where we are now


So as of now, there are exactly three still existing server applications with full-blown server-side clone/sync/move-entire-identities-without-leaving-dead-accounts-behind nomadicity: Zot-based Hubzilla from 2012/2015, Nomad-based (streams) from 2021 and ActivityPub-based Forte from 2024.

There is only one of this kind that uses ActivityPub for everything, including nomadicity, and that's Forte.

Forte is the youngest member of the same software family as Hubzilla and (streams). They were all created by the same developer, and they were all born nomadic.

There is no case of a typical, classic, non-nomadic, account-equals-identity, ActivityPub-based Fediverse server application that was successfully converted to full-blown server-side clone/sync/move-entire-identities-without-leaving-dead-accounts-behind nomadicity. Forte itself wasn't converted from non-nomadic to nomadic; it was converted from Nomad-based to ActivityPub-based while having a nomadic legacy that dated back a dozen years at that point.

I'm not saying that it's impossible to turn non-nomadic software into fully nomadic software. But it's a huge undertaking that will require rewriting large parts of the server backend.

Essentially: You can't just add FEP-ef61 support to Mastodon and immediately clone your account over to other servers the same way that I can clone my Hubzilla channel.

CC: @Rob Ricci @Christine Lemmer-Webber

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Red #RedMatrix #Hubzilla #Streams #(streams) #Forte #Mitra #FEP_ef61 #NomadicIdentity
Nomadic identity - Join the Fediverse

https://joinfediverse.wiki/Nomadic_identity

Nomadic identity is a feature currently available only to Hubzilla and its latest successor commonly referred to as (streams). It provides a unique way of moving between instances fairly easily and even cloning your Fediverse identity. It is not available for or compatible with ActivityPub, though.

This page needs an update.

#NomadicIdentity

Nomadic identity - Join the Fediverse

@ValorZard No dice.

First of all, implementing nomadic identity would drastically alter the way how Mastodon works. It would make Mastodon, something that's supposed to be dead-simple, a great deal more complex.

I mean, in order to really pull this through all the way (as in Hubzilla/(streams)/Forte-level nomadic identity), your identity, your posts, your followers, your followed, your settings, your filters, your everything, all this must no longer directly reside in your account. It must be containerised in something that Hubzilla calls "channel", and that container would then reside in your account and be able to reside in multiple accounts on multiple independent servers.

Next, when Mastodon introduces a new feature, they tend to try to market it as their own original pioneering invention. They can't do that with nomadic identity. There are already enough people who know that nomadic identity was actually pioneered by Hubzilla before Mastodon even existed.

Furthermore, before Gargron implements something invented by Mike Macgirvin, hell will freeze over. Even if he tried to sell it as a unique feature of Mastodon, he'd still secretly have to admit that there's something that Mike did right. And quite a few eyes would be on him in hope of Mastodon getting more features from stuff created by Mike.

Ever heard of OpenWebAuth magic sign-on? Invented by Mike for Osada and Zap in the late 2010s, then backported to Hubzilla.

It was proposed for Mastodon, even if it was only client-side (as in, Mastodon logins would be detected by Hubzilla, (streams) and Forte, but Mastodon wouldn't be able to detect OpenWebAuth logins itself). This went as far as a merge request on GitHub. It could have been built into Mastodon. The code was literally there.

The merge request was silently rejected. And that would have been a fairly small change in comparison to the complete rebuild that'd be necessary for a full-blown, Forte-level, server-side implementation of nomadic identity.

I mean, @silverpill had to implement nomadic identity on Mitra client-side. That wouldn't be possible on Mastodon, what with every other Fediverse app being a Mastodon client. Mastodon would require a server-side implementation.

Seriously, it'd be easier to strap Mastodon's Web UI to Forte or Hubzilla with the necessary changes to adapt it to a vastly different backend.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Mastodon #Hubzilla #Streams #(streams) #Forte #Mitra #FEP_ef61 #NomadicIdentity
Netzgemeinde/Hubzilla

@jandi (Hubzilla seems fascinating btw!)
It's a monster that can be a challenge to tackle if you expect something that works like Mastodon. But on the plus side, it may have the best built-in documentation of all Fediverse server applications, and it has got its own support forum.

Oh, and nomadic identity works as advertised.

CC: @silverpill @Holos Social

#FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hubzilla #NomadicIdentity
Netzgemeinde/Hubzilla

@silverpill Would be interesting to add Hubzilla's Zot6 and (streams)' Nomad (which would be Zot12 if it wasn't incompatible with Zot6) to the list.

By the way: Forte doesn't require a gateway to communicate with non-nomadic ActivityPub. A fully cloned Forte channel can communicate with a Mastodon account without jumping through hoops. Remember that Forte has almost fully-featured Hubzilla-level nomadic identity (i.e. everything except real-time syncing between channel instances; unlike Hubzilla and (streams) which do sync in real time, it needs a cronjob for that) directly built into its core.

(streams) does support nomadic identity via ActivityPub. But internally, it uses and relies upon Nomad for its nomadic identity. It only supports nomadic identity via ActivityPub a) because it was used as a development platform for just this and b) in order to be able to understand cloned nomadic ActivityPub actors elsewhere. This is also why it isn't possible to move from (streams) to Forte, to move from Forte to (streams) or to clone between (streams) and Forte.

(streams) itself doesn't require gateways to communicate with Mastodon & Co. either. It speaks three protocols natively: its own Nomad, Hubzilla's Zot6 and (optionally, but on by default) standard ActivityPub.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #ActivityPub #Zot #Zot6 #Nomad #Hubzilla #Streams #(streams) #Forte #NomadicIdentity
Netzgemeinde/Hubzilla

Announcing Mitra Mini v0.1.0

Mitra Mini is an ActivityPub client that implements nomadic identity. It has become stable enough that I decided to cut the first release.

The basic features have been implemented: posts, reposts, likes. For more information, check the project's readme:

https://codeberg.org/silverpill/minimitra

It all started nearly four years ago with a vague idea that linking cryptographic keys to #ActivityPub actors could unlock decentralized identity in Fediverse. Eventually, the solution was discovered, and implemented by several projects, but these implementations were servers, not clients. Now there is finally a client, and the design has been proven to work well.

#NomadicIdentity

ap-next/nomadpub.md at main

ap-next - ActivityPub Next

Codeberg.org
@HarkMahlberg That's because Hubzilla has a feature called nomadic identity (https://joinfediverse.wiki/Nomadic_identity).

The channel that I'm replying from, here on hub.netzgemeinde.eu, has a clone on hub.hubzilla.de. A full, live, hot, bidirectional, near-real-time backup that I can use just like the original. This is a feature that some are trying to invent right now, but that "proto-Hubzilla" has had since 2012.

Within Hubzilla, both instances of my channel count has having the exact same identity, [email protected], and as being one thing, only that this thing exists in two places simultaneously.

However, the non-nomadic Fediverse neither knows nor understands nomadic identity. It sees the two instances of my channel as two fully separate identities. Thus, I guess lots of Mastodon users must have blocked me for having an unlabelled bot.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hubzilla #NomadicIdentity
Nomadic identity - Join the Fediverse

@洪 民憙 (Hong Minhee) :nonbinary: Two people you may consider consulting in this case:
  • @Mike Macgirvin ?️. He invented nomadic identity in 2011. He was the first to implement it in Red (which became Hubzilla in 2015) in 2012.
    His streams repository, a fork of a fork of three forks of a fork (of a fork?) of Hubzilla, is the place where he laid the foundations of FEP-ef61 out of necessity because he was working on nomadic identity via ActivityPub (Hubzilla and (streams) use their own protocols for that), and it was the first nomadic server software that had it implemented.
    Also, his Forte, itself a fork of the streams repository, is the only Fediverse server software that uses nothing but ActivityPub to establish nomadic identity and relies on FEP-ef61 to do that. Basically, it's (streams) with no Nomad and Zot6 support, and syncing between clones is triggered by a cronjob because, unlike Zot6 and Nomad, ActivityPub doesn't provide any ways to trigger immediate, near-real-time syncs.
    Mike hasn't been caught online for quite a while, though, although he's still working on both (streams) and Forte.
  • @silverpill is gradually turning Mitra from a typical non-nomadic, account/login-equals-identity, one-identity-per-account Fediverse software into something that's every bit as nomadic as Hubzilla, (streams) and Forte while casting everything necessary for this process into FEPs.
    I'm not sure whether this will include containerising identities like the channels on Hubzilla, (streams) and Forte and allowing multiple fully independent identities on the same account, just like the same identity (channel) would be able to exist on independent accounts on different servers.

That said, is your goal only to use FEP-ef61 for identities that are tied to their accounts and their servers? Or is your goal fully-fledged nomadic identity on the same level as on Forte?

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hubzilla #Streams #(streams) #Forte #Mitra #NomadicIdentity #FEP_ef61
Netzgemeinde/Hubzilla

Whenever someone announces to "bring" something "to the Fediverse", chances are that Friendica has actually had it since 2010, for five and a half years longer than Mastodon has been around.

For example, just about everyone on Mastodon is fully convinced that Eugen Rochko has brought quote-posts to the Fediverse this year. That's because next to nobody on Mastodon knows that Friendica has been able to quote-post practically everything in the Fediverse, including Mastodon toots, for 15 years now.

And if Friendica doesn't have it, chances are still that Hubzilla has it, and that Hubzilla has probably had it for longer than Mastodon has been around, too.

For example, private messages that are actually private. Mastodon doesn't have them because the "privacy" of Mastodon DMs is only "guaranteed" by limiting whom a DM is sent to. Hubzilla does have them and has had them since 2012, since it was still named Red. How? Because Hubzilla also limits who is permitted to see a DM.

Oh, and Hubzilla even offers optional encryption on top of that.

Or how about server-independent identity? Everyone still waiting for Bluesky to finally be the pioneer who invents this and implements it for the first time? LOL! Once again, Hubzilla has had this since 2012. Not a vague concept, not an unstable proof-of-concept, but daily-driven by production-grade channels on production-grade servers. (streams) has it, too, inherited from Hubzilla through a whole number of forks. Forte has it, too, and Forte is the first and, so far, only Fediverse server software that uses ActivityPub for nomadic identity.

Now I'm waiting for someone to announce that something will "bring" actual groups "to the Fediverse". A feature that was actually introduced to the Fediverse by StatusNet in 2008, and that's also available on Friendica, Hubzilla, (streams) and Forte. Not to mention that the very principle of the Threadiverse (Lemmy, the remains of /kbin, Mbin, PieFed) is based on groups.

This is what happens when you think that the feature set of the whole Fediverse is the feature set of Mastodon and maybe Pixelfed because that's all you know.

Speaking of Mastodon: Just because it's being "brought to the Fediverse", doesn't mean it'll be adopted by Mastodon.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #MastodonCentrism #MastodonNormativity #Friendica #Hubzilla #Streams #(streams) #Forte #NomadicIdentity #StatusNet #Threadiverse #Lemmy #/kbin #Mbin #PieFed #Groups #FediGroups #FediverseGroups
Netzgemeinde/Hubzilla

Whenever someone announces to "bring" something "to the Fediverse", chances are that Friendica has actually had it since 2010, for five and a half years longer than Mastodon has been around.

For example, just about everyone on Mastodon is fully convinced that Eugen Rochko has brought quote-posts to the Fediverse this year. That's because next to nobody on Mastodon knows that Friendica has been able to quote-post practically everything in the Fediverse, including Mastodon toots, for 15 years now.

And if Friendica doesn't have it, chances are still that Hubzilla has it, and that Hubzilla has probably had it for longer than Mastodon has been around, too.

For example, private messages that are actually private. Mastodon doesn't have them because the "privacy" of Mastodon DMs is only "guaranteed" by limiting whom a DM is sent to. Hubzilla does have them and has had them since 2012, since it was still named Red. How? Because Hubzilla also limits who is permitted to see a DM.

Oh, and Hubzilla even offers optional encryption on top of that.

Or how about server-independent identity? Everyone still waiting for Bluesky to finally be the pioneer who invents this and implements it for the first time? LOL! Once again, Hubzilla has had this since 2012. Not a vague concept, not an unstable proof-of-concept, but daily-driven by production-grade channels on production-grade servers. (streams) has it, too, inherited from Hubzilla through a whole number of forks. Forte has it, too, and Forte is the first and, so far, only Fediverse server software that uses ActivityPub for nomadic identity.

Now I'm waiting for someone to announce that something will "bring" actual groups "to the Fediverse". A feature that was actually introduced to the Fediverse by StatusNet in 2008, and that's also available on Friendica, Hubzilla, (streams) and Forte. Not to mention that the very principle of the Threadiverse (Lemmy, the remains of /kbin, Mbin, PieFed) is based on groups.

This is what happens when you think that the feature set of the whole Fediverse is the feature set of Mastodon and maybe Pixelfed because that's all you know.

Speaking of Mastodon: Just because it's being "brought to the Fediverse", doesn't mean it'll be adopted by Mastodon.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #MastodonCentrism #MastodonNormativity #Friendica #Hubzilla #Streams #(streams) #Forte #NomadicIdentity #StatusNet #Threadiverse #Lemmy #/kbin #Mbin #PieFed #Groups #FediGroups #FediverseGroups
Hubzilla.de