Slide 1

Slide 1 text

Nostr൛togetterͷNosliͱ NIP-33 ח૔ / @akiomik #nostrstudy #1

Slide 2

Slide 2 text

ࣗݾ঺հ • ח૔ / @akiomik • NostrͰ͸Nostrends (nostr൛;͊΅ͬͨʔతͳ΋ͷ) Λ࡞ͬͨ • ࠷ۙ͸Bluesky༻ͷAndroidΞϓϦʮ੨Ӣʯͷ։ൃ • དྷि΋ATP/Blueskyษڧձʹొஃ༧ఆ😢 • https://iris.to/akiomik.github.io

Slide 3

Slide 3 text

͓඼ॻ͖ • Nosli֓ཁ • NIP-02 • NIP-16 • NIP-33 • NIP-23 • NIP-58

Slide 4

Slide 4 text

NIP-33Λ֮͑ͯ΋Β͍͍ͨ

Slide 5

Slide 5 text

Nosli

Slide 6

Slide 6 text

Nosli • Nostrͷ౤ߘ (kind1) Λ·ͱΊΔWebαʔϏε • Nostr൛ͷtogetterతͳ΋ͷ • https://nosli.vercel.app/ • ໊લͷ༝དྷ͸ௗͷϊεϦͱNostr + list͔Β

Slide 7

Slide 7 text

NosliͷεΫϦʔϯγϣοτ

Slide 8

Slide 8 text

NosliͷγεςϜશ๴

Slide 9

Slide 9 text

ϦϨʔΛKVSͱͯ͠࢖͍ͬͯΔ

Slide 10

Slide 10 text

ϦϨʔΛKVSͱͯ͠࢖͍ͬͯΔ 㱺 ͜Ε͕NIP-33

Slide 11

Slide 11 text

NostrͷΠϕϯτ͸ มߋɾमਖ਼͕Ͱ͖ͳ͍

Slide 12

Slide 12 text

NostrͷΠϕϯτ͸վ᜵Ͱ͖ͳ͍ • Πϕϯτ͝ͱʹൿີ伴Ͱॺ໊͞Ε͍ͯΔ • ౤ߘ΍ϦΞΫγϣϯ͸मਖ਼΍มߋ͸Ͱ͖ͳ͍ (ຊਓͰ͋ͬͯ΋)

Slide 13

Slide 13 text

SNSʹ͸มߋ͍ͨ͠σʔλ͕ͨ͘͞Μ • ϑΥϩʔϦετ • ϓϩϑΟʔϧ • (Nostrͷ৔߹) ϦϨʔ

Slide 14

Slide 14 text

NIP-02 Contact List and Petnames

Slide 15

Slide 15 text

NIP-02 Contact List and Petnames { "kind": 3, "tags": [ [ "p", "91cf9..4e5ca", "wss://alicerelay.com/", "alice" ], [ "p", "14aeb..8dad4", "wss://bobrelay.com/nostr", "bob" ], ], ...other fields } • ࣗ෼͕୭ΛϑΥϩʔ͠ ͍ͯΔ͔ͷϦετ • ϑΥϩʔ͍ͯ͠Δਓͷ npub͕ྻڍ͞Ε͍ͯΔ

Slide 16

Slide 16 text

NIP-02 Contact List and Petnames • Kind3͸͋ͱউͪํࣜ • ϦϨʔ΍ΫϥΠΞϯτ͸৽͍͠Kind3Λड͚औͬͨΒɺखݩʹ͋Δݹ ͍Kind3Λফ͢͜ͱ͕๬·Ε͍ͯΔ (SHOULD)

Slide 17

Slide 17 text

NIP-16 (Replaceable Events)

Slide 18

Slide 18 text

NIP-16 (Replaceable Events) • NIP-16͸֤छΠϕϯτΛఆ͍ٛͯ͠Δ • Replaceable Events͸NIP-02ͷKind3Λ൚༻తʹͨ͠΋ͷ • Kind 10000 <= n < 20000 • ͢Ͱʹࣗ෼͕ૹͬͨKind͕ଘࡏ͢Δ৔߹͸্ॻ͖͢Δ (SHOULD) • ར༻ྫ: NIP-65 Relay List Metadata (Kind 10002) • 㱺 ͜ΕͰϢʔβ × KindͰσʔλΛอ࣋Ͱ͖ΔΑ͏ʹͳͬͨ

Slide 19

Slide 19 text

NIP-33 Parameterized Replaceable Events

Slide 20

Slide 20 text

NIP-33 Parameterized Replaceable Events • Kind 30000 <= n < 40000 • NIP-16ͷ֓೦ʹdλάͱ͍͏Ωʔ͕ՃΘͬͨ΋ͷ • ݹ͍σʔλ͸৽͍͠σʔλͰஔ׵͞ΕΔ͜ͱΛظ଴ (SHOULD) • ެ։伴 × Kind × dλάͰҰҙʹͳΔσʔλ • 㱺 ϢʔβID × ςʔϒϧ × ओΩʔ ͱΈͳͤ͹KVSͱͯ͠࢖͑Δ

Slide 21

Slide 21 text

NIP-23 Long-form Content { "kind": 30023, "created_at": 1675642635, "content": "Lorem ipsum #[3] #[4]", "tags": [ ["d", "lorem-ipsum"], ["title", "Lorem Ipsum"], ["published_at", "1296962229"], ["t", "placeholder"], ["e", "b3e3...4f87", "wss://relay.example.com"], [ "a", "30023:a695...a919:ipsum", "wss://relay.nostr.org" ] ], "pubkey": "...", "id": "..." } • Kind 30023 • NIP-33Λ࢖ͬͯఆٛ͞ Ε͍ͯΔ • ؆୯ʹ͍͑͹ϒϩά

Slide 22

Slide 22 text

NosliͷεΫϦʔϯγϣοτ

Slide 23

Slide 23 text

Nosliͷ σʔλ { "kind": 30023, "content": "#[4] #[5] #[6]...", "tags": [ ["d", "welcome-to-bluesky"], ["title", "NostrຽɺBluesky΁ཱཱྀͭ"], ["t", "nosli"], ["e", "b3e3...4f87"], ["e", "a3b3...a6d6"], ["e", "030a...36ba"], ], "pubkey": "...", "id": "..." } • Kind 30023ͦͷ·· • ଞͷαʔϏεͷσʔλΛ ಡΈࠐ·ͳ͍ͨΊʹ nosli λά͕෇༩͞Ε͍ͯΔ

Slide 24

Slide 24 text

Nosliͷ࢓૊Έ • NIP-23 (Kind 30023) ͷ1σʔλΛ1ͭͷʮ·ͱΊʯͱͯ͠ѻ͍ͬͯΔ • ʮ·ͱΊʯͷຊจʹ౤ߘ (Kind1) ͷIDΛྻڍ͍ͯ͠Δ • ୯ͳΔKind 30023ͳͷͰɺରԠ͍ͯ͠ΔΫϥΠΞϯτͳΒӾཡͱฤू ΋Մೳ

Slide 25

Slide 25 text

͜ͷ਺೔࿩୊ʹͳ͍ͬͯΔ (ͨ) όοδ📛

Slide 26

Slide 26 text

NIP-58 Badges { "pubkey": "alice", "kind": 30009, "tags": [ ["d", "bravery"], ["name", "Medal of Bravery"], [ "image", "https://nostr.io/bravery.png", "1024x1024" ], ], ... } { "kind": 30008, "pubkey": "bob", "tags": [ ["d", "profile_badges"], ["a", "30009:alice:bravery"], [ "e", "", "wss://nostr.academy" ], ["a", "30009:alice:honor"], ], ... } • Kind 30009/8/30008 • ͦΕͧΕόοδఆٛɺ όοδ෇༩ɺϢʔβ όοδΛද͍ͯ͠Δ

Slide 27

Slide 27 text

࠷ޙʹ • NIP-33ʹΑͬͯnostr্ʹ৭ʑͳΞϓϦΛ࡞ΕΔΑ͏ʹͳΔ • ී௨ͷDBͳͲͱ͸झ͕ҟͳΔ͚Ͳٯʹ໘ന͍΋ͷ͕Ͱ͖Δ͔΋ • σʔλͷӬଓੑ͸୭΋อূͯ͘͠Εͳ͍ (౰ͨΓલ) • ݹ͍ϦϨʔͷσʔλΛҾ͖౰ͯͯ͠·͏ͱյΕΔՄೳੑ΋͋Δ • ͋·ΓϦϨʔʹෛՙΛ͔͚ͳ͍Α͏ʹ࢖͓͏🙏

Slide 28

Slide 28 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠