Blossom-Protokoll
Blossom ist ein Medien-Hosting-Protokoll für Nostr, das Blobs auf gewöhnlichen HTTP-Servern speichert und sie anhand ihres SHA-256-Hashes statt durch serverseitig vergebene IDs adressiert.
Wie es funktioniert
Blossom-Server bieten eine kleine HTTP-Schnittstelle für den Abruf, das Hochladen und die Verwaltung von Blobs. Der kanonische Bezeichner ist der Datei-Hash, sodass derselbe Blob auf jedem konformen Server dieselbe Adresse behält.
GET /<sha256>ruft einen Blob per Hash abPUT /uploadlädt einen Blob hoch- kind
24242Nostr-Events autorisieren Uploads und Verwaltungsaktionen - kind
10063-Events, definiert in BUD-03, ermöglichen es Nutzern, ihre bevorzugten Server zu veröffentlichen
Da der Hash der Bezeichner ist, können Clients die Integrität nach dem Download lokal prüfen und einen anderen Server versuchen, ohne die zugrunde liegende Referenz zu ändern.
Warum es wichtig ist
Blossom trennt Blob-Speicherung von sozialen Events. Eine Notiz oder ein Profil kann auf Medien verweisen, ohne diese Medien an das URL-Schema eines einzigen Hosts zu binden.
Das verändert auch die Fehlerbehandlung. Wenn ein Server ausfällt, können Clients denselben Hash von einem Spiegel, einem Cache oder einem Server abrufen, der über die BUD-03-Liste des Autors gefunden wurde. Das ist eine praktische Verbesserung gegenüber Mediensystemen, bei denen die URL des ursprünglichen Hosts der einzige Locator ist.
Interop-Hinweise
Blossom ist modular aufgebaut. Das grundlegende Abruf- und Upload-Verhalten ist in BUD-01 und BUD-02 definiert, während Spiegelung, Medienoptimierung, Autorisierung und URI-Freigabe in separate BUDs aufgeteilt sind.
Diese Aufteilung ermöglicht es Clients, das Minimum für grundlegende Interoperabilität zu implementieren und dann optionale Teile wie BUD-10 URI-Hinweise oder lokales Caching hinzuzufügen, wenn die Unterstützung reift.
Primärquellen:
- Blossom Repository
- BUD-01: Server-Anforderungen und Blob-Abruf
- BUD-02: Blob-Upload und -Verwaltung
- Leitfaden für lokalen Blossom-Cache
Erwähnt in:
- Newsletter #1: News
- Newsletter #2: Notable Code Changes
- Newsletter #10: Blossom local cache layer emerges
Siehe auch: