Skip to content
/ blossom Public
forked from hzrd149/blossom

Blobs stored simply on mediaservers

Notifications You must be signed in to change notification settings

dskvr/blossom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌸 Blossom WIP

Blobs stored simply on mediaservers

What is it?

Blossom is a spec for a set of http endpoints that allows 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 dose it work?

Blossom Servers expose four endpoints for managing blobs

  • GET /<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 from
  • sha256 The sha256 hash of the blob
  • size The size of the blob in bytes
  • type (optional) The MIME type of the blob
  • created 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

About

Blobs stored simply on mediaservers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published