IPFS とは?#
IPFS は、ピアツーピアのハイパーメディアプロトコルであり、ネットワークをより速く、安全に、オープンにします。簡単に言えば、分散型インターネットです。技術的に言えば、これは分散ハッシュテーブル DHT に基づいたコンテンツアドレッシング、git モデルのバージョン管理、マークルオブジェクトの関連付け、ピアツーピア技術、グローバルな名前空間 IPNS に基づく、さまざまな技術に基づいた分散ファイルシステムです。
人間の言葉で言うと、これは共有ドライブのようなもので、IPFS - Desktop(グラフィカルインターフェースを持つシステム向け)やkubo - ipfs(CLI 向け)をダウンロードしてみることができます。そして IPFS を起動すると、あなたのデバイスは IPFS ネットワークのノードになります。
IPFS を使って何ができるのか?#
IPFS ネットワークに接続すると、IPFS は自動的にあなたのデバイスをローカル IPFS ノードとして設定し、他の IPFS ノードを探します。これにより、他のユーザーと接続を確立し、ファイルを提供する手助けができます。また、あなたのファイルを IPFS ノードにアップロードし、配布を待つこともできます。これにより、ネットワーク上の他のユーザーがあなたのファイルにアクセスできるようになります。IPFS ネットワークでは、ファイルへのアクセスは IPFS ゲートウェイを通じて行われます。例えば、https://ipfs.io/ipfs/
+ CID(ファイルハッシュ)
でアクセスします。例えば:https://ipfs.crossbell.io/ipfs/bafybeifbn36zmdb37ov6id3toy6bve47264hjk2yob6rm4bhw7ooawncf4
(ここでは、GFW の禁止を回避するために、ipfs.crossbell.io
という CrossBell がホスティングしている IPFS ゲートウェイを使用しています)
この技術は本当に理想的なのか?#
この技術は確かに理想的ですが、実際のアプリケーションでは以下の問題に直面することがあります。
-
ローカル IPFS ノードからアップロードしたファイルが、IPFS ゲートウェイ + CID を通じてアクセスできないことがある。
-
発見されるノードが非常に少ない。
-
大量の帯域幅を消費する可能性がある。
これらの問題の大部分は、このネットワークが非常に大規模であり、個々の IPFS ノードの重みが非常に低いためです。IPFS の配布は通常数時間以内に完了しますが、個人の場合、これらのニーズを満たすためにサービスプロバイダーを探すべきです。彼らは IPFS ネットワーク内での重みが大きく、ファイルの更新効率も高く、Git の自動デプロイなどの拡張サービスも提供しています。この文章で使用されているのはFleekです。
Fleek について#
Fleek は、非常に重みが大きく、多くの IPFS ノードを持っていると簡単に理解できます。Fleek を通じて IPFS ネットワークにアップロードされたファイルは数秒以内にブロードキャストされ、Git リポジトリを接続してプロジェクトをデプロイし、あなたのドメイン名をバインドすることをサポートしています。
Fleek は信頼できるのか?#
私はこのサービスに接触してから 2 日しか経っていません。Fleek がウェブサイトを成功裏にデプロイした後、3 種類のアクセス方法を提供していることを観察しました。
-
xxx-xxx.fleek.app
:このドメインは Cloudflare CDN を使用しており、実測で解析された IP の数は 2 です。使用をお勧めしません。
:この方法はネイティブの IPFS アクセス方法です。IPFS ゲートウェイ + CID を通じてアクセスします。しかし、CID はハッシュ値であるため、あなたのウェブサイトが変更されると CID も変わります。
- カスタムドメイン名をバインドしてアクセスする方法です。これにより、アマゾンの CDN が使用され、CID が自動的にマッピングされます。実測で解析された IP の数は 30 を超え、速度も非常に速いです。
Warning
注意、HTTP プロトコルを使用する IPFS 技術は、IPFS ネットワークにアクセスするために中央集権的なサーバー代理が必要です。訪問者が IPFS ネットワークに接続した後にのみ、分散型の接続方式が使用されます。
- IPFS のファイルブラウジングインターフェースが表示されているにもかかわらず、実際にはこのページは HTTP リクエストを通じてアマゾン CDN が IPFS ネットワークを反映しているため、実際には中央集権的なネットワークです。
- あなたのデバイスがすでに IPFS ネットワークに接続されている場合、すべてのトラフィックは P2P(分散型)を使用します。したがって、あなたが見ているアクセスアドレスは実際にはローカルアドレスです。
思考を整理すると、Fleek で何ができるか#
Fleek を通じてあなたの Git リポジトリに接続し、ビルドコマンドを使用して静的ウェブサイトを構築し、IPFS に公開し、HTTP アクセスにも対応させることができます。
正式に開始する#
-
fleek.xyz にアクセスし、MetaMask でログインします。
-
あなたの Git リポジトリを接続し、ビルドコマンドなどの関連情報を入力します。
-
ウェブサイトをデプロイします。
-
ドメイン名をバインドします。
-
最終的にアクセスします。
効果図:
拡張して、IPFS 技術で何ができるか?(😭現在は廃止)#
- 巨大な画像ホスティングサービスを作成しました。すでに稼働中です。参照:https://pic.onani.cn (原理: https://ipfs-pic.onani.cn にリクエストを送り、画像リストを取得し、ランダムに選択して JS で表示)
-
もはや自分で画像をホスティングする必要はありません。すでに稼働中で、このブログのすべての画像は IPFS に保存されています。
-
理論的には、ストレージを占有するサービスを IPFS にアップロードして、ストレージと計算を分離することができます。