Nostr Compass #25 — Magyar Összefoglaló¶
Dátum: 2026. június 3. Forrás: https://nostrcompass.org/en/newsletters/2026-06-03-newsletter/
Top Stories¶
Amber 6.2.0: NIP-44 v3 titkosítás a spec előtt¶
Az Amber (domináns Android signer) június 1-jén kiadott v6.2.0 verziója NIP-44 v3 titkosítást szállít dedikált approval képernyővel, intent előnézettel, bunker preview-val, history logging-gal és auto-rejecttel az érvénytelen kérésekre. A release regisztrálja a NIP-44 v3 ContentProvider authority-kat is, hogy más Android appok is kérhessék a v3 titkosítást a v2 mellett. A NIP-44-et a NIP-17 privát DM-ek, NIP-46 bunker forgalom és más Nostr primitívek használják; a v3 opcionális a v2 mellett, külön signer metódussal jelezve, így a fogadó oldali kliensek explicit egyeztethetik az algoritmust. A vonatkozó NIPs PR még nem landolt, szóval Amber a protokoll-konszenzus előtt rolloutolja a v3-at. A NIP-46 session-ök mostantól auto-elfogadják a ping kéréseket connectkor, eltávolítva az első round-trip promptját. A sign_message signer metódus teljesen törlődött (elavult és nem használt).
Trades-off: Mivel Amber a domináns Android signer, minden downstream kliensnek, amelyik v3-at akar, az Amber wire formatját kell céloznia, amíg a NIPs PR landol. Ez ideiglenesen egyszeri implementációs referenciaponttá teszi, amit más klienseknek követniük kell.
Mostro: Cashu escrow integráció CDK-n keresztül¶
A grunch nyolc PR-t landolt a MostroP2P-n ezen a héten, integrálva a Cashu meglévő P2PK multisig primitívjeit (NUT-10 és NUT-11) második settlement backendként a Lightning mellé a Nostr-koordinált P2P Bitcoin exchange-en. A kriptográfiai primitívek Cashu sajátjai; a munka integrációs scaffolding és egy új escrow backend trait. A Mostro core v0.12.0 (május 30.) hozzáadja a 2-of-3 multisig escrow protokoll típusokat, a per-proof P_M signatúrákat, és engedélyezi az escrow eventeket a response validáción. Az architektúra a PR #756-ban dokumentált, a per-order trade key-eket a PR #757 tisztázza.
A rollout hat follow-up PR-en keresztül ment egy nap alatt. F2 (PR #758): config, escrow mode, feltételes boot. F3 (PR #760): EscrowBackend trait Lightning implementációval és Cashu stub-bal — az order state machine változtatása nélkül lehet settlement backendet váltani. F4 (PR #759): CDK (Cashu Development Kit) wrap mint és wallet műveletekhez. F5 (PR #761): compare-and-swap escrow zárak és active-locked query-k. F6 (PR #762): containerizált mint dedikált CI job-ban end-to-end escrow teszthez. A Mostro flow amúgy is NIP-59 gift-wrapped DM-eket használ order koordinációra a relay-en, szóval a Cashu escrow simán beilleszkedik második settlement opcióként a Lightning mellett anélkül, hogy a wire protokollhoz hozzányúlna.
Releases¶
ngit v2.5.0: GRASP fallback és lusta git fetch-ek¶
Az ngit v2.5.0 megváltoztatja a git push pr/<branch> és ngit send alapértelmezett viselkedését: PR kind eventet produkál új proposalokhoz, ha a repóban van legalább egy regisztrált GRASP szerver. Korábban ez csak 60 KB feletti commitoknál vagy submodule-okat tartalmazó commitoknál triggerelődött. Ha a PR-t nem lehet a repo GRASP szervereire pusholni, az ngit most GRASP-06 routingra esik vissza a deklarált szervereken át. Az ngit send --git-server flag vagy git push -o git-server=<url> explicit egyedi git URL-t vagy GRASP szervert céloz.
ngit init republish megőrzi az ismeretlen tag-eket a meglévő announcement-ökből, szóval a jövőbeli ngit verzió vagy third-party tool által hozzáadott tag-ek túlélik a republish-t. Sárga warning listázza a carried-over tag-eket, és --clean kérésre eltávolítja őket. ngit pr apply, ngit pr checkout, ngit pr list lustán konzultálják a git szervereket és osztoznak egy fetch helper-en, szóval a checkout nem fetchel feltétlenül, ha a commit már lokális. A checkout a submitter-supplied clone URL-eket is megpróbálja fallbackként, ha a repo deklarált git szerverei nem hordozzák a PR tippet. Az ngit a referenciaként szolgáló NIP-34 implementáció git collaboration-höz Nostr felett, és a v2.5.0 a GRASP-ot teszi első osztályú úttá új contributorok számára.
Jumble v26.5.7: EXIF stripping és validált zap count-ok¶
A Jumble v26.5.7 két, közvetlenül a user privacy-t és data integrity-t érintő változást hoz. Az EXIF location és camera azonosítók mostantól törlődnek a kép feltöltésekből, mielőtt elhagyják a klienst — ez egy régóta fennálló metadata-szivárgási felület volt, ami minden Jumble-ból posztolt képet érintett. A zap count-ok mostantól csak kriptográfiailag validált receipt-ekből számítódnak, kijavítva a felfújt count-okat a malformed zap eventekből, amikkel támadók túlbecsülhették a note-ok zap összegét. A release sender-identity verifikációt is hozzáad a NIP-17 DM-ekhez, bezárva egy spoofing felületet, ahol a sender hamisíthatta a pubkey-jét a seal-ben.
nostr-calendar v1.6.0: RSVP és duplikált participant kezelés¶
A nostr-calendar v1.6.0 landolja a Formstr RSVP flow-t (PR #169) és megakadályozza a duplikált participant-okat event invite-okban (PR #168). A waitForAll opció a publish függvényben mostantól default false, szóval a UI nem blockol lassú relay-eken (PR #170). A PR #157 szállította a Formstr két NIP proposal draftját appointment scheduling-hez és reservations-höz.
Sprout 0.3.6: Sprout × mesh-llm és channel sections¶
A Sprout v0.3.6 egy hat kiadásból álló sor (v0.3.1–v0.3.6) főcíme ezen a héten. Az in-process Sprout × mesh-llm integráció a PR #798-ban landol, lehetővé téve, hogy a Sprout mesh-llm node-okat szolgáljon és fogyasszon relay admissionön át. A user-defined channel sections device-ok között szinkronizálódnak Nostr-on át a PR #792-ben, a channel sections mobilra is megérkeznek relay szinkronnal a PR #800-ban. Thread-aware notification-ök mutable follow és mute kontrollokkal a PR #761-ben.
Tetszőleges fájltípusú attachment-ek download card-okkal a PR #810-ben, kibővítve a Sproutot az image-only attachment-eken túlra. A mobil Pulse social feed tab-ot kapott (PR #772) és Pulse polish-t feed, compose és filter surface-eken (PR #796).
NostrBotKit v0.5.0: Marmot group chat Rust bot frameworkben¶
A NostrBotKit v0.5.0 (május 24., Codeberg) Marmot (MLS-over-Nostr, NIP-104) támogatást ad a self-hosted Rust bot frameworkhöz. Ha marmot: true van beállítva, a bot publikálja az MLS key package-jeit (kind 443, 30443, 10051), automatikusan elfogadja a group invitation-öket, és figyeli az üzeneteket a csatlakozott group-okban. Két új command típus: dm_marmot és dm_marmot_npub — botok named Marmot group-okba vagy 1:1 Marmot chat-ekbe küldhetnek üzeneteket cron job-ok vagy webhook-okon át. Hogy elkerüljék a feedback loop-okat más botokkal, a NostrBotKit botok csak explicit a /command vagy @botname/command módon címzett üzenetekre válaszolnak. Az MIP-04-gyel titkosított attachment-ek auto-decryptálódnak és re-uploadolódnak Blossom-on vagy NIP-96-on át, az MLS state database a bot privát key-jéből derivált kulccsal van titkosítva. A NostrBotKit az első Rust framework, ami NIP-104 bot támogatást szállít, megnyitva a Marmot-titkosított bot deploymentet egy másik operátor profil felé, mint a meglévő TypeScript út.
noscrypt v0.1.14: signed cryptography library release¶
A noscrypt v0.1.14 a C cryptography library biztonsági release-e, amit több Nostr kliens használ secp256k1, NIP-04 és NIP-44 primitívekhez. A release PGP-signed download-okkal érkezik, amik a maintainer publikus kulcsa ellen verifikálhatók. A noscrypt-ot bundle-ölő downstream klienseknek validálniuk kellene a signatúrát integráció előtt.
Chama v1.3.0: új Nostr-native P2P escrow Fedimint-tel¶
A Chama v1.3.0 (június 1.) egy négy kiadásból álló sor főcíme egy új Nostr-native P2P escrow klienshez, ami Fedimint ecash-t és 2-of-3 Shamir secret sharing-et használ settlement-hez. A project a getchama.app-on érhető el és szerver nélkül fut. A v1.3.0 bevezeti a "heal that sticks"-et (sikeres re-broadcast és trade healing, ami session restartokat túléli) és a pay-rail matching-et, ahol az US-leaning Chama-k US payment rail-eket preferálnak. Multi-unit storefront alapok landoltak a v1.2.11-ben (multi-unit schema) és a v1.2.12-ben (storefront stock accountant + natív Fedimint bridge recovery hardening). A Chama csatlakozik a Mostro-hoz és a Shopstr-hez a Nostr marketplace kategóriában, megkülönböztetve a serverless architektúrájával és Fedimint-alapú escrow settlement-jével.
Unreleased changes¶
Amethyst: NIP-32 hashtag labeling, podcast screen, music tracks¶
Az Amethyst 52 PR-t és 411 commitot merge-elt ezen a héten release tag vágása nélkül. A legnagyobb funkcionális kiegészítés a PR #3111, ami implementálja a NIP-32 hashtag labelinget és egy label-alapú hashtag feed-et kind 1985 eventekkel L namespace és l label tag-ekkel. Ez leváltja a törékeny text-match #tag mechanizmust egy labeler-alapú discovery modellel, ahol a userek specifikus labeler npub-okat követhetnek úgy, ahogy content creatore-okat követnek. A PR #3105 dedikált podcast screen-t ad episode listával és inline playerrel, landolva a NIP-F4 podcast spec merge-je után napokkal. A PR #3071 Software Apps feed-et ad follow-list filterrel, a PR #3067 pedig music tracks és playlists támogatást NIP-51 set-eken át.
Ephemeral signerek anonymous poszt feltöltésekhez a PR #3123-ban landolnak, lehetővé téve, hogy a user anonymous posztoljon anélkül, hogy az identity key-jét felfedné upload service-eknek. Egy Tor self-heal watchdog integration tesztekkel Arti v2.3.0 ellen a PR #3053-ban, erősítve az Amethyst Tor routingját tranziens network outage-ek alatt. Onchain zaps és NIP-05 filter returning usereknek Gemini-től a PR #3052-ben, kiterjesztve a zap surface-t a Lightningön túlra onchain Bitcoin fizetésekre.
Shopstr: OpenGraph preview URL validáció¶
A PR #504 validálja az OpenGraph preview URL-eket, mielőtt megjelenítené őket marketplace listing-ekben, bezárva egy potenciális XSS felületet, ahol rosszindulatú eladók scripted contentet embedelhettek volna craftolt OG metadata-n keresztül. A Shopstr-hosted shop-ok OG preview-kat jelenítenek meg külső linkekhez, és a nem validált URL-ek lehetővé tették, hogy egy támadó tetszőleges contentet injektáljon a shop UI-ba.
NIP frissítések és protokoll spec munka¶
NIP-F4 (Podcasts) merge-elt két év után¶
A PR #1093 május 28-án merge-elt, két évvel és három hónappal azután, hogy fiatjaf megnyitotta az eredeti draftot. A NIP-F4 podcast episode-okat kind 54 eventekként definiálja imeta tag-ekkel audio file metadata-hoz (URL, mime type, language ISO code, fallback URL-ek, NIP-96 service flag, bitrate, duration), title tag-gel, opcionális image és description tag-ekkel, és t tag-ekkel topic labelekhez. A spec szándékosan RSS-t tartja a source of truth-nek: az episode-ok hordozhatnak i tag-et, ami az RSS podcast GUID-ra hivatkozik, lehetővé téve Nostr klienseknek, hogy linkeljenek meglévő podcast feed-ekhez az audio hosting duplikálása nélkül. A hosszú debate a PR thread-ben (podcast-namespace co-author Dave Jones, Alex Gleason és Mike Terenzio részvételével) egy koegzisztencia modellben állapodott meg, ahol a Nostr biztosítja a social layer-t az RSS felett, míg az RSS tartja a distribution layer-t. Az Amethyst PR #3105 podcast screen-je napokkal a spec merge után landol, és a Jumble GIF picker munkája is tartalmaz early podcast-attachment scaffolding-ot.
NIP-17 key decoupling (PR #2361)¶
fiatjaf június 1-jén nyitotta a PR #2361-et, ami azt javasolja, hogy a NIP-17 válassza szét az identity key-t az encryption key-től. A recipient-ek új kind 10044 eventben hirdetik az encryption key-jüket, és a senderek ezt a hirdetett key-t használják (ha jelen van) a gift-wrap inner seal-hez, csak a recipient identity key-jére fallbackelve, ha a hirdetmény hiányzik. A PR egy n tag-et is hozzáad a seal-hez, ami a sender encryption pubkey-jét hordozza, szóval a fogadók a helyes conversation key-t kikövetkeztethetik trial-decryption nélkül minden retired key ellen. A kimondott motiváció a bunker UX: a jelenlegi dizájnban egy bunker user minden fogadott DM-et round-trippel a signeren át kell decryptáljon, mivel az encryption key a signer által tartott identity key. A decoupling lehetővé teszi, hogy a kliens lokálisan tartsa az encryption key-t, míg az identity key a bunkerben marad signatúrákhoz.
A proposal megkapta a hét legkonfliktusosabb review-ját. Cody Tseng (Jumble) támogatja, mint a cross-client DM interop legegyszerűbb útját. Vitor Pamplona (Amethyst) két okból objektál: új hosszú-élettartamú decryption secretet ad a bunkerön kívülre, és a klienseket, amik nem szállítják, csendben elbuknak az üzenetek decryptálásánál azoktól a kliensektől, amik igen, degradation path nélkül, mert a törés a seal rétegnél van. Pamplona érvelése szerint a problémát már helyesen megoldja a Marmot key package-ek és epoch rotáció, és a kulcsszétválasztás retrofitelése a base NIP-17 specbe olyan interop failure-t teremt, amit a Marmot két évig tervezett ki. fiatjaf countere három részből áll: a decoupling opcionális per-recipient, az n-tag fix címezi a trial-decryption aggodalmat, és az alternatíva a bunker UX broken tartása, míg a Telegram megeszi a messaging use case-t. A thread maradt nyitva merge döntés nélkül, és a negyedév legjobban figyelt NIP diskussziója.
NIP-Silent Payments payment flow (PR #2362)¶
silentius-satoshi június 1-jén nyitotta a PR #2362-t a szélesebb Nostr Silent Payments NIP draft (PR #2355) társaként. A payment-flow NIP definiálja a kind 8352-t silent payment receipt notification-ökhöz (NIP-59 gift wrap-en keresztül szállítva, hogy a receipt link ne legyen publikusan megfigyelhető) és a kind 10353-at egy titkosított UTXO cache-hez, ami device-ok között szinkronizálódik ugyanannak a Silent Payments walletnek. A pár együtt lehetővé teszi, hogy egy payer Nostr-native primitívekkel jelezzen egy fizetést egy Silent Payments címre anélkül, hogy az on-chain linket felfedné a nyílt relay rétegen.
NIP-PIP Perfect IP Packets (PR #2364)¶
RandyMcMillan június 1-jén nyitotta a PR #2364-et draftként. Packet-tree transportot vezet be három új addressable kind-del: 39078 hordozza a manifestet, 39079 hordozza az egyes slice-okat, 39080 hordozza a repair request-eket. A spec olyan wire formatot definiál, ahol nagy fájlok addressable slice-okra tördelődnek, manifestek írják le a slice fát, és repair request-ekkel a fogadók kérhetik a hiányzó slice-okat. Early-draft státusz érvényes, a proposal még nem vonzott maintainer review-t.
NIP-29 audio/video live spaces (PR #2238)¶
A PR #2238 május 28-án merge-elt, kiterjesztve a NIP-29 relay-alapú group-okat audio és video live-space támogatással. A group-ok mostantól hivatkozhatnak aktív live-space session-re, lehetővé téve, hogy NIP-53-stílusú live activity eventek NIP-29 group kontextusba anchorolódjanak.
NIP-71 video multiple audio tracks (PR #2255)¶
A PR #2255 május 28-án merge-elt, audio-track imeta tag-eket adva a NIP-71 video eventekhez. Az új formátum URL-t, hash-t, mime type-ot, language tag-et (ISO-639-1 plus original-version flag-gel), fallback URL-eket, NIP-96 service signalt, bitrate-et és duration-t hordoz. Ez lehetővé teszi audio-only streaminget (video podcastok), resolution switchelést stabil audioval, több nyelvi track-et, és csökkentett storage-ot, ha a szerverek nem embedelnek audiót közvetlenül a videó fájlokba. A klienseknek ellenőrizniük kellene az audio-track elérhetőséget, mielőtt single-track viselkedést feltételeznének.
NIP-59 ephemeral gift wrap (PR #2245)¶
A PR #2245 május 28-án merge-elt, a kind 21059-et adva a meglévő kind 1059 gift wrap ephemeral counterpartjaként. A szematika megegyezik a standard NIP-59 wrap-pel, de ephemeral event rules-t követ NIP-01 szerint (a relay-ek droppolják broadcast után és nem perzisztálják). Ez lehetővé teszi, hogy appok a perzisztencia igényeik alapján válasszanak: typing indicatorok és presence pingek profitálnak az ephemeral-ből, míg a DM history-nak perzisztencia kell.
NIP-78 application-specific kind (PR #2292)¶
A PR #2292 május 28-án merge-elt, a NIP-78 application-specific data-t normál addressable kinddé reklasszifikálva, eldobva a korábbi külön range-et. Ez egyszerűsíti a replaceability szematikát és a NIP-78-at a többi application-state NIP által használt addressable event modellhez igazítja.
NIP-85 clarifications (PR #2304)¶
A PR #2304 május 28-án merge-elt, kis javításokkal a nyelvezetben a NIP-85 Trusted Assertions service providerenkénti több kulcs és relay körül, tisztázva az operátor-key-rotation útvonalat relay assertion service-ekhez.
NIP-01 relay connection management one-liner (PR #2307)¶
A PR #2307 május 28-án merge-elt, egyetlen mondatot adva a NIP-01-hez arról, hogy a kliensek hogyan kezeljék a relay connection lifetime-okat. A fix egy régóta fennálló gap-et címez, ahol a kliensek különböztek abban, hogy nyitva tartják-e a WebSocket connection-öket fetchelés után, csendes message loss-hoz vezetve olyan relay-eken, amik idle connection-öket droppolnak.
NIP-C7 kind 9 chat constraint (PR #2310)¶
A PR #2310 május 28-án merge-elt, a NIP-C7 chat view-kat kind 9 üzenetekre korlátozva. Ez szétválasztja az ephemeral chat-et a kind 1 timeline posztoktól olyan kliensekben, amik NIP-C7-stílusú chat surface-eket implementálnak.
NIP-55 simplification (PR #2363)¶
A greenart7c3 által jegyzett PR #2363 (június 1.) egyszerűsíti az Android signer application spec-et. Vitor Pamplona "Looks good"-ként signoffolta, fiatjaf megkérdezte, hogy merge-ready-e. A változás megnyitja az utat a NIP-44 v3 ContentProvider authority registration előtt, amit az Amber ezen a héten szállított.
NIP-44 v3 (Amber implementáció a spec előtt)¶
Az Amber NIP-44 v3-at szállított a v6.2.0-ban nyolc committal, ami implementálja a titkosítási upgrade-et és a ContentProvider authority registration-t, de a NIPs-repo spec PR még nem landolt. A NIP-44 versioned encrypted payload formatot definiál, amit signed eventeken belül használnak; a meglévő v2 (2024 óta production) secp256k1 ECDH-t, HKDF-et, paddinget, ChaCha20-at, HMAC-SHA256-ot és base64-et használ. A v3 wire format új version byte-ot (0x03) ad a nonce elé, lehetővé téve a fogadó klienseknek, hogy explicit egyeztessék az algoritmust. Az Amber implementáció tartalmazza a v3 invalid request-ek auto-rejectjét, dedikált approval screen-t a v2 approval-októl distinct módon, és per-direction plaintext loggingot a historyhoz. Amíg a NIPs PR nem merge-el, a v3 Amber-specifikus extensionként áll. Forward-looking signalnak kezelendő, nem stabil protokoll-szintű signalingnak.
NIP deep dive: NIP-32 (Labeling)¶
A NIP-32 strukturált módot definiál bármely Nostr actor számára, hogy eventeket, pubkey-ket, relay-eket, URL-eket vagy topic-okat labeleljen addressable kind 1985 eventekkel namespaced label vocabularryal. A spec két új tag-et vezet be: L jelöli a label namespace-t, l jelöli a labelt a namespace-en belül. Label-target tag-ek (e, p, a, r vagy t) specifikálják, hogy mi van labelelve. A namespace-követelmény megakadályozza, hogy több label rendszer összeütközzön: egy spam label a nip28.moderation-ben más szematikát hordoz, mint egy spam label a relay-report-ban.
A design választás, ami a NIP-32-ot a moderationön túl hasznossá teszi, hogy a labelek assertion-ök, nem protokoll-szintű igazság. Egy kind 1985 event csak annyit mond, hogy egy adott pubkey egy adott targetet labelelt egy adott namespace-ben. A trust model a kliensre van delegálva: minden kliens kiválasztja, mely labelereket honorolja, mely namespace-eket olvassa, és milyen UI affordancet ad mindegyik labelnek. Ugyanaz a primitív hordoz content warningokat, license assignmentet, ISO-639-1 language tag-eket kind 1 note-okon, ISO-3166-2 geographic tag-eket, content classificationt, distributed moderation suggestion-öket és reputation score-okat.
Az Amethyst PR #3111 ezen a héten a legnagyobb deployment eddig. NIP-32-n keresztül hashtag labelinget ad és egy label-alapú hashtag feedet, lehetővé téve a usereknek, hogy trusted labelerek által hozzárendelt labelek szerint böngésszenek. A korábbi #tag text-match mechanizmus, ami eredetileg a hashtag discovery-t hajtotta a Nostr-on, fallbackként marad un-labeled note-okhoz. A hashtag-as-label modell azt jelenti, hogy ugyanaz a note több label alatt is felfedezhető, amiket különböző labelerek rendeltek hozzá, és a userek muteolhatnak vagy boostolhatnak specifikus labelereket az underlying note-ok érintése nélkül.
Self-labeling is támogatott. Egy author közvetlenül a saját kind 1 note-jaihoz csatolhat L és l tag-eket, hogy deklarálja a nyelvet, lokációt és topicot. Egy note, ami ["L", "ISO-639-1"], ["l", "en", "ISO-639-1"] tag-eket hordoz, magát English-ként azonosítja, és language-aware klienseknél harmadik-fél labeling infrastruktúra nélkül szűrhető.
Az Amethyst rollout a közelmúlt Trusted Relay Assertions munkájával kombinálva azt sugallja, hogy a NIP-32 bármely "user-driven assertion about a target" minta standard szubsztrátumává válik a Nostr-on. A következő teszt az, hogy a labelerek maguk kifejlesztenek-e trust hierarchiákat: a userek fognak-e specifikus labeler npub-okat követni úgy, ahogy content creatore-okat.
NIP deep dive: NIP-F4 (Podcasts)¶
A NIP-F4 ezen a héten merge-elt, két évvel és három hónappal azután, hogy fiatjaf megnyitotta az eredeti draftot (PR #1093). Az F prefix sima hex numbering: NIP-F0–NIP-FF ugyanazt az 1-byte hex teret használja, mint NIP-0A–NIP-0D, a felső hex range overflow-ként szolgál, most, hogy a 01–99 decimális range megtelik. A NIP-F4 azt definiálja, hogy a podcastok hogyan publikálnak episode-okat és metadata-t Nostr eventekként, miközben az RSS-t komplementer layerként tartja magához az audio fájlhoz.
A core architektúrális választás az, hogy minden podcast a saját Nostr keypairje. A spec ezzel nyit: "each podcast is its own Nostr keypair". Ez lehetővé teszi, hogy a podcastok kombinálják a podcasting jelenlétüket egy normál kind 0 / kind 1 microblogging jelenléttel, és lehetővé teszi, hogy egy podcast az idő során váltson ownership-et key handover-en vagy MuSig2-stílusú shared signing-on át. Négy event kind hordozza a publishing layer-t:
- kind:10154: replaceable podcast metadata. Title-t, image-et, description-t, opcionális website tag-eket, és opcionális p tag-eket hordoz, amik author-okat jelölnek host, cohost vagy editor role-lal.
- kind:10164: author counter-claim. A spec példája kind 10064-et mutat (egy elírás, nyitva a korrekcióra), de a heading és a környező szöveg kind:10164-ként azonosítja. A userek listázzák a podcast pubkey-ket, amiket authorolnak, hogy a kliensek verifikálhassák a p tag-eket a kind:10154-ben egy equivalens claim ellen a supposed author-tól. Enélkül egy podcast hamisan tagelhet bárkit host-ként.
- kind:54: episode eventek, amiket a podcast pubkey közvetlenül authorol. Tag-ek: title, opcionális image, description, és egy vagy több audio tag. Minden audio tag
["audio", "<audio-url>", "<optional_media_type>"]. A spec megjegyzi: "other important fields to be specified here later after further discovery", a merge-elt forma szándékosan minimális. - kind:10054: NIP-51-stílusú favorite-podcasts lista, ami lehetővé teszi a usereknek, hogy megjelöljék, mely podcastokat követik.
A thread debate a merge körül Dave Jones (Podcasting 2.0 co-author), Alex Gleason, Mike Terenzio, Pablo F7z és staab részvételével zajlott. Jones erősen érvelt bármilyen kísérlet ellen, ami az RSS-t helyettesítené: "It's been tried many times and always fails", citálva a JSONfeed-et, XMPP-t, AMP-t, Twitter API-ját és Spotify sikertelen migrációját. Terenzio újraframetezte a proposal-t social layer-ként az RSS felett, az RSS-t tartva distribution layer-ként. fiatjaf beleegyezett, hogy visszalép és hagyja a proposal-t érni: "I agree with everything you said but I still think we can pull it off, let's stop here for a while". Két évvel később a merge-elt spec közelebb van a koegzisztenciához, mint a helyettesítéshez.
Három design kérdés maradt explicit a merge-elt specben:
- A kind:10164 elírást (a példa 10064-et mutat) egyeztetni kell, mielőtt a kliensek biztonságosan interoperálhatnak.
- Episode-szintű discovery RSS GUID linking nélkül nyitva maradt. A merge-elt specnek nincs i tag-je, nincs podcast:item:guid formatja, és nincs RSS bridging mechanizmusa. A kliensektől, amik egy meglévő RSS katalógust akarnak kind 54 eventekbe hidalni, maguknak kell definiálniuk a bridge konvenciót.
- Az "other important fields" stub a kind:54 definíción nyitva hagyja a bitrate-et, duration-t, language-t, transcript pointer-eket, chapter-eket és per-segment metadata-t follow-up proposal-ök számára.
Az Amethyst PR #3105 dedikált podcast screen-t landol episode listával és inline playerrel a merge után napokkal, az első nagyobb kliens implementáció. A Jumble early podcast attachment scaffoldingot szállított a GIF picker mellett. A Wavlake marad a legnagyobb Nostr-native podcast platform, és döntenie kell, hogy a meglévő kind 31337 music track eventeit összehangolja-e a NIP-F4 kind 54 episode modelljével.
A PR #1093 27 hónapig volt nyitva, jóval a merge-elt NIP PR-ek medián nyitvatartási ideje felett. A NIP-F4 következő tesztje az, hogy a kind 10164 elírás reconciliálódik-e, hogy az episode-discovery és RSS-bridge konvenciók kiemelkednek-e az implementerekből, és hogy a nagyobb podcast host-ok per-podcast keypair-ek alatt publikálnak-e, ahogy a spec ajánlja.
Összegzés¶
A #25-ös szám legfontosabb fejleményei: Amber NIP-44 v3-at szállít a spec előtt (a domináns Android signer átmenetileg egyszeri implementációs referenciaponttá válik, amíg a NIPs PR landol), Mostro 8 PR-en át Cashu escrow-t integrál CDK-n (második settlement backend Lightning mellett), NIP-F4 (Podcasts) 27 hónap után merge-elt (RSS marad source of truth, Nostr social layer felette), NIP-17 key decoupling proposal (PR #2361) a hét legkonfliktusosabb review-ját kapta (bunker UX vs Marmot-style key rotation vita, nyitott maradt), és Amethyst 52 PR-t merge-elt release nélkül (NIP-32 hashtag labeling, podcast screen, ephemeral signerek, onchain zaps). A NIP-32 label-alapú felfedezés Amethyst PR #3111-gyel kezd standard szubsztrátummá válni a user-driven assertion-ökhöz a Nostr-on.