raspberry piにipfsのゲートウェイを生やしてみる
Raspberry PiにはここからダウンロードしたKubo v0.25.0をインストールした。
インストールしたのち、
ipfs daemon
を実行すると初期設定ではlocalhost:8080にゲートウェイが生える。
設定を変更して0.0.0.0:8080でゲートウェイを動かすようにすると、外部からのアクセスが可能になる。しかし、外部からアクセスされ放題だと困りそうなので、localhost:8080のままTailscaleを使ってVPN内だけに公開することにした。
tailscale serve --bg --https=8080 localhost:8080
とすると、TailscaleのVPNに接続しているときに限りhttps://[サーバーのドメイン]:8080でアクセスできるようになる。ドメインはTailscale側で割り当てられて、VPN内でのみ有効(なので、基本的に外部に漏らしても問題ない。自分の場合はraspberrypi.tailded78.ts.netだった)。
これで完成ではあるが、自分の環境では問題が生じた。多くのpeerと接続(400〜600くらい?)することによってルーターのNATテーブルが溢れてしまったからか(明確な根拠はなし)、ルーターが頻繁に再起動し家全体のネット接続が不安定になってしまった。
自分の環境ではIPv6を使うことができるので、NATが原因(疑い)ならIPv4を禁止してしまおうそうしよう...ということで、IPv4を使ったピアとの接続を禁止してみるとインターネット接続が安定するようになった。
設定のSwarm.AddrFiltersのリストに"/ip4/0.0.0.0/ipcidr/0"を追加すると、IPv4を使った接続を禁止することができる。
IPv6に対応したピアはそんなに多くないようだが仕方がない。
ファイルの共有リンクを作成する際、パブリックゲートウェイを使用したリンクが作成される。初期設定ではipfs.ioを使用するようになっているが、時間内に到達できなかったのかタイムアウトとなることが多い。
cloudflareが運用しているcf-ipfs.comが前者と比べると早い。自分で建てたゲートウェイも使えるが、あえてよそのゲートウェイを使っても面白い。明示的にゲートウェイのpeerと接続するともっと早いが、ここまで来るとちょっと面倒くさい。
先述のノードを使ってipfsに追加した画像のリンクを貼っておく(画像は去年東京に行ったときに撮影した)。飽きてノードを閉鎖したりしていなければ、リンク先で同じ画像が表示されるはず(他の人がこのファイルをpinするとは考えづらいので...)。
どちらもjpgファイル。
CID: QmbCJ3tKMPxu8hcq5GnwDfq8AVcZSbNJmAMEAd3GkXoDfr
CID: QmVbovYYXFzQGmdqac8NPECdmzDagKadZULnGp9MXZnxe8