Nostr Compass #36 — 2026-08-19¶
A hét központi témái: Amber 6.5.x és Cambium 0.4.x a relay-auth/Signer nyomás alatti hardening, Citrine 3.1.0 a telefonos relayből NIP-29 group host + NIP-86 admin API + NIP-5A nsite, Vector 0.4.2 a Concord moderation alatti spam-hullámra, valamint a NIP-9A (comment patch) és NIP-94 file-titkosítás javaslatok.
A hét főbb anyagai¶
- Amber 6.5.0 (Android NIP-55/NIP-46 signer) — négy disclosed gap lezárása: NIP-42 confused deputy (bármely caller kaphatott kind 22242 auth eventet a felhasználó által nem jóváhagyott relayre), NIP-46 replay rés, plaintext connection secret és lokális kulcs envelope-encrypted at rest, nyolc hardening item (caller authorization decrypt előtt, fail-closed permission parsing, plain-ws:// warning, secure QR képernyő, log redaction, lazy key zeroing logoutkor, opcionális unlocked-device Keystore). 6.5.1 újra-titkosítja a NIP-46 secretet Keystore-key rotáció után. 6.5.2 nem dekódol felesleges oszlopokat, cache-eli a Keystore handle-t, warm-öl az account cache-t startupkor, debounce-olja a relay status notificationt. A 6.4.0 a grouped signing döntést tette explicitvé; a 6.5.x azt változtatja meg, amit az Amber egyáltalán autorizál.
- Cambium 0.4.0 (Android NIP-55 proxy → Heartwood hardware signer) — website-eknek is aláír nostrsigner: callback-en keresztül validáltan, a native app-ok permissionjeit nem örökli. A spec minimális event shape fix: csak kind + content event is helyesen ír alá (rust-nostr most kapja meg a NIP-46 identityt, timestampet és üres tag arrayt). 0.3.6 pairing fix: a régi rust-nostr csak a literális "ack"-ot fogadta el NIP-46 connect resultnak, de a Heartwood firmware a bunker URI secretjét echozza — 0.44.2 → 0.44.8 frissítés mindkét formát elfogadja (verifikálva nak bunker ellen is). 0.4.1–0.4.3 admission control: queue slot reserved reactions/posts/deletions/encryption számára a relay-auth és background decrypt előtt, bounded queue, timeout után discard, overload esetén terminal unavailable (nem nyit foreground signing screenet). Per-identity 60s cooldown auth timeout után; egyidejűleg azonos kind 22242 challenge-ek egy hardware signature-t osztanak meg. Mérés GrapheneOS + Amethyst: cold-start burst → 33 immediate overload + 13 completed, no signer timeout; fresh login auth burst közben 1.254s az approval után.
- Citrine 3.1.0 (on-device Android relay) — NIP-29 relay-based group support: a telefon mostantól groupot is tud hostolni (nem csak joinolni). NIP-86 relay management API + settings screen: allowlist/ban API-ból is működik. NIP-5A static website serving: nsite-okat szolgál ki web klienseken, modernizált browse list (icons, search, sort-by-last-update, install progress, descriptions), konfigurálható relay lista (alapért.: nsite.run, nos.lol, nostr.land). Moderation: lokális ban mellé purge opció a szerző stored eventjeire, REJECTED_KINDS konfigurálható lista, access control import meglévő listákból, rebroadcast tool a phone-held archive-ot pusholja ki. Stabilitás: WebSocket permessage-deflate extension ki, query hot path szűkítés, Tor start/stop fix az "expose via Tor" toggle-re, logok helyi DB-be, logcat csak debug buildben.
- Vector 0.4.2 (desktop + Android Concord messenger) — moderation spam hullám alatt: rapid ban-ek most queue + stack + settle egyetlen key rotationként (korábban felülírták egymást). Dissolved community invitation acceptance magyarázatot ad és minden eszközről törlődik; dissolved community a user community listájából minden eszközön kikerül (0.4.3). Catch-up közben érkező community message nem csörget notificationt, typing indicator a küldés pillanatától lejár. Armada-vel közös sharded community list review: renamek nem fújják fel a listát, tie-k azonosan resolvéolódnak, unchanged adat nem republisholódik. Mute kikerült a DM pathból: community-ből is lehet mute-olni DM history nélkül, notification + badge minden channelen és DM-ben, üzenetek maradnak láthatók. Pinned message megosztott channel surface, edit követi a pinned üzenetet. Block/mute/nickname + pinned chat device sync. 0.4.3: nem jelzi a typingot ha másik Nostr kliens van bejelentkezve ugyanazzal az identityvel; Tor bootstrap unblock Windows-on (x64 + ARM64 15%-on fagyott).
- Sonar 0.1-alpha.13.x (Bluetooth mesh + Nostr messenger) — Signal-style replies NIP-C7 kind 9 chaten, mentions, bounded Bluetooth reassembly, backup caps, mesh-path signature verification, FCM push fallback. 0.1-alpha.13.2/13.3 chat-open crash fix Androidon, iOS keyboard overlap fix.
- Nostria 4.1.70/71 — podcast publishing premium előfizetőknek, epizódok signed Nostr eventként. 4.1.69 NIP-45 COUNT a reaction/reply/zap totals-hoz feedben, lokalizáció complete. 4.1.67 ( múlt héten) encrypted community admin bővítés.
- Nail (Formstr csapat, mailstr.app, MIT) — mail bridge + web kliens, launch 18-án PR #7-tel (22 fájl, k tagek mail eventre, key recovery settingsben, welcome message). Mail maga Nostr event: kind 1301 mail rumor kind 1059 NIP-59 gift wrap belsejében. Delivery relay: kind 10050 NIP-17 inbox + kind 10002 NIP-65 mögötte, mappák kind 1985 NIP-32 label mail namespace alatt, beállítások kind 30078 NIP-78 app-data. Attachment >60k byte Blossomra megy (NIP-44 65535 byte cap). Address = npub@domain, NIP-05 nélküli lokális domain nem létező mailbox. Bridge: Node LMTP mailcow mellett, Postfix route-ol, SMTP-n vissza-injectál. Provenance grading 4 állapot: bridge sealed + upstream verify, user sealed, address NIP-05 → sealing key, vagy fallback a sealing pubkeyre. API hívások NIP-98 signed HTTP eventtel autentikáltak.
Címkézett release-ek¶
- MDK 0.9.12 (Rust Marmot development kit) — fail-closed group state: hiányzó fork anchor hard error (PR #1329), leave proposal atomi persist (PR #1360), incident replay nem találgat manifest-less NDJSON-on (PR #1140). Convergence testing: retained-history cross-route recovery (PR #1350), cross-adapter assurance (PR #1372), generalized isolated campaigns (PR #1357). Relay rejection diagnostics megőrizve (PR #1361). 0.9.13 (18 Aug): storage format v2 (PR #1421), migration rails, delta writes account snapshotok helyett (PR #1435), gyorsabb invite catch-up (PR #1444), macOS bindings (PR #1402). 0.9.14 (19 Aug): pre-uploaded founding images (PR #1498), KeyPackage batching (PR #1494), atomi initial message retention (PR #1497), profile publication account-owned relayekkel (PR #1495). MarmotKit 0.9.14 + wn-agent 0.9.14 core crate-tel shippingel.
- Divine Mobile 1.0.20 — NIP-58 badge-öt lehet mintelni és odaadni az app elhagyása nélkül, a badge-re tap magyarázza mit kellett érte tenni (a definition event + award event külön tárolt része). Light theme, crop/rotate/flip a stop-motion editorban, drafts one tap a recorderről, caption timing a videóhoz, feed de-prioritizálja a már megtekintett anyagot, screen reader a szerkesztő/recorder/profile tabokon, reduced-motion handling, account settings kezeli a Divine email/passwordot és account link/unlink. Törölt videók helyi state-et is hagyják, bookmarkok perzisztálnak. 1.0.19 account isolation + private message validation; badge issuance új publishing surface.
- ClipRelay 0.2.0 — clipboard szinkron Nostr felett. Android: nostrconnect:// QR login (signer app másik telefonon), bunker URL camera scan (secret-bearing string messengerben nem kell paste-olni). Bunker connection 60s timeout (nem lóg). Retry gomb failed Amber login után működik. Desktop ugyanaz timeout + login-tab fix. 0.1.4 sensitive-clipboard sync short relay expiryvel, pinned signer session relayek, liveness probe valódi round-tripet kér nem lokálisan szintetizált EOSE-t. 0.1.3 idle utáni connection restore.
- Bark 1.3.9 (browser NIP-07 extension) — Android támogatás deklarálva Firefox buildhez. Firefox Androidon nincs windows API, ezért minden approval ami popup windowot nyitott volna, outright denied lett volna; fallback foreground tab (dismiss = deny, review = foreground, background close request settle után). Verifikáció Pixel 10 Pro XL GrapheneOS + Firefox 153.0.4. Chromium Android kifordítja az extension subsystemet, szóval Chromium-derived Android browser nem futtatja a Barkot. 1.3.8 NIP-46 interop fix a másik irányba: a Heartwood compact signing dialektet JSON objectként küldte, amit a strictly typed signers (nak, rust-nostr bunkerek) nem tudtak parse-olni és silently droppoltak → signing hang. Probe most csak Heartwood-identifying signereknek küldi, többiek standard sign_event az első signaturától.
- Bray 3.0.0 + Toll Booth 6.0.0 — mindkettő NIP-47 Nostr Wallet Connect-en fizet, breaking change: nwc-kit adoptálva wallet paymentre, Toll Booth eltávolítja a payer credential flowt. Reproducible build, két független runner byte-identical outputtal, tarball hash a release notes-ban. Toll Booth patchek: 6.0.1 negotiated deploy host key pin, 6.1.1 cashu-ts pin, 6.1.2 image build restore.
- NoorNote 1.3.4 — encrypted Armada + Concord communities addon: invite linken csatlakozás, settingsben listázva, activity notification. External quote post hide vezérlés globálisan vagy per author, reposts is rejtve, saját highlightok maradnak. Profile resolution javítva (nem csonka pubkey vagy anonim placeholder). 1.3.5 long note expander + Armada invite link input layout fix. 1.3.2 article discovery social graph-be.
- Mostro Mobile 1.3.2 — dispute chat migráció NIP-59 gift wrapről kind 14 chat envelope-ra, durable per-conversation cursorok a backloghoz. mostro-core 0.14.5 rumor ID serializálása a gift wrapen belül (PR #164), 0.14.4 ratings average bug fix (PR #163), Mobile 1.3.1 Blossom serverek amik megtartják az encrypted chat attachmentet. Daemon 0.18.2 vagy 0.18.4.
- NYM 3.73.522 — helyi SQLite store titkosítva, 3.73.521 encrypted group chat refinement, 3.73.520 CSP break + duplicate-new-message fix.
- Morganite 0.0.4 (Android Blossom server) — blob hash ellenőrzés letöltés közben single passban, mielőtt cache-eli (ez teszi a content addressinget értelmessé a fogadó oldalon). Cache size inkrementális tracking, blocking network call input/output thread-eken, Tika instance reuse MIME detekcióhoz, logok helyi DB.
Újonnan felfedezett¶
- Glow (Breez self-custodial Lightning wallet) — Passkey login származtat Nostr identityt, wallet label list from/save to relays ezzel az identityvel, byte-identical duplicate-ok összevonva részleges relay coverage-en.
Fejlesztés alatt¶
- Amethyst — NIP-42 client-to-relay auth redesign: permissions interface + decision flow (PR #3899), auth challenge-re vár timeout helyett (PR #3905), új account default = always auth relays (PR #3931), "always log in" tiszteletben tartva account által nem használt relayekre (PR #3937). NIP-29 groups + Concord communities joined venue-ként ismertek (PR #3906) — relay-hosted group nem jelenik meg ismeretlen relayként. NIP-13 PoW mining created_at-ot frissíti mining közben + GPU path analysis (PR #3911). Full-screen napplet host input-method insets (PR #3932). Guided first-run key backup + settings entry point (PR #3909). Public chat mute (PR #3939).
- nostrord — NIP-4e (unmerged proposal, message encryption decoupling identity keytől) implementáció merge-ölve. Account kind 10044 encryption keyt jelent be, privát felét lokálisan tartja, in-process decrypt (bunker/browser extension kikerül a read pathból, PR #261). Device pairing kind 4454/4455-tel mozgatja a kulcsot második eszközre, self-archive republisholja a historyt az új kulcsra. Sending először az announced keyre (PR #247), pairing fix (PR #271). Wire format a deployed Jumble implementationt követi ahol az eltér az open proposal-tól — a spec working definitionje shipped code-ban van, nem a dokumentumban. Group identity: group identifier csak saját relayjén belül egyedi (PR #269, #272), thread postok forum postként renderelődnek (PR #274). Connection churn ami repeated kind 22242 signing promptot produkált, leállítva (PR #268) — ugyanaz a signer pressure class amit a Cambium három release alatt oldott meg.
- nostream (TypeScript relay) — cluster worker + probe scheduler NIP-66 relay monitoring eventet publishol (PR #724), settings schema + defaults (PR #689), integration tests (PR #733). CLI tool NIP-43 invite code-okat mintel (PR #732). Relay végre a supported listben hirdeti a NIP-13 PoW-t (PR #680) — implementálva volt, de nem jelentette. Data vending machine jobok persistence migration + repository (PR #727), NIP-90 job requestek trapelve és job repository-n át vezetve (PR #729).
- rust-nostr — rumor identifier a gift-wrap seal előtt számítódik (PR #1444), ugyanaz a defect amit a Mostro a saját libraryjében fixált. Local relay elutasítja NIP-70 protected event repostját (PR #1445). NIP-47 response parsing tolerálja a hiányzó/null amountot (PR #1450). Relay URL parsing hardening (PR #1451).
- NDK (Dart dev kit) — hybrid post-quantum encryption DM-ekhez ML-KEM-1024-gyel (FIPS 203, PR #713), classical key agreement mellé, nem helyett. GPL-3.0-only Dilithium implementation cserélve fips204-re (ML-DSA signature standard, PR #712) — licensing constraint megszűnik. Connections: one identity each (PR #710).
- Nostter (web client) — NIP-51 bookmark listek standard + legacy shape support (PR #2311), NIP-58 profile badge handling update (PR #2281), Blossom media uploader (PR #2298), NIP-05 identifier mention autocomplete-ban (PR #2303).
- Zap Cooking (recipe site Nostr long-form eventen) — stored NWC connection string titkosítva NIP-44 envelope-ban at rest (PR #622), spoofable pubkey comparison admin route-okon cserélve NIP-98 HTTP auth-ra (PR #626), logout törli az account adatot és boundolja a pending NIP-46 recordokat (PR #627).
Protocol és spec munka¶
- NIPs PR #2438 — NIP-9A comment-based patching: kind 1111 comment a patched eventre szülőreferenciával, content
PATCHliterál címkével kezdődik patch sorokkal. Sor ami számmal kezdődik a target contentet editálja<index> -<deleted> +<inserted>formában unicode karakterben számolva,tprefix emberi arcú taget cserél (title, description, subject, picture). Backwards compatible: nem értő kliens ordinary labeled commentként mutatja, értő kliens alkalmazza és elrejti. Patchelhető kindek: 1, 11, 1111, 24, 1621. Védelem: túl nagy/túl sok/túl késői patcheket írni és olvasni is el kell utasítani. - NIPs PR #2437 — NIP-94 file encryption: 3 opcionális tag (encryption-algorithm: aes-gcm egyedüli érték, hex-encoded decryption-key és decryption-nonce). Tag szemantika: m az encryption előtti MIME típus, x az encrypted file hash, ox az eredeti hash, thumb/image/fallback ugyanazon key/nonce alatt titkosítva. Cél: publikus Blossom operátor a bájtokból nem tudja megmondani mik, NIP-17 privát DM encryption tulajdonságait másolja át file metadata-ba (imeta tag-en belül is működik).
- NIPs PR #2436 — NIP-7D (forum-thread, kind 11 + kind 1111 NIP-22) kiegészítése formatting sectionnel: thread post formázható mint kind 1 note (inline image, link, NIP-27 ref), Djot is opció. Érv: ha nincs spec, előbb-utóbb Markdown implementáció lesz default.
- NIPs PR #2439 — NIP-86 relay management: assign/unassign methodok, admin pubkey grant master key sharing nélkül.
- NIPs PR #2442 — januári audio-track proposal utód, production-ban lightning.fm shipeli kind 31337 track eventként, kind 31339 release object, band profile, per-track contributor, opcionális NIP-57 zap split (sales NIP-99-en marad). Interop contract: lightning.fm/interop, desktop publisher + self-hosted seller daemon open source.
- Marmot PR #416 (merge 13 Aug) — durability + restart contract a protocol core-hoz. Adoptált dokumentumok eddig meghatározták: deterministic convergence, retained candidate-parent material, publish-before-apply ordering, fail-closed missing history — de nem volt unambiguous rule arról, mi történik ha a process a varratok között szakad meg. A change definiálja: recoverable logical facts, restart equivalence, publish és convergence interruption boundaries, observer-atomic transitions, missing/corrupt material handling, application-effect recovery, majd crash + restart conformance scenario-kat ad mindegyikhez. Implementáció-definiált marad: tranzakciók, journalok, snapshotok, replay strategy, scheduler, storage format. Nincs wire encoding change. Célzottan lezárt eset: externally accepted de locally unconfirmed publication, vagy partially applied selected branch → implementation-dependent protocol eredmény restart után.
- Concord PR #18 (merge 15 Aug, múlt héten open) — encrypted community list sharding kind 33302 eventenként, 50 membership limit ki, retired entry-k prunelve (relay size limit alatt maradás). Vector 0.4.2 release notes a kliens-oldali felét rögzíti (tie resolution, unchanged data republish leállítása).
- Concord PR #22 — community-owned audio/video broker proposal. CORD-02 metadata entity opcionális av_brokers listát vinne a relays mellé, edition-önként evolválódna. CORD-07 rendezvous ebből a listából vagy a member saját brokerjéből (ha community nem publishol) dolgozna, a meglévő room-keyed tie-break rendezné. A broker tag presence-en marad olvasható és residual split reportolására használható, de routingból demótálva: routing-on engedné hogy fellow member untrusted inputja outrankolja a community saját utasítását.
- Concord PR #23 — meglévő implementációs viselkedést tesz normatívvá CORD-05-ben. Join persistálása előtt az owner genesis metadata editionjének nyitnia kell a delivered keys alatt, rotated plane-ek anchoring a compaction pair-en. Spec-faithful kliens shippingelhette volna a vulnerable verziót; Vector bundle acceptance refuse-olja ha delivered root nem nyitja az owner genesis-t, Armada droppol ha bundle moved held community base-t. A viselkedés mostantól spec-követelmény.
Blossom upgrade docs, Napplet application proposals és Gamma Markets spec ezen ablakban nem változtak.
NIP deep dive¶
- Badges (NIP-58) — egy Nostr identity named token-t adhat egy másiknak, a recipiens kontrolálja hogy megjelenik-e a profilján. Három külön signed event, három külön szerző szándékával: addressable definition (kind 30009, issuer, d tag), award (kind 8, ua issuer, p tag = recipients), display list (kind 30008, recipient, fix d = profile_badges, a+e tag párok rendezetten). Páros olvasás: a tag matched award nélkül vagy e tag matched definition nélkül ignored → half-referenced badge silently nem renderel. Nincs revocation, nincs expiry, nincs transfer, nincs trusted issuer registry — badge annyit ér amennyit az issuer pubkey a nézőnek. Implementációk: Divine Mobile 1.0.20 (mintel + award + tap-on-badge magyarázat), Nostter PR #2281, Amethyst saját client tag-jével publishol award eventet. NIP-51-gyel összevetve: lista single author curating references, badge kettévágja az authorshipot — issuer aláírja hogy az award megtörtént, recipient aláírja hogy elfogadja a display-t. Egyik fél sem tudja egyedül produkálni a látható eredményt.
- Comments (NIP-22) — általános comment event nem-short-text-note dolgokra. Short-note threading NIP-10 (kind 1 + reply chain). NIP-22 azért kell mert video/cikknaptár esemény/wiki/URL reply struktúrát igényel ami azonosítja a target típusát, addressable targetnél és külső resource-nál is működik. Kind 1111 event két tag készlettel: uppercase a rootra (E/A/I/K/P) és lowercase a parent-re (e/a/i/k/p). Uppercase-szel egy filter lehúzza az egész discussiont reply chain bejárása nélkül, lowercase a nesting rendereléshez. I/i külső identifier NIP-73 formatban (web page, podcast, book). NIP-22 nem használható kind 1 note replyra — két threading modell nem versenyezhet ugyanazokon az objectumokon. Root fix marad, mély thread elveszti az anchort ha intermediate event-ek elérhetetlenek. K tag load-bearing: target nélkül is tudja a kliens mihez van commentelve és el tudja dönteni hogy renderelni tudja-e. Nincs ordering/moderation model — display order/collapsing/hiding teljesen client policy. NIP-10-zel összevetve: NIP-10 feltételezi hogy target note és pozíciót encode-ol a threadben, NIP-22 explicit típusú targetet feltételez és semmi mást — ezért nyúlnak kind 1111-hez az új javaslatok (machine-readable statement a targetről már a comment event-ben). Implementációk: Divine Mobile, Amethyst, nostrord (thread post → forum post).
Megjegyzések¶
- Wiki deploy: kézi futtatás szükséges — ez a summary a
nostr_compass/kollekcióba és a wikinewsletterskollekcióba került, a wiki build ebből dolgozik. - Forrás: https://nostrcompass.org/en/newsletters/2026-08-19-newsletter/