Slide 1

Slide 1 text

NIP-78 nostr relay storage 2023/08/04 – t.shinohara

Slide 2

Slide 2 text

NIP-78

Slide 3

Slide 3 text

アプリケーション固有データ / 任意のアプリ独自データ 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78

Slide 4

Slide 4 text

特徴 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78 NIP-33 (kind: 30023) の拡張 有名な例 : Nosli contentや、d以外のタグ利用は何でも OK

Slide 5

Slide 5 text

リレーをストレージと して使用したいという 思惑? 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78

Slide 6

Slide 6 text

Key-value storageとして使え たら便利じゃ ん!!!!!!! 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78

Slide 7

Slide 7 text

作った!!!

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

タイムラインの流速を 計測したい

Slide 10

Slide 10 text

なんで?

Slide 11

Slide 11 text

タイムラインの流速を 計測したい から

Slide 12

Slide 12 text

計測データどうする?

Slide 13

Slide 13 text

Firebase cloud firestore

Slide 14

Slide 14 text

手間!!!

Slide 15

Slide 15 text

維持管理!!

Slide 16

Slide 16 text

なら

Slide 17

Slide 17 text

リレーに保存しよう 唐突に流れる NIP-78

Slide 18

Slide 18 text

投げるコードは

Slide 19

Slide 19 text

殆どが 演習の 1-3

Slide 20

Slide 20 text

神様ありがとう

Slide 21

Slide 21 text

どうやって保存してい るの?

Slide 22

Slide 22 text

データ 構造 const ev = { kind: 30078, content: "none", tags: [ ["d", "table_name"], ["title", "table_title"], ["t", "table_name"], ["202308041938", "20"], ["202308041938", "17"], ... // 続く ], created_at: currUnixtime(), };

Slide 23

Slide 23 text

一時的に保存したい データを Post します

Slide 24

Slide 24 text

僕の使い方

Slide 25

Slide 25 text

Key-value Storage

Slide 26

Slide 26 text

なにこれ?

Slide 27

Slide 27 text

名前:データ で 保存したいものが ひも付きます

Slide 28

Slide 28 text

Key-value Storage データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名

Slide 29

Slide 29 text

よくある使い方

Slide 30

Slide 30 text

コード例 const value = getKeyValueStorage(key);

Slide 31

Slide 31 text

Nostr の NIP-78 使用したライブラリあ るかな?

Slide 32

Slide 32 text

npm で検索

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

ないやんけ!!!

Slide 37

Slide 37 text

作ろ!!

Slide 38

Slide 38 text

仕 様 検 討 • Key-Values Storage としての利用 • Post は nostr-tools 等に任せる想定 • 欲しい機能 • DB 初期化 • Get All Table • Get Table • Get Item • Create Table • Insert Table • Update Table • Clear Table

Slide 39

Slide 39 text

作ってみて

Slide 40

Slide 40 text

Get Table 便利

Slide 41

Slide 41 text

Upsert Table 便利

Slide 42

Slide 42 text

今思っていること

Slide 43

Slide 43 text

・ Update, Insert 時にテーブルがなかった ら? 自動生成して欲しい ・ テーブルの存在検査をしてから、 テーブル定義を作りたい (なかったら初期化コマンド実行したいなど)

Slide 44

Slide 44 text

早速つかっています。

Slide 45

Slide 45 text

野洲田川水系 定点観測所 https://nostr-hotter- site.vercel.app/

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

NIP-78ばり便利