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
今からはじめるNostr
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takuma Shinohara
February 22, 2023
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今からはじめるNostr
2023/2/22 Nostrstudy
Takuma Shinohara
February 22, 2023
More Decks by Takuma Shinohara
See All by Takuma Shinohara
Bluesky Meetup in Tokyo vol.4 - 2023to2026
shinoharata
0
250
MCPとは?
shinoharata
0
170
BlueskyMeetup in Fukuoka アイデアソン
shinoharata
1
150
BlueskyMeetup in Fukuoka アイデアソン結果発表
shinoharata
1
120
いまのBlueskyってどうなの
shinoharata
0
170
四谷ラボとは ※2025/05/31
shinoharata
0
180
What's is Bluesky
shinoharata
0
2k
dissolute fat
shinoharata
0
260
20240520_toranoana_lab.pdf
shinoharata
0
250
Other Decks in Technology
See All in Technology
Type-safe IaC for Dart
coborinai
0
180
AI工学特論: MLOps・継続的評価
asei
5
1.1k
生成 AI 時代にいま一度「問い合わせ」について考えてみる
kazzpapa3
1
130
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
410
そのドキュメント、自動化しませんか?
yuksew
1
410
Aurora MySQL 8.4リリース! Rubyistが備えること / what-rubyist-should-prepare-for-aurora-mysql-8-4
fkmy
0
690
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
160
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
520
書籍セキュアAPIについて
riiimparm
0
240
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
270
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
140
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
400
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
370
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
340
Building Adaptive Systems
keathley
44
3.1k
The SEO Collaboration Effect
kristinabergwall1
1
510
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
640
The Limits of Empathy - UXLibs8
cassininazir
1
530
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
Transcript
今日からはじめるNostr NIP-05 ドメイン認証編
もくじ - 自己紹介 - 事前準備 - JSONファイルを作る - サーバーにアップロードする -
ドメインを向ける - 認証を確認する
Shino3 - 誕生日:12月1日 - 血液型:A型 - 身長 :162cm - しごと:エンジニア・プログラマ 広く 浅くどの言語・技術でも
- 趣味 :自動車(レース、改造) グランツーリスモ 自作キーボード設計販売 - 推し :檜山沙耶さん (WeatherNews所属) - しのさん
技術的な部分の説明
NIP-05認証とは Mapping Nostr keys to DNS-based internet identifiers https://github.com/nostr-protocol/nips/blob/master/05.md NostrキーとDNSベースのインターネット識別子の対応付けをおこなう。
これの仕様は、ドメイン認証の仕組みを定義しているものになります 詳細:ユーザー(kind 0)のnip05に対してインターネット識別子を設定できるようになる
ドメイン認証の手順 .well-known/nostr.json nip05の照合をおこなう nip05の認証情報 ユーザー情報 ユーザー名 プロフィール nip05の認証情報 etc …
nip05記載のドメインのサーバー ※管理者のみ設定可能
サーバー管理の問題点 • 技術的知識が必要 • ドメイン管理にコストがかかる • ホスティングサービスは比較的、技術者向け • ホームページの運営なんかよくわからない ※国内サービスが使いにくいなど
• 技術的用語がとにかく多い
ホスティングサービスの比較表 Cloudflare Pages Firebase Hosting Netlify GitHub Pages 転送量 無制限
10GB/月 100GB/月 100GB/月 ストレージ 2万ファイル 1GB 100GB 1GB 独自ドメイン ◦ ◦ ◦ ◦ DNS管理 あり なし あり なし SSL対応 ◦ ◦ ◦ ◦ 表示速度 速い 速い まあまあ 速い 商用利用 ◦ ◦ ◦ ×
ホスティングサービスの比較表 Cloudflare Pages Firebase Hosting Netlify GitHub Pages 転送量 無制限
10GB/月 100GB/月 100GB/月 ストレージ 2万ファイル 1GB 100GB 1GB 独自ドメイン ◦ ◦ ◦ ◦ DNS管理 あり なし あり なし SSL対応 ◦ ◦ ◦ ◦ 表示速度 速い 速い まあまあ 速い 商用利用 ◦ ◦ ◦ ×
必要なもの • Nostrアカウント • パソコン(Windows/Mac/Linux) • Cloudflareの登録 • 独自ドメイン(オプション) •
めげない心
JSONとは
JSONはウェブブラウザなどでよく使われている ECMA-262, revision 3準拠のJavaScript(ECMAScript) を ベースとしている。2006年7月にRFC 4627で仕様が規定され、その後、何度か改定され、 2017年12月14日 [3]にIETF STD
90およびRFC 8259およびECMA-404 2nd editionが発表された。MIMEタイプは application/json、拡張子はjsonとされた。 JSONは単純であるので、特にAjaxの分野で利用が広がりつつある。 JavaScriptでJSONをパースして読み 込むには、文字列をJavaScriptのコードとして解釈させる eval 関数を作用させるだけでよい(ただし、セキュ リティ上の問題があるうえ、ECMAScript 2018 まで[4]は U+2028 LINE SEPARATOR と U+2029 PARAGRAPH SEPARATOR の扱いがJavaScriptと互換性が無いため、JSON専用のパース関数の JSON.parse() を利用するべきである)。このように、広く普及しているウェブブラウザ搭載言語である JavaScriptで簡単に読み込めるため、Ajaxの開発者達から注目を浴びることになった。 JavaScript言語以外でも、ほとんどの言語において JSONは単純な処理で書き出しや読み込みができる。そ のため、JSONは異なるプログラミング言語の間でのデータの受渡しには能率的である。ウェブアプリケー ションの場合において、ウェブクライアントでの JavaScriptとのデータの受渡しなどはその最たる活用例と言 える。プロセス間通信、マシン間通信においても、疎結合にするため、 JSONで情報を受け渡しすることもあ JSONとは
JSONはウェブブラウザなどでよく使われている ECMA-262, revision 3準拠のJavaScript(ECMAScript) を ベースとしている。2006年7月にRFC 4627で仕様が規定され、その後、何度か改定され、 2017年12月14日 [3]にIETF STD
90およびRFC 8259およびECMA-404 2nd editionが発表された。MIMEタイプは application/json、拡張子はjsonとされた。 JSONは単純であるので、特にAjaxの分野で利用が広がりつつある。 JavaScriptでJSONをパースして読み 込むには、文字列をJavaScriptのコードとして解釈させる eval 関数を作用させるだけでよい(ただし、セキュ リティ上の問題があるうえ、ECMAScript 2018 まで[4]は U+2028 LINE SEPARATOR と U+2029 PARAGRAPH SEPARATOR の扱いがJavaScriptと互換性が無いため、JSON専用のパース関数の JSON.parse() を利用するべきである)。このように、広く普及しているウェブブラウザ搭載言語である JavaScriptで簡単に読み込めるため、Ajaxの開発者達から注目を浴びることになった。 JavaScript言語以外でも、ほとんどの言語において JSONは単純な処理で書き出しや読み込みができる。そ のため、JSONは異なるプログラミング言語の間でのデータの受渡しには能率的である。ウェブアプリケー ションの場合において、ウェブクライアントでの JavaScriptとのデータの受渡しなどはその最たる活用例と言 える。プロセス間通信、マシン間通信においても、疎結合にするため、 JSONで情報を受け渡しすることもあ JSONとは ・JavaScript Object Notationの略で、データ記述言語の1つである。 ・軽量なテキストベースのデータ交換用フォーマットであり プログラミング言語を問わず利用できる。 ・名称と構文はJavaScriptにおけるオブジェクトに準拠する
認証用JSONファイルを用意する
Nostrの認証用JSONファイルを用意する Nostr フォルダの直下に 「.well-known」ディレクトリを作る
Nostrの認証用JSONファイルを用意する SnortでもIrisでも、お好きなクライアントで 自分のプロフィールを表示して 「npubから始まる」公開鍵をコピーします
Nostrの認証用JSONファイルを用意する
Nostrの認証用JSONファイルを用意する { "names": { "_": "d0de11abd77e5c4537591186c0270c12e1cb0f116f4b082fcad66a1063c92d19" } } nostr.json
Nostrの認証用JSONファイルを用意する .well-known フォルダの直下に 「nostr.json」を保存します
サーバーへのアップロード編
サーバーへアップロードする 1 2 3 右のメニューより、Pagesを選択します 切り替わった画面の、 Create a projectを選択 Direct
Uploadを選択します
サーバーへアップロードする Project Nameを入力して、Create Projectボタンを押します。 ※ここでは、仮にnostr-shino4としています
サーバーへアップロードする .well-known が入るフォルダ(Nostrとか)を ドラッグ・アンド・ドロップします
サーバーへアップロードする 完了すると、このように完了したことを表示する画面になります。 ※アップロード自体は数秒でおわります
アップロード内容の確認
アップロード内容の確認 Deploy Siteのボタンを押すと、完了の画面が出ます。 「nostr-shino4.pages.dev」を押して、サイトを開きます
アップロード内容の確認 アクセスすると、見つかりません。とページが出ます。 焦らずに次の手順へ進んでください
アップロード内容の確認 落ち着いてURLに追記します。 nostr-shino4.pages.dev/.well-known/nostr.json JSONの内容が表示されていればOKです
アップロード内容の確認 NIP-05に、記載します。 先程のドメインとユーザー名を以下のように設定します。 _@{あなたのドメイン名}
アップロード内容の確認 このように、認証マークがついたと思います。 お疲れ様でした
まとめ
NIP-05認証は なぜ必要? • 鍵の変更ができない • 秘密鍵が流出すると乗っ取られ る • ドメインは個人の支配下に置くこ とが可能
• 自分の所有するドメインを適切に 運用する • 公開鍵を照合し、自分のアカウン トを証明できる
今後の展望 • データ通信量をクリアした クライアントの登場 • データの整合性解消へ向け、開 発の加速 • 無数に流れてくるデータを 整理し、適切に配信する
仕組み→Nostrendに期待 • Nostrのロゴやイメージの決定 • Nostrの擬人化 • Nostrちゃんの登場 • コミケにNostrちゃんのコス