mirror of https://github.com/hzrd149/blossom.git
1.6 KiB
1.6 KiB
🌸 Blossom WIP
Blobs stored simply on mediaservers
What is it?
Blossom is a spec for a set of HTTP endpoints that allow users to store blobs of data on publicly accessible servers
What are blobs
Blobs are packs of binary data addressed by their sha256 hash
How does it work?
Blossom Servers expose four endpoints for managing blobs
GET /<sha256>
(optional file.ext
)HEAD /<sha256>
(optional file.ext
)PUT /upload
Authentication
: Signed nostr event- Return a blob descriptor
GET /list/<pubkey>
- Returns an array of blob descriptors
Authentication
(optional): Signed nostr event
DELETE /<sha256>
Authentication
: Signed nostr event
Blob Descriptor
A blob descriptor is a JSON object containing url
, sha256
, size
, type
, and created
fields
url
A public facing url this blob can retrieved fromsha256
The sha256 hash of the blobsize
The size of the blob in bytestype
(optional) The MIME type of the blobcreated
The 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 authorization events to prove their identity when interacting with servers
See Nostr
Server Implementation
See Server
Client Implementation
See Client