mirror of
https://github.com/hzrd149/blossom.git
synced 2025-12-08 14:58:49 +00:00
Compare commits
9 Commits
hls-videos
...
2e4c3a0349
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e4c3a0349 | ||
|
|
d05228aae1 | ||
|
|
1d855e1633 | ||
|
|
51c93670aa | ||
|
|
e39afe2149 | ||
|
|
4d82f98b3c | ||
|
|
8fc2e3dc31 | ||
|
|
a23d784673 | ||
|
|
33714b6c0c |
@@ -27,6 +27,7 @@ BUDs or **Blossom Upgrade Documents** are short documents that outline an additi
|
||||
- [BUD-08: Nostr File Metadata Tags](./buds/08.md)
|
||||
- [BUD-09: Blob Report](./buds/09.md)
|
||||
- [BUD-10: Blossom URI Schema](./buds/10.md)
|
||||
- [BUD-12: Chunked blobs](./buds/12.md)
|
||||
|
||||
## Endpoints
|
||||
|
||||
@@ -56,6 +57,7 @@ Blossom Servers expose a few endpoints for managing blobs
|
||||
| ------- | ------------------- | ------------------ |
|
||||
| `24242` | Authorization event | [01](./buds/01.md) |
|
||||
| `10063` | User Server List | [03](./buds/03.md) |
|
||||
| `2001` | Merkle tree | [12](./buds/12.md) |
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -204,4 +204,3 @@ blossom:b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553.pdf?xs=
|
||||
```
|
||||
blossom:a7b3c2d1e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1.png?xs=cdn.example.com&xs=media.nostr.build&as=781208004e09102d7da3b7345e64fd193cd1bc3fce8fdae6008d77f9cabcd036&as=b53185b9f27962ebdf76b8a9b0a84cd8b27f9f3d4abd59f715788a3bf9e7f75e&sz=2547831
|
||||
```
|
||||
|
||||
|
||||
68
buds/12.md
Normal file
68
buds/12.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# BUD-12
|
||||
|
||||
## Chunked blobs
|
||||
|
||||
`draft` `optional`
|
||||
|
||||
Breaking large blobs into smaller chunks for distribution
|
||||
|
||||
### Chunking
|
||||
|
||||
The client MAY break large blobs into any number or size of chunks. although its recommended to use the size `1Mb` or `4Mb` for small and large chunks
|
||||
|
||||
Clients MUST NOT pad the remaining chunk, If clients need privacy they should use random chunk sizes and optionally encrypt the large blob
|
||||
|
||||
### Publishing
|
||||
|
||||
Clients should publish a `2001` kind event after chunking the file in order to store the list of chunks
|
||||
|
||||
The events MUST contain an ordered list of `chunk` tags with the sha256 hashes of the chunks
|
||||
|
||||
The `content` field MUST be a human readable description of the chunked file
|
||||
|
||||
```json
|
||||
{
|
||||
"tags": [
|
||||
[ "chunk", "7e668b56a58c7891e0cf263ea3f093b75eebade23d663a45aa9920f347b3d671"],
|
||||
[ "chunk", "9b9c44a91396f19fd8700986eb0586dff2dcccf96c75bc2caefef302bcd78da1"],
|
||||
[ "chunk", "7a281548f1223664b855b10b08e59e84389ccabeb742517f6cd75eda2724a798"],
|
||||
[ "chunk", "fadeccee86b123088bbc452df10e8fbc99d4c2f22a70ef7a35605ec8e439c345"],
|
||||
[ "chunk", "5d62398419e6d136771541f3d2215e0ce31b1be45e99dbc64b43a4b734b447ca"],
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Metadata
|
||||
|
||||
The `2001` event MAY include additional metadata tags to help other clients know the filename, mime type or servers to download from
|
||||
|
||||
Metadata tags:
|
||||
- `name` Filename
|
||||
- `mime` Mime type of file
|
||||
- `size` Total size in bytes of the file
|
||||
- `server` (multiple) Recommended servers to download chunks from
|
||||
|
||||
### Examples
|
||||
|
||||
Example `2001` event
|
||||
```json
|
||||
{
|
||||
"pubkey": "5328e6c743a50271745e16476590ba7ea3dc591c65f3a5e2b03430814c1dabc0",
|
||||
"created_at": 1731405194,
|
||||
"kind": 2001,
|
||||
"content": "Large zip archive of documents",
|
||||
"tags": [
|
||||
[ "chunk", "7e668b56a58c7891e0cf263ea3f093b75eebade23d663a45aa9920f347b3d671"],
|
||||
[ "chunk", "9b9c44a91396f19fd8700986eb0586dff2dcccf96c75bc2caefef302bcd78da1"],
|
||||
[ "chunk", "7a281548f1223664b855b10b08e59e84389ccabeb742517f6cd75eda2724a798"],
|
||||
[ "chunk", "fadeccee86b123088bbc452df10e8fbc99d4c2f22a70ef7a35605ec8e439c345"],
|
||||
[ "chunk", "5d62398419e6d136771541f3d2215e0ce31b1be45e99dbc64b43a4b734b447ca"],
|
||||
[ "name", "example.mp4" ],
|
||||
[ "mime", "video/mp4" ],
|
||||
[ "size", "4823449" ],
|
||||
[ "server", "https://cdn.example.com" ],
|
||||
[ "server", "https://nostr.download" ]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user