こんにちは. B4の新部です.

経緯

NCLは並列分散処理に関するテーマの研究をしています. そのため, P2Pとその周辺技術にも注目しています.
研究室メンバーの中でIPFSに気持があるメンバーが複数いたので, 研究室のサイトをIPFSを使ってホスティングしてみることにしました. (といっても, ほぼ私の趣味です)

IPFS

IPFS (Inter Planetary File System) とは, P2Pネットワーク上で動作するハイパーメディアプロトコルです.Protocol Labsによって開発されています.

Hugo

Hugoとは, Go言語で実装されている静的サイトジェネレータです. Markdownと設定ファイルを記述することで, いい感じのサイトを生成することができます.

動作の様子

Diagram of NCL site’s deployment これらを実現するにあたって, 研究室のProxmoxクラスタ上にGitHub Actionsのself-hosted runnerを作成しました.
self-hosted runnerの利点としては, ビルド時間の制約がないという点があります.

リポジトリへのpushをトリガーとして, このrunner上でHugoのbuildとIPFSへのadd & name publishが行われます.
またNCLのドメインでIPFS Gatewayを作成し, DNSLinkを用いてIPFS上のコンテンツと紐づけることで従来のWebと同じようなアクセスもできるようになっています.

実際どうなんですか !

ほぼロマンと趣味です.
コンテンツの内容が更新された後も継続して同じ方法でアクセスするためには, IPNSが必要です. ですがIPNSの性能に問題があり, 私が試した限りでは名前解決ができたりできなかったり, 時間がかかったりしていました. そのため, この記事が閲覧されている際には, DNSLinkにIPNSのハッシュ値ではなくIPFSのハッシュ値を紐づけているかもしれません. (様子を見て色々試したいと思います)

さいごに

あまり大したことはやっていませんが, 手を動かしながらIPFSの動作の様子を見ることができたので楽しかったです.

NCLの研究分野に少しでも興味のある方は, ぜひ研究室配属の際の候補に入れてみてください. 私や他の研究室メンバー, 金光先生に連絡を取ってみてください. 意欲的な学生は大歓迎らしいです! 是非一緒に研究や開発をしましょう!