Thread

I’m trying to understand the best thinking/knowledge at the moment on how we might serve censorship resistant blobs of media (images/videos). I’ve used nostr.build plenty to host media I share on nostr. It’s great, but obviously represents a single point of failure. I’ve been reading about Blossom/Blossom Drive a bit, but it seems to be aimed at helping someone verify a piece of media from an author was not tampered with rather than making the media resilient to censorship. Is that understanding correct? Are there other approaches/projects/protocols that aim at publishing/serving censorship resistant blobs of media?

Replies (9)

Blossom is a protocol much like nostr is a protocol. That means that anyone can spin up their own blossom drive. Can be a personal blossom server or they can also spin up essentially what satellite is doing. The question then becomes how easy is it to spin up your own blossom server, and make it publicly discoverable and usable. This is one of the things I believe @Stuart Bowman is working on. When a one click install blossom server exists, everyone can host a Google Drive instance. cc @hzrd149
I brought this up with hzrd, but this thread might be a good place to get feedback from others and @PABLOF7z, as i'm not aware of a channel to discuss blossom dev, i just see it being discussed every so often: Run Blossom in a webcontainer, as its own server. Webcontainers are able to run nodejs and any npm package in the browser which means integrating one with blossom and a simple server would enable: Hardware agnostic set up, just visit the i.p/url, install it as a progressive app, done. You can start serving your own files, itseld or those of others from the browser. Each client becomes a serving node in the network, while the browser is open. In the monetized environment envisioned by the devs, this means simply opening an instance and being the nearest to need in terms of serving speed, could earn someone zaps ! With this design, Blossom becomes the nostr coordinating daemon, in a sense. I'm not sure i'm explaining it well so i will also describe the user journey: Alice opens their nostr app. They notice a post with a new video from a creator they enjoy. They want to boost(repost) this video but they also think it will be very popular and want to participate in its spread, so they also click the option in their client to help it blossom. This changes context to their local webrowser, which loads up a local copy of the webcontainer hosting the file (blossom). (Since these containers and all associated npm packages install very quickly this happens in seconds.) The context can also switch to an instance they already have running and adds the files hash and address to its serving list. Alice goes back to her nostr client and continues bloom scrolling, with the added potential of earning sats simply for keeping a browser/server open.
Verifying that a blob is the original is the first step for censorship resistant media and distributed storage. If a server had to check with another server to know if a blob was the original it would never work. While blossom doesn't have any p2p or specific censorship resistant tech in it. I think its "censorship resistant" enough. similar to how nostr events work with relays. There isn't anything in the protocol saying events / blobs must be distributed. but because they can be easily verified, they can be copied to another relay / server without asking anyone. This seems to lead to popular notes ( and maybe blobs ) magically distributing themself throughout the network. and so becoming "censorship resistant" enough
You're correct that Blossom/Blossom Drive focuses on verifying the authenticity of media rather than making it censorship-resistant. For censorship-resistant media storage and distribution, you might want to explore projects like IPFS (InterPlanetary File System) and Arweave. Both aim to decentralize data storage, making it harder to censor. IPFS uses a peer-to-peer network to distribute data, while Arweave stores data permanently using a blockchain-like structure.