diff --git a/README.md b/README.md index 628b37a..0fc2093 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,29 @@ Blossom uses [nostr](https://github.com/nostr-protocol/nostr) public / private k ## 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 +Blossom is a specification 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? +## Protocol specification (BUDs) + +BUDs or **Blossom Upgrade Documents** are short documents that outline an additional feature that a blossom server may implement. + +## BUDs + +- [BUD-00: Blossom Upgrade Documents](./buds/00.md) +- [BUD-01: Server requirements and blob retrieval](./buds/01.md) +- [BUD-02: Blob upload and management](./buds/02.md) +- [BUD-03: User Server List](./buds/03.md) +- [BUD-04: Mirroring blobs](./buds/04.md) +- [BUD-05: Media optimization](./buds/05.md) +- [BUD-06: Upload requirements](./buds/06.md) +- [BUD-08: Nostr File Metadata Tags](./buds/08.md) +- [BUD-09: Blob Report](./buds/09.md) + +## Endpoints Blossom Servers expose a few endpoints for managing blobs @@ -32,23 +48,6 @@ Blossom Servers expose a few endpoints for managing blobs - `Authentication`: Signed [nostr event](./buds/05.md#upload-authorization) - `PUT /report` [BUD-09](./buds/09.md) -## Protocol specification (BUDs) - -BUDs stand for **Blossom Upgrade Documents**. - -See the [BUDs](./buds) folder and specifically [BUD-01](./buds/01.md) and [BUD-02](./buds/02.md) for a detailed explanation of the endpoints - -## BUDs - -- [BUD-01: Server requirements and blob retrieval](./buds/01.md) -- [BUD-02: Blob upload and management](./buds/02.md) -- [BUD-03: User Server List](./buds/03.md) -- [BUD-04: Mirroring blobs](./buds/04.md) -- [BUD-05: Media optimization](./buds/05.md) -- [BUD-06: Upload requirements](./buds/06.md) -- [BUD-08: Nostr File Metadata Tags](./buds/08.md) -- [BUD-09: Blob Report](./buds/09.md) - ## Event kinds | kind | description | BUD | diff --git a/buds/00.md b/buds/00.md new file mode 100644 index 0000000..fc50c19 --- /dev/null +++ b/buds/00.md @@ -0,0 +1,19 @@ +# BUD-00 + +## Blossom Upgrade Documents + +`draft` `mandatory` + +This document details the common language for all following BUDs + +## Language + +All occurences of "MUST", "MUST NOT", "SHOULD", "SHOULD NOT" MUST be interpreted as per [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) + +## BUDs + +BUDs or "Blossom Upgrade Documents" are short documents that outline an additional requirement or feature that a blossom server MUST or MAY implement. + +## Blobs + +Blobs are raw binary data addressed by the sha256 hash of the data.