InterPlanetary File System

惑星間ファイルシステムというでかいネーミングですが、NFTでよく使われるP2Pネットワークのファイルシステムです。P2Pのファイル共有には過去いろいろな黒歴史がありますが、ブロックチェーンの出現であらたに脚光をあびています。

Ethereum ERC721 : NFT

ブロックチェーンとNFTのしくみについては、ここでテストしましたが、ファイルの永続性とハッシュによる一意性が重要な要素であることがわかります。

ここではWeb3 StorageというAPIサービスを使って、画像ファイルとそれを表示しそのあとリダイレクトするhtmlファイルをipfsに登録してみました。
(※IPFS Desktopというツールを使って以前同様のことをやりましたが、安定して接続できなかったため、このツールでやり直しました)

https://web3.storage

まずアカウントを作成して、APIトークンを作成します。
以下のドキュメントに従い、コマンドラインからファイルを登録するnode.jsのプログラムを作成します。(わざわざプログラムを作らなくてもWebからファイルをアップロードできますが、実用面を考えてこちらをテストしました。上記IPFS DestopもWindowsアプリケーションをインストールした際もコマンドラインツールがインストールされまました。)

https://docs.web3.storage

ここに書かれたとおりですので、そのままスクリーンショットを張ります。
今回、二つのファイルは個別にアップロードしました。

アップロード確認。

blredirect.html

https://bafybeifebmlp3i6p67oph7s7ybalqdh3ghuzcnc2yvnbv2v5veoxqyw7te.ipfs.dweb.link/blredirect.html

このリンクで、

このようなページを5秒表示してから、ブロックチェーンのブログにリダイレクトされます。

Braveブラウザの場合は、

ipfs://bafybeifebmlp3i6p67oph7s7ybalqdh3ghuzcnc2yvnbv2v5veoxqyw7te/blredirect.html

これでもOKです。

IPFS Desktopのときは、ハッシュ値のみ(ファイル名部分なし)のURLでファイルを表現していました。Webコンテンツなど複数のファイルがある場合は、ハッシュでディレクトリを表現してその配下はファイル名で、ということかもしれませんが、ここでは別ファイルにしています。

また、IPFS Desktopのときに使っていたURL、https://ipfs.io/ipfs/… でも安定して接続できました。
https://ipfs.io/ipfs/bafybeifebmlp3i6p67oph7s7ybalqdh3ghuzcnc2yvnbv2v5veoxqyw7te/blredirect.html

前回は、Pinningがうまくできていなかったかもしれません。
https://docs.web3.storage/how-tos/pinning-services-api

分散化された永続的のストレージによりダウンしないWebサーバが実現可能になります。まだDNSが正常に動作することが必要ですが、BraveブラウザのようなWeb3時代のブラウザでDNSも分散化できれば本当の意味での非中央集権のネットワークでだれにも妨害されない情報発信ができることになます。(他にもPermawebなどあり。https://arweave.webnode.jp/permaweb/ Arweave coin(AR) IPFSはFile coin(FIL) )

ただ今回のロシアのウクライナ侵攻による制裁で、非中央集権といわれている仮想通貨取引にも制約をかけられる(ロシアのIPアドレス、ウォレットアドレス制約など)様子を見ると、ブロックチェーンテクノロジーの非中央集権とは何か、ということをまた新たに考える機会となりそうです。
P2Pのファイル共有もそうでしたが、すばらしいテクノロジーというのは、本当に使い方次第ですね。
ロシアの侵略を非難するとともに、こういったテクノロジーが規制される方向に向かわないことを願います。

参考動画