---
title: "Nostr Compass #38 — 2026-09-02"
source: "https://nostrcompass.org/en/newsletters/2026-09-02-newsletter/"
type: newsletter-summary
language: hu
ingested: 2026-09-03
---

# Nostr Compass #38 — 2026-09-02

**Eredeti forrás:** [nostrcompass.org/en/newsletters/2026-09-02-newsletter/](https://nostrcompass.org/en/newsletters/2026-09-02-newsletter/)

## Vezértörténetek

### Voca 1.0 — offline Android Nostr-olvasó felolvasással
Voca 1.0 (2026-08-27) offline Android kliens, amely a telefon saját TTS hangján olvassa fel a cikkeket, PDF-eket, Markdown fájlokat és Nostr jegyzeteket. Minden letöltött eventet ellenőriz az újraszámított id és BIP-340 Schnorr aláírás ellen a bootstrap relayk, a szerző NIP-65 relay listája (kind `10002`) és a referenciában hordozott hint-ek alapján — a relay megtagadhatja a választ, de nem írhat a szerző szájába. Az npub hozzáadásával a szerző NIP-23 hosszú formátumú cikkei (kind `30023`) egy on-device inboxba kerülnek az RSS/Atom feedek mellé. Az 1.1.0 (2026-08-29, Zapstore) mondatszintű görgetést, hosszú dokumentum-simítást és widget-helyreállítást hoz.

### nostream — DVM routing és NIP-42 authenticated üzemmód
A TypeScript relay implementáció tárolja és kiszolgálja a NIP-89 application handler eventeket (kind `31989`/`31990`), és a függőben lévő NIP-90 jobokat átadja egy worker processnek, amely siker esetén a relay saját kulcsával ír alá egy kind 6000-6999 result eventet. A NIP-42 (client authentication) session-önként követi az authenticated pubkey-t, és opcionálisan kötelezővé teheti az AUTH-ot publish előtt, amit a NIP-11 dokumentumban is jelez. Az admin HTTP végpontok fogadhatnak NIP-98 aláírt HTTP authorization-t (operátori bekapcsolással + allowlist pubkey-kkal).

### NDK for Dart — negentropy v1, multi-relay request lifetime, sig-cache
A Dart NDK NIP-77 (negentropy) implementációja rossz have/need setet adott a v1 codec hiánya miatt — a fix visszaadja a relaynél levő és még szükséges id-ket. Az azonos filtert különböző relaykre küldött requestek eddig összemosódtak: mostantól a különböző relay/lifetime szerinti requestek külön maradnak, és a signature-verification eredménye cache-elve van, így duplikált delivery nem futtat új ellenőrzést.

### Divine Mobile — wrapped DM törlés és aláírás determinisztikussá tétele
A NIP-09 (kind `5`) gift wrap-ekre küldött törlés nem alkalmazódott, mert a kliens mindent, ami nem reakció, már feldolgozottnak tekintett — mostantól a törlés a megnevezett message-re oldódik fel. A második "delete-for-everyone" az elsővel együtt repült, de mostantól concurrent delete-ek mind publikálódnak. Az 1:1 NIP-17 (gift wrap) szövegnél egy token kerül a NIP-59 rumor belsejébe, hogy a másodperc-azonos küldések különböző id-t kapjanak. A caller által már aláírt kind `4`/`5` event aláírása megmarad (nem fűződik hozzá client tag utólag).

### Conduit Relay — NIP-42 protected inbox alapértelmezetten enforce
A Go relay a kind `1059` gift wrap-eket egy recipient-protected inboxban tárolja, és alapértelmezetten megköveteli a NIP-42 AUTH-ot mint a címzett — különben a request elutasítódik. A mixed-kind filterek, wildcardok, countok és negentropy-kérések ezekre a wrap-ekre `restricted`-ként viselkednek, így egy másik AUTH sem dumpolhatja ki valaki más inboxát. A challenge-only mód AUTH-ot kínál a read blokkolása nélkül; a disabled szabadon beenged.

### Amethyst v1.14.0 — NIP-84 highlightok + relay-failure javítások
Az Amethyst 1.14.0 a NIP-84 (kind `9802`) highlightokat a composerből, highlights feedből vagy share-ből indítja. A release hozza a NIP-29 channel törlést (PR #3812) és a NIP-66 relay-probe kiterjesztést (PR #3836, #3857). Javít egy SharedKeyCache hash-collision sebezhetőséget és constant time MAC-összehasonlítást (PR #3833), egy connect-time AUTH race-t (PR #3838), egy ANR convoy-t okozó subscription-state lock-ot (PR #3851), és a csak-első-filter-összehasonlítást (PR #3856). A Concord soft ban-ek (PR #3885), a relay authentication redesign (PR #3899, #3905, #3931, #3937, #3955), egy vezetett first-run és Settings flow a key backup-hoz (PR #3909), a Cashu proof backfill és history paging (PR #3941), valamint a public chat mute (PR #3939) is a release része. A trusted list-ek (kind `30392`–`30395`) mostantól NIP-50 (full-text search) indexeltek csak cím szerint. A NIP-47 wallet refusals (`QUOTA_EXCEEDED`, `RESTRICTED`, timeout) mostantól látszanak a UI-ban.

### Mostro v0.18.5 — signed order validálás + audit event expiry
A v0.18.5 a transportot alapértelmezetten NIP-44 (payload encryption)-re állítja, a gift wrap explicit opt-in marad. A waiting-state timeout a take time-hoz horgonyzódik (PR #879), a settled-order buyer payout at most once dispatch-höz kötött (PR #881), és bounded non-blocking `send_payment` várakozással megy (PR #883). Egy timeout-slash winner fizetésre tett kísérlet (PR #875) vissza lett vonva (PR #885) ugyanabban a tag-ben. A pending order book többé nem republish-öl óránként/induláskor változatlanul (PR #888), a kind `38386` dispute event-ek `created_at` tag-et kaptak (PR #878). A signature check mostantól a spam gate előtt fut — a kind `14` replay slotba eddig áldozati másolat kerülhetett érvénytelen signature-rel, most a daemon először verifikál, és invalid wrap-et ejt. A kind `8383` fee-audit event-ek NIP-40 expiry-je 15 napról 1 évre nőtt (public payment record szerep). Cashu-enabled node-on az order-felvétel a seller-től kér 2-of-3 escrow lockot Nostron át, és kihagyja a Lightning hold invoice létrehozását.

### Napstr 0.2.0 — audio katalógusok Nostron, fájlátvitel Tor-on
A desktop audio kliens a katalógusokat és a live seedereket Nostron publikálja, a fájlokat pedig egy bundlelt Tor processzen át mozgatja — nincs direct-IP fallback. Discovery: kind `30421` catalogue entry (SHA-256 digest, public basename, méret, formátum), kind `30422` availability heartbeat (10 perces lejárat, seedelni kész file id-k). Publikus beszélgetés NIP-C7 (kind 9) chat message-eken át megy, NEM relay-owned group-on. A download NIP-17 (gift wrap) negotiation-nel indul (kind `14` rumor a request/offer/refusal belsejében), a Tor a bytokat onion address-en át mozgatja, és a teljes SHA-256 digest verify után a file lejátszhatóvá válik. v0.1.7 → v0.2.0: audiobook kollekciók + Napstrfy (Android companion) — kind `30423` manifest-ek rendezett fejezeteket listáznak. A companion handshake timeout-ol, ha nem fejeződik be; a seeder copy + hash után szolgál, a célútvonal a Napstr folder valódi gyermeke kell legyen.

## Címkézett release-ek

- **MDK v0.9.17** — legújabb KeyPackage-ek, membership activity, durable sends. Az előző két release (0.9.14, 0.9.15) újdonságaira épít: oldest-first → newest valid current-profile package választás, epoch-gap recovery gates, account cleanup, discovery/operational relayk szétválasztása. A 0.9.16 epoch divergence mérése a current epoch-pal (PR #1565, #1563), és bevezeti a `marmot-c` macro-generated C ABI-t a UniFFI bindingok felett. A 0.9.17 egy member walk-ba foldolja a pass-admission scaneket, contested group state-ot anélkül vizsgál, hogy a teljes history graph-ot seedelné, csökkenti a deferred-peel sweep idle poll költségét. A marmot-c 0.9.17 és WN Agent 0.9.17 ugyanabból a commit-ból épülnek.

- **pakstr v0.16.0** — kind `32267` application-event azonosítók a publish pipeline-on. A Zapstore publication pipeline (0.13.0–0.15.0) után a CLI a kind `32267` event ID-kat logolja lookup/publish/replace során. Stale listing metadata trigger-elt republish esetén kiírja a régi és új ID-t is, így a publisher megerősítheti, melyik listing event él a relayn. A no-op reuse ismétlődő ID-ként jelenik meg a logban.

## Unreleased work

- **Zap Cooking** — bunker session reload mostantól a bunker saját relay-jeire scopiálja a NIP-46 (remote signing) forgalmat session restore és nostrconnect pairing során is. Üres relay set-et elutasít a malformed stored recordból. A NIP-98 signed HTTP authentication gatingeli a paid cooking-assistant chat-et, a cookbook introduction-t és a gated-recipe updatet — a server a request body-t egyszer olvassa, a signature-t pontosan azon a payload-on verifikálja, és az identity a verified auth event-ből jön, nem a body-ban kapott pubkey-ből. A chat preview header nélkül is működik, de a present-but-invalid signature elutasítódik, és a cookbook introduction mindig igényli. A gated recipe update megköveteli, hogy a verified key match-eljen a stored author-ral — másoknak "recipe does not exist" válasz jön (nem confirmálja, melyik paid record létezik).

- **nostrord** — NIP-17 wrapped DM-ek mostantól eljutnak ugyanarra az accountra más eszközről. A sender self-copy önálló publikálása megállítja azt a hibát, ahol a recipient wrap első relay acceptance-e eldobta a más eszközök által fetch-elt copy-t. NIP-42 AUTH completion után a wrap újraküldődik, és a send a first relay acceptance-kor success-re jelölődik (egy failing host nem stallolja a többit). A NIP-59 decryption-failed parked gift wrap-ek timer-en retry-olnak. NIP-C7 (kind 9) reply-k a leading NIP-19 `nevent` parent pointer-t a `q` tag mellé ismétlik — ha a body-t nyitja és a reply parent-et nevezi meg, single reply quote-ként renderelődik. A quoted-event linkek `nevent`-et kódolnak author, kind, és a quote forrásául szolgáló relay mezőkkel.

## Protokoll munka és NIP frissítések

### NIPs repository
- **NIP-67** — paginációs hint az `EOSE` üzenethez. A merged `"auth"` hint a `finish` és `more` mellé egy harmadik értéket ad: a relay jelezheti, hogy további tárolt event-ek válhatnak láthatóvá, ha a user authentikál. A relaynek a NIP-42 `AUTH` challenge-t az `EOSE` előtt kell küldenie, ami a hintet hordozza. A párhuzamos NIP-42 kiegészítés definiálja a flow-t a kliens oldaláról.
- **NIP-84** — portable highlights tag-séma frissítés. A highlightok a forrást structured `i` tag-ekkel jelölhetik NIP-73 (external content IDs) szerint, az `a`/`e` (Nostr event) és `r` (egyéb) tag-ek mellett. A quote highlightok a MUST-ról SHOULD-ra változtak a quote repost-szerű renderelésben.

### Nostr Wallet Connect
- A `list_transactions` response a matching tranzakciók **teljes számát** adja (opcionális `total_count` mező a NWC-05 wallet-history extension-ben), nem a current page sorainak számát. A commit dokumentálja, hogy a total a pagination-t kizárja.

## NIP Deep Dive: Reposts and Reactions (NIP-18 / NIP-25)

A NIP-18 (reposts) és NIP-25 (reactions) továbbra is `draft` `optional` státuszú — a NIPs repository-ban vannak és kliensek implementálják, de nem véglegesek.

### NIP-18 — Reposts
- A kind 6 event egy aláírt pointert ad a follower-eknek egy meglévő kind 1 note-ra. Az `e` tag értéke a note `id`-ja, harmadik entry egy relay URL, ahol a note fetch-elhető. A `p` tag az eredeti szerző `pubkey`-ját tartja SHOULD-ként. NIP-70 protected event repostja `content` legyen üres, hogy a protected payload ne másolódjon.
- A quote egy citation egy másik event belsejében, NEM kind 6 wrapper. Amikor egy kliens NIP-21 (`nostr:` URI) `nevent`/`note`/`naddr`-t említ, `q` tag-re kell konvertálni: `["q", "<event-id> or <event-address>", "<relay-url>", "<pubkey-if-a-regular-event>"]`.
- A kind 6 csak kind 1 note-oké. A kind 16 generic repost bármilyen más event kind-et wrap-elhet — SHOULD `k` tag a stringified kind értékkel, addressable target-re SHOULD `a` tag a `kind:pubkey:d-tag` koordinátával (különben a repost egy specifikus verziót target-ál, és `content` a teljes JSON stringjét hordozza).

### NIP-25 — Reactions
- Kind 7 event, `content` MUST a reaction értéke (`+` vagy üres = like/upvote, `-` = dislike/downvote, emoji/NIP-30 shortcode NEM like/dislike). A target a tag-ekben van, NEM a `content`-ből: MUST `e` tag a target event `id`-jával (SHOULD relay hint, több `e` esetén a target `id` utolsó), SHOULD `p` tag a target author-ra (utolsó ha több van), SHOULD `a` tag addressable target-re, MAY `k` tag a target stringified kind-jével.
- Egy emoji + NIP-30 shortcode `content`-ben + egy `emoji` tag (image URL) a custom-emoji reaction. Nem-Natív Nostr event-re a reaction MUST kind 17 + NIP-73 `k`/`i` tag-ek.
- A deep dive két live event-et mutat be (kind 6 Damus iOS Primal, kind 7 Divine), demonstrálva, hogy a relay által visszaadott event-ek egyes mezőket elhagyhatnak (pl. relay hint) — a klienseknek validálniuk kell a valódi event-eket.

### Implementációk
- **Amethyst** definiálja a repost és reaction event típusokat a jelenlegi protocol layerben.
- **Snort** NIP-18 helper-eket implementál (quote-link tag handling) és NIP-25 event-reaction tag-eket hoz létre.
- **Ditto** (kombinált Mastodon szerver + Nostr relay) kind 16 generic reposts-ot `k` tag-gel és `a` koordinátával addressable target-ekre, és kind 7 reaction szemantikát alkalmaz (utolsó `e` tag = target).
