更新情報 v0.1.8

ゆれ子

SWING の新しいバージョンが出たよ。今回は v0.1.7 と v0.1.8 の 2 つをまとめて見ていくね。

10/14 に v0.1.7 と v0.1.8 が出ました。v0.1.7 では、作者がサイトの公開をやめても、ミラーしている人がサイトを見つけてもらえるようにイベントを再送するようになりました。v0.1.8 では、自分のノードにインターネットから直接つながるかがダッシュボードで分かるようになり、参加者同士でつながりやすくなる機能が増えました。この記事では、2 つのバージョンで変わったところをまとめます。

ミラーしている人がサイトイベントを再送する機能を追加(v0.1.7)

SWING のサイトは、作者が Nostr のリレーに出す「サイトイベント」で見つけてもらいます。これまでは、作者が swing publish をやめてリレーからサイトイベントが消えると、まだ他にサイトを持ち続けている人がいても、新しく参加した人はそのサイトをミラーする手段がありませんでした。

v0.1.7 からは、ミラーしている人が、保存しているサイトのサイトイベントを作者の署名のまま手元に持っておきます。そして 1 時間に 1 回ほど、リレーごとにそのサイトイベントが残っているかを確かめ、無くなっているリレーに再送します。署名は作者のものなので、再送する人が勝手に中身を書き換えることはできません。

また、swing sites・swing replicas・swing webring とダッシュボードの一覧は、リレーから消えたサイトでも、手元に持っているサイトイベントで補って表示するようになりました。

ゆれ子

作者さんがお休みしていても、ミラーしている人がサイトを覚えていてくれるんだね。

サイトを取り下げたいときの方法を明記(v0.1.7)

ほかの人が再送してくれるので、swing publish をやめても SWING からサイトが消えるとは限りません。明示的に取り下げたいときは、次のどちらかを行ってください。

どちらの方法でも、すでにミラーされた内容が、ほかの人の手元からすぐに消えるわけではありません。くわしくは 公開の手引き を見てください。

外から直接つながるかを確認できるように(v0.1.8)

ほかの参加者があなたのサイトをミラーできるかどうかは、インターネットから自分のノードに直接つながるかで大きく変わります。v0.1.8 では、ダッシュボードの設定画面に「ネットワーク」パネルが増えました。SWING が使っている IPFS ノードの Kubo が調べた結果を、「外から直接アクセスできる」「外から直接アクセスできない」「判定中」「オフライン」のどれかで表示します。

設定画面のネットワークのパネル。「このノードは外から直接アクセスできます。」と緑の枠で出ていて、その下に「このノードをアンカーとして広告中です」の説明、2 つのアドレスとそれぞれの「届く」の印、アンカーとして選んだ 2 つのアカウントが、選んだ理由(相互ミラー・ミラー対象を 2 サイト保存)と「接続中」の印付きで並んでいる

家のネットワークの多くは、ルーターの内側にあるので、外から直接はつながりません。そうしたノードどうしは、双方から同時に接続して通り抜ける「ホールパンチ」がうまくいかないと、データをやりとりできません。

外から届かない状態のときは、ルーターで 4001/tcp と 4001/udp を SWING を動かしているパソコンに転送すると、届くようになることがあります。プロバイダー側にもう 1 段ルーター(CGNAT)があるようなら、その注記も出ます。そのときは自分のルーターの転送だけでは届かないので、IPv6 が使えるかなどを確かめてみてください。くわしい直し方は、パネルのリンクから開ける 運用の手引き にまとめています。

判定には Kubo の起動から数分かかります。コマンドでは swing status の先頭の Reachability: の行に同じ結果が出ます。

ゆれ子

わたしのパソコンは外から届かないって出ちゃった……。ルーターの設定画面、ちょっとのぞいてみるね。

外から届くノードを「アンカー」として使う機能を追加(v0.1.8)

外から届かないノードどうしでもサイトを渡せるように、v0.1.8 では外から届くノードをさがして「アンカー」として使うようになりました。

外から届かないノードでも、自分から張った接続なら相手から使ってもらえます。アンカーはその接続を通して、届かないノードのサイトをミラーできます。つまり、外から届く人が 1 人いれば、その人を中心にサイトをミラーしてもらえるようになります。

どれも自動で行われるので、設定を変えなくても使えます。選んだアンカーと、自分が広告しているかどうかは、上の「ネットワーク」パネルで確かめられます。

ただし、広告にはノードの ID(PeerID)が載り、あなたの Nostr の公開鍵とそのノードが結びつきます。IP アドレスは載せません。広告したくないときは、設定画面の [anchor] の advertise を false にしてください。張り続ける接続の数は max_peers(0〜16、既定 4)で変えられます。

ゆれ子

届く人がアンカーになって、届かない人どうしをつないでくれるんだね。わたしも届くようになったら、アンカーになってみようかな。

デスクトップ画面で外からの接続状況を表示(v0.1.8)

デスクトップ画面のタスクバーの右下にある、ネットワークのアイコンが外からの接続状況を表すようになりました。左から、外から直接つながる・つながらない・判定中・オフラインです。マウスを乗せると、ツールチップでも状態を読むことができます。

タスクバーの右下を拡大したもの 4 つ。左から、2 台の青いモニタのアイコン、その右下に黄色い三角の警告が付いたもの、灰色のモニタ、灰色のモニタの右下に赤い × が付いたもの

また、デスクトップ画面のツールチップの内容が、ダッシュボードの表示言語で出るようになりました。英語で使っている人も、アイコンだけのボタンの意味をツールチップで読めます。画面に表示される言語は、これまでどおり日本語のままです。

そのほかの変更

更新のしかた

更新のしかたは、インストール方法によって違います。インストーラーやスクリプトはもう一度実行すれば上書きされ、Homebrew なら brew upgrade の後に swing service install で新しいバージョンに切り替わります。Docker Compose では、git pull の後に docker compose up -d --build で作り直してください。くわしくは 導入の手引き を見てください。

AI エージェント向けのスキルを使うときは、更新したあとに swing skill install を実行してください。