はじめに
静的サイトのホスティング、皆さんはどうしていますか。Vercel、Netlify、GitHub Pages...選択肢は色々ありますよね。
でも最近、Web3界隈で「分散型ホスティング」という選択肢が現実的になってきているんですよ。
今回紹介するPinMeは、静的サイトをIPFSにピンニングして、ENS(Ethereum Name Service)のサブドメインにコンテンツハッシュを書き込み、eth.limo経由で配信するという、ワンコマンドデプロイツールです。
正直なところ、最初は「Web3ってまだ実用レベルじゃないでしょ」と思っていたんですが、このツールを触ってみて認識が変わりました。
PinMeの特徴・メリット
サーバー不要で永続的なフロントエンド
これ、意外と重要な話なんですよね。従来のホスティングサービスって、結局どこかの企業のサーバーに依存しているわけです。サービス終了のリスクもあるし、料金体系の変更もある。
PinMeを使えば、IPFSネットワーク上にコンテンツが分散して保存されるので、特定のサーバーに依存しない永続的なフロントエンドが実現できます。
ワンコマンドでデプロイ完了
CLIツールとしてのシンプルさは特筆すべきポイントですね。複雑な設定ファイルを書く必要がなく、本当にコマンド一発でデプロイできます。
30代になって思うのは、ツールはシンプルであるほど良いということ。設定に時間を取られるのは本当に非効率なんですよね。
検証可能なコンテンツ
IPFSのコンテンツハッシュによって、配信されているフロントエンドが改ざんされていないことを誰でも検証できます。DeFiプロジェクトのフロントエンドなど、セキュリティが重要な場面では大きなメリットになります。
DNS不要
ENSを使うので、従来のDNS設定が不要です。eth.limo経由でアクセスできるので、ドメイン周りの煩わしさから解放されます。
インストール方法
インストールは非常にシンプルです。Node.js環境があれば、npmかyarnでグローバルインストールするだけ。
# npmの場合
npm install -g pinme
# yarnの場合
yarn global add pinme
インストール後、pinme helpでコマンド一覧を確認できます。
基本的な使い方
ファイルやディレクトリをアップロード
# 対話形式でアップロード
pinme upload
# パスを直接指定
pinme upload ./dist
ビルド済みの静的サイト(distフォルダなど)を指定すれば、IPFSへのアップロードとENSへの登録が自動で行われます。
アップロード履歴の確認
# 最近のアップロード履歴を表示
pinme list
# 件数を指定して表示
pinme list -l 20
# 履歴をクリア
pinme list -c
コンテンツの削除
# ハッシュを指定して削除(アンピン+ENSレコード削除)
pinme rm [hash]
ヘルプの表示
# 全体のヘルプ
pinme help
# 特定コマンドのヘルプ
pinme help upload
Viteプロジェクトでの設定
Viteを使っている場合、アセットパスの解決のためにvite.config.jsに以下の設定を追加しておくと良いですね。
export default {
base: "./",
}
相対パスにしておかないと、IPFS上でアセットが正しく読み込まれないことがあります。個人的にはこの設定、Viteで静的サイトを作るときは常に入れておく派です。
制限事項
利用にあたっていくつか制限があります。
- 単一ファイル: 最大20MB
- ディレクトリ全体: 最大500MB
ポートフォリオサイトやドキュメントサイトであれば、まず問題にならないサイズ感ですね。画像を大量に使うサイトの場合は、画像の最適化をしておいた方が良いかもしれません。
設定ファイルの場所
ログや設定ファイルは以下の場所に保存されます。
- Linux/macOS:
~/.pinme/ - Windows:
%USERPROFILE%\.pinme\
トラブルシューティングの際は、ここを確認すると良いでしょう。
実践的なユースケース
DeFiプロジェクトのフロントエンド
DeFiプロジェクトでは、フロントエンドの改ざんによる資産流出リスクがあります。IPFSとENSを使った分散型ホスティングなら、コンテンツハッシュで検証可能なので、ユーザーは安心してアクセスできます。
永続的なポートフォリオサイト
自分のポートフォリオを半永久的に残したい場合、PinMeでデプロイしておけばサービス終了の心配がありません。Web3時代の名刺代わりになりそうですね。
検閲耐性が必要なコンテンツ
分散型ネットワークの特性上、特定の組織による検閲を受けにくいという特徴があります。表現の自由を守りたいコンテンツの配信に適しています。
まとめ
PinMeは、Web3の技術を使った分散型ホスティングを、驚くほどシンプルに実現してくれるツールです。
正直、Web3系のツールは設定が複雑だったり、使い勝手が悪かったりするイメージがあったんですが、PinMeはそのハードルを大きく下げてくれています。
従来のホスティングサービスと比べて、以下のようなメリットがあります。
- サーバー依存がない永続性
- コンテンツの検証可能性
- DNS設定不要の手軽さ
- ワンコマンドのシンプルさ
Web3に興味はあるけど、何から始めていいか分からないという方は、まず自分のポートフォリオサイトをPinMeでデプロイしてみるのが良いかもしれません。実際に触ってみると、分散型Webの可能性が見えてきますよ。
個人的には、今後この手のツールがもっと普及して、分散型ホスティングが当たり前の選択肢になると面白いなと思っています。
