mirror of
https://github.com/hzrd149/blossom.git
synced 2025-12-08 14:58:49 +00:00
64eb1a81e806a3e5ca4732ed23d76cf56b024413
🌸 Blossom
Blobs stored simply on mediaservers
What is it?
Blossom is a spec of http endpoints for storing blobs on publicly accessible servers
How dose it work?
Blobs are packs of binary data addressed by their sha256 hash
Blossom Servers expose four endpoints for managing blobs
GET /<sha256>(optional file.ext)PUT /uploadGET /listDELETE /<sha256>
Blob Descriptor
A blob descriptor is a JSON object containing url, sha256, size, type, and created fields
urlA public facing url this blob can retrieved fromsha256The sha256 hash of the blobsizeThe size of the blob in bytestype(optional) The MIME type of the blobcreatedThe unix timestamp of when the blob was uploaded to the server
Servers may include additional fields in the descriptor like magnet, infohash, or ipfs depending on other protocols they support
Nostr Identities
Blossom uses nostr public / private keys for identities. Users are expected to sign "Client Authentication" events to prove their identity when uploading or deleting blobs
Server Implementation
See Server
Client Implementation
Example Implementation: blossom-client (TypeScript)
Description
Languages
Markdown
100%