I have seen some critical views on Nostr as a part of decentralized network discussions, but most seem to be focused on culture not function.
What are the functional / protocol differences that make you prefer ActivityPub over Nostr?
Submitted 3 weeks ago by Cooper8@feddit.online to fediverse@lemmy.world
I have seen some critical views on Nostr as a part of decentralized network discussions, but most seem to be focused on culture not function.
What are the functional / protocol differences that make you prefer ActivityPub over Nostr?
See Wikipedia:
The Nostr protocol was first written in 2020 by a Brazilian open source developer known by the pseudonym “fiatjaf” as a response to perceived moderation issues on Twitter, as well as both technical and cultural disagreements with other protocols such as ActivityPub and Secure Scuttlebutt.
Looks like it was never about function or protocol in the first place.
In 2024, in an article reporting on the project’s funding, Business Insider claimed to have identified fiatjaf, and had found two websites previously published by this person to disseminate the work of Olavo de Carvalho, a far-right conspiracy theorist.
Sounds lovely and taking one look at a random relay confirms this. The only things discussed there are Bitcoin, “Women-are-evil-because-they-dont-sex-me” and some AI bullshit.
I don't know much about recent developments, but the early version of the protocol had several major flaws:
- Identity is based on a non-rotatable key, other types of identity are not supported.
- No privacy without encryption.
- Media attachments are not supported, all images are stored on a single server.
- Servers only store data and don't do anything else, so they get abstracted away and everyone uses the same 5 relays (in Fediverse each server has a personality, and that creates a strong incentive to self-host).
There are also many minor things that I dislike, for example the use of numbers instead of human-readable names, unusual cryptography and so on.
As of more recently:
I’m astonished at the way you broke markdown to degrade accessibility. Special type of evil?
of numbers instead of human-readable names
TBF, they have introduced a ‘verified’ system that lets you use human readable names.
I mean event kinds: https://github.com/nostr-protocol/nips?tab=readme-ov-file#event-kinds
ActivityPub has Note and Follow, Nostr has 1 and 3.
I’m kind of the oppisite in that I prefer Nostr over ActivityPub, but both have their merits. As for technical ways Activity Pub has a leg up:
Culture’s enough.
this article and the accompanying discussion from lobsters is very relevant. Though the article itself is a bit one sided in favor of nostr, it doesn’t do a great job arguing why a relay really is better
Yes this is a great discussion. Generally speaking I see how user local-first posting mirrored by relays under e2ee can help solve some of the downsides of instance based federation, however it seems like the actual implementation makes or breaks the utility.
I have a concept that came up in reading the comments on lobster, which is that the issue of incomplete data due to asynchronous/intermittent downtime push and pull by users to/from the relays as well as inconsistent relays behavior leads to inevitable incomplete/non-consensus/out of date data access (something federation also suffers from).
My idea is that relays, bothe standard and specialized, could host a dedicated encrypted ledger for each user/key that has posted to it (potentially within a time limit, or with approval) that holds only a sequential identifier (counted since the first event by the key) of the user’s most recent activity and a unique identifier/key associated with the event the activity was associated with (so that edits would be associated with the UI of the post being edited for example, or a new message to an ongoing thread would use the UI of the thread and the UI of the message.) Limit this log to very few entries and replace it every time it is updated, say between 1 and 10, and you would keep the size of the file very small, and the pushed update from the user/key would also be very small.
This way a user could push activity log updates to a broader set of hosts/relays than the actual content/event was sent to while keeping the cache/data burden on the broader network down. Ideally this would mean that not only the Relays but also users following the user/key could hold the log (enabling gossip without large cache burden). Unlike a blockchain where the ledgers would need to cross-sync with each-other and seek consensus on larger data chunks, in this case the reader of the ledger can always default to the most recent sequential identifier, and that identifier would be generated by publishing key/user.
This way time code variance isn’t an issue, and at time of login a user can pull the logs for all users/keys they follow from relays OR peers they follow and determine the number of events posted by each user/key since they last pulled updates. Then the client could crawl the relays for the actual events with sequential identifiers between those AND stop crawling once they are found.
One issue I see with this sort of system is in the case of deleted events, so perhaps the log would also need to include a string of the sequential identifiers of events which have been deleted within a given time period.
I don’t actually know how nostr deals with messages if you’re offline, if at all, not that familiar with the protocol. But your idea sounds workable.
I tend to come at it from the other side, I like the federated model, but think the “supernodes” could behave more like dedicated relays. Like, a lemmy server right now does a lot of things, like serve a frontend, do expensive database queries to show a sorted feed, etc. and a lot of that does not scale very well. So having different kinds of nodes with more specialization, while still following a federated model makes sense to me. Right now if one of my users subscribes to some community, that community’s instance will start spamming my instance with updates nonstop, even though that user might not be active or might not even read that community anymore. It would be nicer if there was some kind of beefy instance I could request this data from if necessary, without getting each and every update even though 90% of it might never be viewed. But keeping individual instances that could have their own community and themes, or just be hosted for you and your friends to reduce the burden on non-techies having to self-host something.
Or put another way, instead of making the relays more instance-y, embrace the super instances and make them more relay-y, but tailor made for that job and still hostable by anyone, if they want to spend on the hardware. But I’m still not clear on where you’d draw the line/how exactly you’d split the responsibility. For lemmy, instead of sending 100’s of requests in parallel for each thing that happens, a super-instance could just consolidate all the events and send them as single big requests/batches to sub-instances and maybe that’s a good place to draw the line?
Very coincidental that you just posted this. I’ve been looking into p2p apps and Nostr caught my attention. Unfortunately like most p2p stuff it seems that most people using it are crypto affliated which is a big turn off.
The more I looked at it though nostr didn’t seem that interesting to me as a protocol compared to other p2p protocols like ipfs, Yggdrasil, i2p. Manly because it still seems to centralize around relays and the effectively ended up being your server. From my understanding its easier to move from relay to another since you can publish to multiple relays and your identify is just a key pair so your ID is “portable”. The big thing I see from Nostr is a priority to build apps on top of their protocol, compared to the other p2p protocols.
I think it would be neat if there was a non crypto affiliated social media platform built on top of a p2p protocol that did the following
These are the things that would make p2p social media more interesting to me than activitypub. Sadly as far as I can tell Nostr isn’t really this, and I’m pretty sure none of the other protocols I mentioned have build an app like this on top of them.
maybe Peergos? I’m not sure, seem to match up on Goals but IDK about execution: https://github.com/Peergos/Peergos?tab=readme-ov-file
Sounds a bit like Plebbit, though that is more about P2P “communities/boards” that a user starts and others can post to, rather than a microblog type platform. Unfortunately it also has a strong association with Crypto communities as its founders come from that scene. It is built on IPFS.
What you describe also has similiarities to Secure Scuttlebutt and its successor PZP , which are both unfortunately abandoned but layed a lot of groundwork for asynchronous encryption key based networks.
I haven’t tried Nostr, so have no opinions on what the experience of actually using it is like, but cryptographic identity seems like it’d be a better way (technically speaking) of doing things than AP; tying everything to domain names has worked rather poorly – as we’ve seen repeatedly every time an instance goes offline…
I ended up on AP after jumping ship from reddit. I was on kbin first (since it was readable w/o JS and I liked the UI), and then later using the mlmym interface for lemmy as kbin because more unstable and eventually went offline.
I like Nostr over ActivityPub: simpler, more elegant protocol, decentralized, public key signatures, resistance to censorship, anti-moderation.
@Cooper8 @fediverse isn't nostr using Blockchain? Ain't that super energy wasteful?
Ulrich@feddit.org 3 weeks ago
Mostly cultural, with a strong focus from NOSTR appearing to be crypto scams.
damnthefilibuster@lemmy.world 3 weeks ago
This, mostly. I looked into it. But it was too focused on blockchain and not enough on the social apps. It was a dead zone when I checked it out.