I was looking at other federation protocols last night.
-
I was looking at other federation protocols last night. I've been getting frustrated with ActivityPub (it's very vague and everyone does it slightly differently), and I wanted to see how other protocols handled things.
I found a really cool one called Zot that had cross site authentication, which made privacy settings really interesting and useful. Unfortunately, the developer took down all of the drive and instead created a reference application called (streams), the parenthesis are correct. (streams) has no good info or documentation. You have to read the code to figure it out.
#fediverse #AcitivityPub #zot #protocol -
Jupiter Rowlandreplied to Bryan Redeagle last edited by@Bryan Redeagle
I found a really cool one called Zot that had cross site authentication, which made privacy settings really interesting and useful. Unfortunately, the developer took down all of the drive and instead created a reference application called (streams), the parenthesis are correct. (streams) has no good info or documentation. You have to read the code to figure it out.
A few corrections. Source: I've been using that stuff since before Mastodon was hot. Oh, and this is going to be long.
First of all, the creator, @Mike Macgirvin ️, not only created the Zot protocol, but also a reference implementation at the same time. As in 2012. The reference implementation was named Red and a fork of his very own Friendica from 2010. Since Red turned out to be a not-so-good name, it was renamed Red Matrix. And as it didn't really take off, it was redesigned and renamed into Hubzilla in 2015. Hubzilla still exists today. I'm using it right now.
Mike kept advancing the Zot protocol further and further with a whole string of forks and forks of forks and so forth. Zot6 matured with Zap around 2019 and brought OpenWebAuth magic single sign-on with itself. Both were backported to Hubzilla, which has been maintained by someone else since 2018, in 2010.
Zot's killer feature is not OpenWebAuth magic single sign-on, though. It's nomadic identity. The very thing it was designed for.
In 2021, Zot11 was reached, but it had advanced so far that it was no longer compatible with Zot6, so it was renamed to Nomad. Today's Nomad would be Zot12.
(streams) is only a semi-official name, given to it by the community, based on the name of the code repository. Officially, the application is not a project, it is intentionally nameless (no, I'm not kidding, this thing has no name), it is intentionally devoid of any traces of a brand identity, it intentionally had almost all nodeinfo code removed, and it was intentionally released into the public domain.
As (streams) is not a branded product, it does not have a website either.
The reason why it doesn't have any documentation is another one: The documentation it had was painfully outdated. It was basically handed on from fork to fork to fork and never touched. Parts of it have remained untouched since before Osada and Zap were forked from Hubzilla, and that was in 2018. Other parts still speak of Red, and that name ceased to exist in 2012. I know because Hubzilla's current documentation is every bit as old.
Hubzilla is right now having its entire documentation re-written from scratch in German and English by a community member.
For (streams), however, the only solution was to rip the whole documentation out because no documentation was deemed better than one that's so outdated it's useless.
It was considered not so bad for as long as how few people a) learned about (streams) and b) figured out how to find an open-registration instance of something that has neither third-party instance lists nor a unified instance identifier actually joined (streams). After all, they all came from Hubzilla, so they could figure out most themselves.
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Zot #Zot6 #Nomad #Hubzilla #Streams #(streams) #NomadicIdentity #SingleSignOn #OpenWebAuth -
Bryan Redeaglereplied to Jupiter Rowland last edited by
@[email protected] I knew all of that except for the reason for not currently having docs. Which makes sense, but a note that says as much wouldn't hurt.
I wrote a tl;dr version because most of the details don't matter much in the big picture. The initial search was from frustration with ActivityPub, which I have little hope of building on because I don't have the time to weedle out how everyone else is handling the unwritten parts of the spec (especially since it seems to require learning several other protocols). I would be interested in understanding Zot, but I equally have little time to reverse engineer and peel out the bits that make it work in another software.
I just kind of wish that the Internet had went in that direction instead of how ActivityPub landed. -
Jupiter Rowlandreplied to Bryan Redeagle last edited by@Bryan Redeagle I'm not even sure how much sense it would make to build something else on top of Zot.
Zot was tailor-made for what would become Hubzilla. Hubzilla is a Swiss army knife, a jack-of-all-trades, and Hubzilla is modular and expandable. The idea was not so much to make Zot a standardised protocol for others to build on, but to make Hubzilla something to build on in the shape of add-ons, so-called "apps" that could be attached to it.
With (streams), it's a bit different. Again, the idea here was not to take the Nomad protocol, which is firmly tied to (streams), and build something entirely new from scratch, but rather to fork (streams), turn it into something and give that something a name. That's the very reason why (streams) was put into the public domain.
Nomadic identity and especially the extensive permission controls that both have aren't exactly that easy to handle. Anything that uses Zot or Nomad would inevitably have to do a lot of things that Hubzilla or (streams) does and exactly the way Hubzilla or (streams) does it. It'd be much easier to add to Hubzilla or build on top of (streams) than to re-invent everything from scratch and hope it's compatible enough.
That said, the days of Nomad and Zot are counted. Mike himself is putting all his bets on ActivityPub. He is probably still be working on making ActivityPub nomadic and adding permissions on (streams)' level to ActivityPub. He doesn't do that because he wants to quit maintaining his own protocol, but because he wants the entire Fediverse to become nomadic and as secure as (streams).
If people obviously don't want to go where nomadic identity and permissions are, nomadic identity and permissions have to come to the people.
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Zot #Nomad #Hubzilla #Streams #(streams) #NomadicIdentity -
Bryan Redeaglereplied to Jupiter Rowland last edited by
@[email protected] Yes. I understand all that, but just because something is purpose built doesn't mean it's not worth understanding. That should be clear enough with ActivityPub trying to get nomadic identity working.
I'm not out here trying to make the next big thing or even pushing the next big thing. I just want to tinker and learn in my spare time.
And for federated protocols, I'm saying you need a lot of spare time that I don't have to wrap your head around it all since nothing (and this includes ActivityPub) is very well documented.