144
135

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハッカーのおもちゃとしてのNostrのススメ

Last updated at Posted at 2024-01-02

はじめに

Nostrという、SNSのようなものはご存知でしょうか?
ご存知でなければ、ぜひまず一度触ってみることをお勧めします。

割と普通にSNSっぽく使えます。

image.png

分散系SNSっぽいシステム

Nostrは、分散系のSNSっぽいネットワークです。
図で表すとこんな感じ。普通に想像するWebサービスとは随分形が違うと思います。

各所のリレーサーバーに、ユーザーは投稿をばらまき、ユーザーがそれを見る形です。
分散の責任がユーザー(クライアント)側にあって、リレーサーバーが落ちたり消えたりしても影響が起きにくい仕組みです。

image.png

より詳しい説明は上記でやってるのですが、端的に言って

といった特徴があります。

※P2P技術は使用していません。ファイルの共有も(原則)できません。文字のみです。
匿名化技術も使用されていません。

気軽にサーバーを立てられる

上記の特徴から、リレーが非常に気軽に建てられます。
プロセス一個で建てられます。例えば最低限の実装では131行しかありません
虚無リレーなら28行です。

別にネットワークに参加させるとか言うことも気にしなくてOKです。
(リレー同士は相互接続しないのが通常です、一部相互接続していることがあります)

ローカルで立てて動かしてもよし、適当に公開してもよし。
サーバーダウンしても他のリレーが冗長経路として機能するので、特殊なリレーでない限り誰も困りません。

※ 流石に壊れた情報を返すのを放っておくと、接続してる人に迷惑がかかりますが、自分しか接続してないリレーなら問題ありません。

クライアントは複数のリレーに同時に接続する仕組みなので、自分しか接続しないローカルリレーと、ハブリックなリレーを混ぜて接続して遊ぶことができます。

仕様にはたくさんの仕組みがあり、それをサポートするかどうかは殆どの項目において自由です。

気軽にAPIを叩いてbotやクライアントを作れる

ともかく動かしてみようか

例えば、

に行き、

wss://yabu.me

に接続して

["REQ","test",{"kinds":[1],"limit":10}]

を送信してみてください。

10件くらいメッセージが出てきたあと、ポコポコとメッセージが湧いて出てくると思います。

image.png

["REQ","test",{"kinds":[1],"limit":0,"authors":["9f77d173dcd94cc4243d36883b157f8c3283051dc6bd237b1c5ac400fb90cecb"]}]

で送信すると、地震情報がリアルタイムに流れてきます。

Websocketと、人間が読める単純な電文でクライアントが実現できます。

送信の際には、署名処理が必要なのでもちょっと大変ですが、この辺を参照してください。

ちなみに、nostrのライブラリは意外と色々ありまして、すでにArduino環境から投稿したりもできます。

image.png

image.png

API制限なし

ところで、ここまで見てみてわかったと思いますが、API制限とかはありません。
そもそもAPI登録もありません。
利用許可を求める必要もありません。
公式クライアントもないので、全員が同じ土俵の上なのです。

こんなにも自由なところは中々ありません。しかも割りと実用的に動いている。

秘密鍵は外部に漏らさないように注意してください。
可能な限り、常用のアカウント(鍵ペア)ではなく、実験用のアカウント(鍵ペア)を作成して使用することをお勧めします。

あまりに異常なリクエストは弾かれたり、迷惑なスパムや迷惑なbotはリレーから追い出される可能性があります。リレーの様子は伺ってください。

Nostrの性質上、海外含めた多数のリレーが使用できるため、BANの影響は少ないですが、日本リレーからBANされた場合、日本語コミュニティとの交流に支障をきたすことになりますので、ご注意ください。

必要に応じて、自前で試験用のリレーを立てるなど、影響を少なくする方法を検討してください。

また、リレーごとのポリシーについては、各リレーが提供するNIP-11情報(リレーメタ情報)を参照してください。対応しているアプリケーションではGUIで確認することができます。

おわりに

あなたも遊んでみませんか?

nostr日本コミュニティは結構活発です。下記をご覧ください。

▽それ、1個のアカウントで全部できるよ。そう、Nostrならね。 - godzhigella
※このサイト自体もnostrで実装されています。

掲示板風実装とかもあります

注意
Nostr Assets ProtocolおよびNostrトークンは、Nostrの名前を勝手に使用している無関係の(おそらく詐欺)通貨です。混同しないようにご注意ください。

同人誌は電子版購入可能です。

image.png

image.png

144
135
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
144
135

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?