Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NIP-78 nostr relay storage
Search
Takuma Shinohara
August 04, 2023
Technology
0
290
NIP-78 nostr relay storage
Takuma Shinohara
August 04, 2023
Tweet
Share
More Decks by Takuma Shinohara
See All by Takuma Shinohara
MCPとは?
shinoharata
0
42
BlueskyMeetup in Fukuoka アイデアソン
shinoharata
1
87
BlueskyMeetup in Fukuoka アイデアソン結果発表
shinoharata
1
75
いまのBlueskyってどうなの
shinoharata
0
130
四谷ラボとは ※2025/05/31
shinoharata
0
120
What's is Bluesky
shinoharata
0
1.7k
dissolute fat
shinoharata
0
220
20240520_toranoana_lab.pdf
shinoharata
0
220
民主的なSNSは日本を救う
shinoharata
0
380
Other Decks in Technology
See All in Technology
プロダクト負債と歩む持続可能なサービスを育てるための挑戦
sansantech
PRO
1
1.1k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
10
6.5k
進化の早すぎる生成 AI と向き合う
satohjohn
0
300
Codeer.LowCode.Blazor 紹介と成長録
wadawada
0
110
スタートアップの事業成長を支えるアーキテクチャとエンジニアリング
doragt
1
9.3k
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
19
10k
グローバルなコンパウンド戦略を支えるモジュラーモノリスとドメイン駆動設計
kawauso
3
10k
小規模チームによる衛星管制システムの開発とスケーラビリティの実現
sankichi92
0
160
AI時代のインシデント対応 〜時代を切り抜ける、組織アーキテクチャ〜
jacopen
4
170
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
4
440
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
430
20251127 BigQueryリモート関数で作る、お手軽AIバッチ実行環境
daimatz
0
330
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.2k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Context Engineering - Making Every Token Count
addyosmani
9
440
BBQ
matthewcrist
89
9.9k
Making Projects Easy
brettharned
120
6.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
59
For a Future-Friendly Web
brad_frost
180
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Transcript
NIP-78 nostr relay storage 2023/08/04 – t.shinohara
NIP-78
アプリケーション固有データ / 任意のアプリ独自データ 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78
特徴 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78 NIP-33 (kind: 30023) の拡張 有名な例 :
Nosli contentや、d以外のタグ利用は何でも OK
リレーをストレージと して使用したいという 思惑? 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78
Key-value storageとして使え たら便利じゃ ん!!!!!!! 出典:Scrapbox (和訳) https://scrapbox.io/nostr/NIP-78
作った!!!
None
タイムラインの流速を 計測したい
なんで?
タイムラインの流速を 計測したい から
計測データどうする?
Firebase cloud firestore
手間!!!
維持管理!!
なら
リレーに保存しよう 唐突に流れる NIP-78
投げるコードは
殆どが 演習の 1-3
神様ありがとう
どうやって保存してい るの?
データ 構造 const ev = { kind: 30078, content: "none",
tags: [ ["d", "table_name"], ["title", "table_title"], ["t", "table_name"], ["202308041938", "20"], ["202308041938", "17"], ... // 続く ], created_at: currUnixtime(), };
一時的に保存したい データを Post します
僕の使い方
Key-value Storage
なにこれ?
名前:データ で 保存したいものが ひも付きます
Key-value Storage データ 識別名 データ 識別名 データ 識別名 データ 識別名
データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名 データ 識別名
よくある使い方
コード例 const value = getKeyValueStorage(key);
Nostr の NIP-78 使用したライブラリあ るかな?
npm で検索
None
None
None
ないやんけ!!!
作ろ!!
仕 様 検 討 • Key-Values Storage としての利用 • Post
は nostr-tools 等に任せる想定 • 欲しい機能 • DB 初期化 • Get All Table • Get Table • Get Item • Create Table • Insert Table • Update Table • Clear Table
作ってみて
Get Table 便利
Upsert Table 便利
今思っていること
・ Update, Insert 時にテーブルがなかった ら? 自動生成して欲しい ・ テーブルの存在検査をしてから、 テーブル定義を作りたい (なかったら初期化コマンド実行したいなど)
早速つかっています。
野洲田川水系 定点観測所 https://nostr-hotter- site.vercel.app/
None
NIP-78ばり便利