イーロン・マスク氏がツイッターを買収して以来、APIが有料化されて多くのツールが終了の危機を迎えたり、大量のユーザーが突然凍結されて不穏な空気が広がったり、先行きが不安になるできごとが続いています。
そうしたなか、ツイッター以外のSNSを模索する動きも始まっていて、すでにマストドンがユーザーを多く獲得しつつあります。ちなみに私はいまのところ @meh@mstdn.jpでつぶやいていますが、近日中に自分のサーバーを立てようかとも考えています。
それ以外にもPost、PlanetaryなどといったSNSがいろいろありますが、元ツイッターCEOのジャック・ドーシー氏が出資したことで知名度の上がったNostrについて、最近 iOS クライアントDamusが公開され、一部で話題になっています。
Damus の特徴と雰囲気
NostrとDamus(ノストラダムス?)という聞き慣れないことばが並んでいるのですが、2つの関係はプロトコルと、それを実装しているクライアントです。ツイッターと、ツイッタークライアントの TweetDeck の関係だといえばわかりやすいでしょうか(正確な表現ではありませんが)。
Nostr でできることは、いまのところテキストを送受信することだけですので、初期のツイッターに様子が似ています。
ユーザーはお互いにフォローしあって、リプライを送ったり、投稿を再投稿(RT)したりといったことができます。
ただし、Nostr は中央集権的なサーバーがどこかにあるのではなく、複数のリレーサーバーが情報を伝達しているという形式をとっていますので、リレーしだいでは表示が遅かったり、届かないといったこともあるようです。
いまとなってはとても原始的な雰囲気ですが、そのおかげもあって純粋にテキストのやりとりを楽しむことができるのは懐かしくも面白い空気がいまは流れています。
Nostr / Damus の初期設定
iPhone / iPad を使っているならば、Damus アプリからすぐに Nostr のアカウントを作ることができます。アプリをダウンロードして開くとアカウント作成のボタンがありますので、それをタップして規約に同意すれば、ユーザー名を選ぶ画面になります。
ユーザー名だけを入力して、表示名、プロフィール欄は任意ですのでひとまずは ID をきめて進みましょう。
これでアカウントが作成されます。すると、Nostr の「公開ID」と「非公開鍵」の2種類が設定されます。この公開IDはユーザーを一意に特定するためのもので、これを検索窓にいれるとユーザーを探すことができます。たとえば、ちょっと長いですが私のIDは:
npub1jmadu2yk4mcjwzamyhu3jkecj9n7dtj355lsejaj0d77tq69259sd4zg9r
という文字列になっています。
もう一つの文字列、非公開鍵はいわばパスワードです。これは誰にも知られないようにパスワードマネージャーなどで保管しておきましょう。Damus 以外の Nostr クライアントでログインする際にも利用できます。
Damus でプロフィールアイコンなどを設定
Damusでログインすると、最初はプロフィール画像がロボットのようになっていて殺風景です。そこで、プロフィール画面の右にある「Edit」ボタンをタップし、プロフィールの設定を行う画面を開きます。
すると、プロフィール画像とバナー画像を設定する欄があります。なんとここはファイルをアップロードする形式ではなく、どこかのサーバーにおいてある画像を参照する形式になっています。
ですので、自分のブログサーバーを持っていたりする人はそちらへのリンクを、それがない場合は Gravaterアイコンなどのリンクを、あるいは当面はツイッターのプロフィール画像へのリンクを入れてもいいかもしれません(本来の利用方法ではないので、この状態のままいつまでも運用するのはおすすめしません)。
これでプロフィールが完成しました。プロフィール部分には npub で始まる公開IDがすぐにコピーできるようになっていますので、これをツイッターなど、他のSNSで紹介して友人にフォローしてもらいましょう。
これで、Nostrを始めることができます。
Damus で認証バッジを取得する
上のわたしのプロフィール画像では「lifehacking.jp」という認証バッジが付いていますが、こちらも自分のサーバー上にファイルを一つ置くことで設定が可能です。
詳しくはこちらのGistに書かれていますが、手順がちょっとややこしいので以下にまとめておきます。
1. JSON 形式のファイルを作る
まず、テキストエディタなどを使って、以下のような JSON ファイルを作成します。<name>
となっている部分をユーザーIDに、<pubkey>
となっている部分を公開ID、ただしHEX形式になったものを入力します。
{ "names": { "<name>": "<pubkey>" }
}
Damusの公開IDをHEX形式に変換するには、こちらのサイトを利用します。
たとえば私の場合は、以下のようなファイルになります。
{ "names": { "mehori": "96fade2896aef1270bbb25f9195b389167e6ae51a53f0ccbb27b7de58345550b" }
}
これを自分の管理しているサーバーの、.well-known/nostr.json
という名前のファイルとして外から見える場所にアップロードしておきます。
たとえば public_html
フォルダ以下が公開されているならば、public_html/.well-known/nostr.json
というファイルが存在して、外からアクセスできるようにしておくということになります。
2. htaccessファイルに、CORS設定を追記
ウェブサーバーの設定で、CORS(Cross-Origin Resource Sharing)を許可するようにしておきます。これは Apache なら htaccess に以下の一行を挿入する:
Header set Access-Control-Allow-Origin "*"
か、nginx ならば:
add_header 'Access-Control-Allow-Origin' '*';
を設定ファイルに加えておきます。
3. Damus アプリで、NIP-05認証を設定
最後に、プロフィール設定の一番下の部分にある、NIP-05 認証欄のところに情報を入力します。
たとえばさきほどのファイルで <name>
の部分を mehori
にして、このファイルを lifehackingjp
というサーバーにアップロードしたならば、ここは:
mehori@lifehacking.jp
という具合に入力します。メールアドレスみたいに見えますが、@
以下はアップしたサーバーしだいというわけです。
ここまで設定すれば、プロフィール欄に認証バッジが表示されているはずです。つまり、「このサーバーで、この人の存在を認証した」という保証になるわけですね。
仮想通貨などと親和性の高い SNS
Nostr / Damus が注目を集めているもう一つの理由として、それが最初から仮想通貨対応しているSNSであることが挙げられます。
Damus の設定欄にも Lightning Bitcoin の設定欄がありますが、こちらについてはまだ私も使用していませんので、今後情報があったらアップデートしたいと思います。
Damus の使用感などについてはネタフルのコグレさんも紹介しているのでそちらもぜひ。
Happy Nostr-ing!