Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Thinking about Feasibility of Scheduled Posts o...
Search
jiftechnify
April 12, 2023
Technology
0
280
Thinking about Feasibility of Scheduled Posts on Nostr
Nostrにおける予約投稿の実現可能性を考える
jiftechnify
April 12, 2023
Tweet
Share
More Decks by jiftechnify
See All by jiftechnify
Start Nostr Indie Dev for Great Good
jiftechnify
0
190
Cryptography 101 for Understanding Nostr
jiftechnify
0
340
Nostrのリレーから漏れなくすべてのイベントを取ってくる技術
jiftechnify
0
630
Other Decks in Technology
See All in Technology
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
2
17k
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
対話型音声AIアプリケーションの信頼性向上の取り組み
ivry_presentationmaterials
1
130
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
CRE Camp #1 エンジニアリングを民主化するCREチームでありたい話
mntsq
1
130
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
120
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
140
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
1.1k
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
300
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
3
450
Featured
See All Featured
Bash Introduction
62gerente
613
210k
Gamification - CAS2011
davidbonilla
81
5.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Agile that works and the tools we love
rasmusluckow
329
21k
Designing Experiences People Love
moore
142
24k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Statistics for Hackers
jakevdp
799
220k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Transcript
Nostrにおける 予約投稿の実現可能性を考える Nostr勉強会 #2 かすてらふぃ @jiftechnify
自己紹介 かすてらふぃ NIP-05:
[email protected]
Website: c-stellar.net NostrのTLを遡るツール: Nosaray(のさらい) 作者
事の発端: #Zapan 毎週金・土曜日の 朝 6:00〜6:30 に #Zapan タグをつけて投稿し、 Zap(投げ銭)を送り合うイベント cf.
https://scrapbox.io/nostr/Zapan
朝 6:00 ~ 6:30
起きられない
予約投稿機能を求める声たち
そうだ 予約投稿、しよう。
手法1: CLIクライアントを指定時刻に実行 algia (https://github.com/mattn/algia) と at コマンドを組み合わせる # 次の金曜日の朝6 時に
'pura vida' と投稿 echo "algia post 'pura vida'" | at 06:00 Fri # 次の土曜日の朝6 時に ぽわ〜 と投稿 echo "algia powa" | at 06:00 Sat 長所: お手軽 短所: 指定時刻にPCが起動している必要がある コマンドラインに馴染みがない人には厳しいかも
手法2: created_at を未来に設定して投稿 Nostrのイベントには created_at (発行時刻) を好きに設定できる → created_at を未来の投稿したい時刻に設定すれば、予約投稿になる…?
結論: なるっちゃなるが不確実 リレーによって、 created_at が未来なイベントの扱いが異なる created_at が現在時刻から大きく離れたイベントを受け付けないリレーも cf. NIP-22 (https://scrapbox.io/nostr/NIP-22)
誰にでも使えて 確実に投稿できる 予約投稿システム 欲しい!
予約投稿システムの素朴な設計 1. 時刻を指定して、システムに投稿内容を登録 2. 指定時刻になったら、システムがイベントを送信 リレー 予約投稿システム サーバ 2. content:
"pura vida", created_at: < 現在時刻>, sig: ??? 予約投稿システム クライアント ユーザ 1. 「⾦曜朝6 時に "pura vida" と投稿」
署名はどうする? Nostrイベントには、投稿者の秘密鍵による署名を含める必要がある → 予約投稿システムがイベントを発行できるようにするには、 投稿者の秘密鍵をシステムに渡す必要がある…? そんなシステムを誰が使うだろうか? (いや、誰も使わない)
先に署名させておけばいいじゃない 投稿内容ではなく、署名済みのイベントをシステムに登録すれば上手くいく! 1. 指定時刻(未来)の created_at を設定した投稿イベントを生成 2. 生成したイベントに署名を行う 3. システムに署名済みのイベントを登録
4. 指定時刻になったら、システムが署名済みのイベントを送信 システムは、ひたすら登録されたデータをそのままリレーに送るだけ → 投稿者の秘密鍵を知らなくてもよい
リレー 予約投稿システム サーバ 4. 3. content: "pura vida", created_at: <
⾦曜朝6 時>, sig: < 投稿者による署名> 転送 予約投稿システム クライアント ユーザ content: "pura vida", created_at: < ⾦曜朝6 時> 1. 2. 署名 設計図解
実装は? Nostr It (https://nostrit.com/) 通信内容を覗いた感じ、おそらく今回説明した仕組みで動いている ハッシュタグ未対応 ハッシュタグ対応版を独自に実装したい(未完成 )
まとめ Nostr上で実現可能な予約投稿の仕組みを検討した