Should we deprecate NIP-96 in favor of Blossom servers?
Discussion
Yes
Can you point me to a resource that I can learn about blossom servers
blossom github https://github.com/hzrd149/blossom
Thank you 🙏🏾
I've been using the nostr.build blossom server since yesterday. It's working great so far.
Yes.
NACK.
Yes, Blossom is better in many ways - but what with the clients and libraries targeting n96? IMHO, Blossom is not a NIP and not a direct part of Nostr itself - so it is a "linked protocol" and independent. So I don't think deprecating nip96 with an "out of protocol" spec would be right. o.o
Just my two cents.
I share UTXO's opinion. As a dev, Blossom is the... convenient choice 🤣. Dev hat aside and user hat on, I don't personally use any of the features provided by NIP-96 that aren't already covered by Blossom. That said, honestly, it might be easier to get consensus on editing kind 1 notes on Nostr than on the NIP-96 vs. Blossom debate. I know a lot of people who are firmly on the NIP-96 side of the fence.
nostr:nprofile1qqsqdzwltpr635ehdzfd52tz947qlhq77x2c7j7yguwep9n258k2nuspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszxmhwden5te0w35x2en0wfjhxapwdehhxarjxyhxxmmd9uq3kamnwvaz7tmhdpjkzapwdpshqurew3shvetjdchxxme009m95a, sorry to put you on the spot. If you found the words to articulate your position about Blossom, now may be a good time.
I won't pretend to know enough to offer my own opinion.
I have been told by people that I trust that blossom... Needs work.
Can you share in more detail what are your dislikes with blossom? No need to start anything negative, genuinely curious.
Looking to host my own server for users to upload different media formats (.zip and others)
- what would be the best way to do this?
That’s what Supermax said 👆, and the people you trust are also welcome to join the discussion and share their thoughts on what could be improved. I’ve heard some early criticism and seen the evolution of the /mirror and /media endpoints. I’ve even engaged with the BUDS myself regarding CORS, range requests, and caching. I think nostr:nprofile1qqszv6q4uryjzr06xfxxew34wwc5hmjfmfpqn229d72gfegsdn2q3fgpr3mhxue69uhhxct5v4kxc6t5v5hxs7njvscngwfwvdhk6tcpzfmhxue69uhkummnw3e82efwvdhk6tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsk7wj75 and the folks working on it are very approachable. While the vision for Blossom is a "simple" protocol with some non-negotiable restrictions ( like serving endpoints at the root ), I feel there’s a lot of goodwill toward making Blossom better.
Nope. Mostly because I don't have a clue how to use it, and that's my only "legitimate" critique, I suppose. Lots of "cool, whizbang nostr stuff" requires way more time and effort to put in to getting working. This comes down to two things:
1. Horrifically bad coding, leading to very inconsistent performance or just not working, then the dev getting bored with it and squirreling off to another idea letting their bad code flop in the breeze.
2. Personally not having the understanding of WTF is going on and it not being simple enough in concept or execution for an idiot like me to utilize on my own hardware in, like, 15 minutes.
So, for blossom:
I don't understand what it is, how it is supposed to work, or if it is even worth bothering with since I don't trust the devs who are currently working on it to actually follow through to get a stable, simple to set up, easy to use, and most importantly, reliable thing.
I'll use hazard as an example:
Nostrudel is horrifically broken. No effort is being put into fixing it while hazard is off in Blossom-Land, and, to me, this is not the character of a person that I respect to be to build anything lasting. I can see how a person acts and reacts to situations. I don't like what I see, no matter how smart or capable someone is, I much prefer boring competence at basics.
I just don't like supplanting NIPs for shiny toys. I also don't like how opaque much of the NIP repo has become. Mind you, I'm not and never, ever want to be part of that directly, as I have way more important stuff to be concerned with and spend my precious little time on.
Very few people are addressing the current flaws in the Foundation of the nostr protocol. Building on a broken foundation is stupid. All the reasons given for it are immature and/or driven by greed, since, I'll yet again mention the market distortion pushed by the VCBRO mentality jerkwads.
Hypocritical of you to bitch about not enough people trying to fix nostr while you have me muted and you never cared about Digit who motivates all my work
Damn. A lot to take in there. I'll comment where I can.
In a TLDR, what would you suggest then to be able to have users upload .zip files to my relay? If anything?
Hey Beave, as always, I welcome your takes. I don't know if your questions are rhetorical or not, but I'll try to answer and comment below, as I was the one who summoned you (despite thinking there are people more qualified than me to do this).
> What is it?
A way for you to upload, store, and serve your photos, videos, etc., now supported by many Nostr clients.
> How does it work?
Just like Nostr, Blossom is a specification/standard. It works at the HTTP level instead of WebSockets and is evolving as we speak. You can find the equivalent of Nostr NIPs (Blossom BUDS) here, along with the supported endpoints: https://github.com/hzrd149/blossom. And yes, this means there are no NIPs for Blossom that I know of, as Blossom is its own thing.
> Is it even worth bothering with?
Only you can answer that. I'm personally using Haven to store and serve my own media on Nostr, so I have a use case to cover. Granted, this can also be done with NIP-96, which is why Vitor is pointing out the competing technologies and possible deprecation path above.
> I don't trust the devs building it [...] stable, simple to set up, easy to use, and most importantly, reliable.
Well, I don't think I'm a reliable dev myself, so everything I'm about to say likely won't help much 🤣. But since I've been using Blossom through Khatru + Haven, it means I've been fixing bugs and keeping an eye on performance and reliability for my own benefit. I'm also working hard on documenting Haven and making it as easy as possible to run. You can basically run docke compose up and get a fully working, all-batteries-included version of Haven with its built-in Blossom server from my repo.
I certainly welcome you to try it and get in touch about any issues you encounter if you are ever curious about it. But this is not my main point... What I'm trying to say is that, like me, there are plenty of devs without grants or VC money, spending a few hundred sats for each sat they receive on Nostr. The way free software advances is by folks using stuff, reporting bugs and eventually getting so annoyed with some things that they decide to fix them themselves. Get enough people involved, each doing their small share of humble, honest work, and suddenly neither I nor anyone else is bigger than the project itself (not even the Linus Torvalds of the world).
--
As for the rest of what you said... I get it. I really do. Nostr has been a learning experience for me as well and not just in a technical sense (learning Go, Nostr, Blossom, and enough about their respective ecosystems so that I could get things working) but more importantly, I'm learning about building things in the open.
Sure, 99% of the software on Nostr wouldn't make the v1 cut if I were "in charge." No tests? Messy architecture and code that you're afraid to refactor without breaking? No consensus on basic functionality? Devs actively breaking each other's software to make a point? Everyone trying to escape the "legacy" stuff to work on self-contained greenfield projects? Sorry, no go buddy. I'm often here complaining to Vitor, Fiatjaf, hzrd149, and others about the gazillion things that never get fixed and that drive me crazy as a user.
Why does Amethyst keep spamming my relays instead of simply sending events to the right place? Why is there no GiftWrapping DM support in clients X, Y, and Z? Why is logging in with Amber so hit-or-miss? And why Nostrudel... and Citrine... and Pokey... and, and, and...
Yet here I am, complaining about all these broken things and about all the improvements devs need to make... I'm doing it here... Today. We are using and shaping Nostr and surrounding tech, with all of its flaws, infighting, bugs, arguments and dead ends happening in public. This imperfect ecosystem, with all its messiness and larger-than-life characters with their unique personalities. Open. In public. Today.
We're complaining about Nostr software that’s already in users' hands. Haven is powering ~10% of Nostr relays if the statistics are to be trusted. Haven didn't exist last August. And if it weren’t for Utxo "rushing" it to release, if it had been built by my own standards, it simply wouldn't have been released. And I don't just mean that we wouldn't have a v1. I mean it would likely still be pre-alpha software in a well-hidden repository, run by maybe five devs for, I don’t know, a couple of years?
By then, Haven might have had the best and most complete test suite, the cleanest code, the best UX, and tons of amazing features, all conveniently packaged and ready to go on 20 different OSes and five different hardware architectures, thanks to a flawless CI pipeline and a well-secured software supply chain. And by then, Haven might have been totally irrelevant, or maybe it wouldn’t have been released at all. I've seen this happen before in projects consuming the kind of budget that all VC investment + grants on Nostr combined couldn't pay for (not a hyperbole by the way; this often happens in massive companies). This is why we need people testing, breaking, and improving these tools in the open... Today!
Am I saying that building software in a more private, well-planned way is bad? Not necessarily. I recommend reading The Cathedral and the Bazaar by Eric Raymond if you're interested in this kind of thing. A lot of what is built on Nostr follows the bazaar model, but there’s certainly some cathedral-style software being built very successfully here too. Depending on what you're building, the cathedral model makes a lot of sense.
However, without trying to kiss any dev asses around here, I’m glad for the bazaar. I understand its values, even when they clash with my own. I hope this makes sense and puts my interest in discussing the merits and flaws of Blossom and NIP-96, as well as the path forward for popular clients like Amethyst in the right context.
These are my two pennies. At this post length, it’s almost a pound. This should have been a long-form article or maybe even a series of articles to begin with. Hopefully, it’s helpful to others. Otherwise, it was just fun to ramble about random stuff.
Given how quickly the list is growing, I think yes. They have momentum.
Yes
Blossom would need a NIP first.