KOTET'S PERSONAL BLOG

#ipfs体験記 11:IPFSによる分散型SoundCloud

Created: , Last modified:
#ipfs体験記 #ipfs #tech

これは1年以上前の記事です

ここに書かれている情報、見解は現在のものとは異なっている場合があります。

今まで前回、次回の記事に手動でリンクを貼っていたが、記事を投稿するたびに複数のファイルを編集しなければならないのがめんどくさいのでやめる。 ipfs体験記というタグを作ったのでそこから記事一覧にアクセスできる。 今までタグに日本語を使うのを避けていたが、やってみたら意外と問題が起きなかった。

追記: どうもシーダーがいなくなってアクセスできなくなってしまった様子のリソースがいくつかあるが、そのままにしておく。

SoundCloud的ウェブサイトがあった。

以下は作者の書いた記事である。

音声などのデータをIPFS上に保存しており、たとえば https://gateway.ipfsstore.it:8443/ipfs/QmQV535FtqctNyKb82Qh5XUbdh2bdmjyzS5AHcwEPWTaJS のように内部でパブリックゲートウェイを使ってアクセスしている。 以前紹介したブラウザ拡張 を有効にした状態で閲覧するとこのURLがローカルゲートウェイのものに書き換えられ、自分のIPFSノードからダウンロードされるようになる。 または、ログインするとローカルゲートウェイを使うよう設定できるらしい。 するとIPFSの効果により負荷が分散されるというわけだ。

ipfs bitswap wantlistを見ていると再生ボタンを押したあとにwantlistにハッシュが大量に追加されるのを見ることができる。 wantlistはソートされておらず実行するたびに順番が違うので、watchなどで監視する場合はsortする必要があるので注意しよう。

しかし自分の環境だと1回目は途中でダウンロードが止まってしまうことがある。 止まってしまってからページをリロードして、もう一度再生するとちゃんとwantlistがすべて消化される。 これはこのサイトのバグだろうか、go-ipfsのバグだろうか、それとも単に自分とデータ保持者の回線の問題だろうか?

コンテンツが完全に分散されているので、アクセスする人が多くてもローカルゲートウェイを使っており、シーダーが十分に多いなら管理者の負担にはならない。 なので、通常なら禁止されがちのファイルへの直リンクが上記の記事では逆に紹介されている。

<video src="https://ipfs.io/ipfs/QmQAJq3xfPhekc8zph3KjssjYUBLBT3jnMAPHzJU1X9ELz" poster="https://ipfs.io/ipfs/Qme9AJ61nQJezRej79BZTxvT5uXuUzLTiFGH5kWewCJYLR" controls></video>
<audio src="https://ipfs.io/ipfs/QmQAJq3xfPhekc8zph3KjssjYUBLBT3jnMAPHzJU1X9ELz" controls></audio>

分散されているのはデータだけかと最初思ったが、どうやら完全に分散型のサービスらしい。 データベースにSteemというものを使っているらしいが、Steemについての知識がゼロのためどれくらい分散されているのかわからない。

なかなか実用的で素晴らしいと思う。 あとはブラウザやスマホで動くIPFSノードがあれば……