InterPlanetary File System
開発元 | Protocol Labs |
---|---|
リポジトリ |
github |
プログラミング 言語 |
プロトコル実装: Go (参照実装), JavaScript, Python クライアントライブラリ: Go, Java, JavaScript, Python, Scala, Haskell, Swift, CommonLisp, Rust, Ruby, Swift, PHP, C# |
対応OS | FreeBSD, Linux, macOS, Microsoft Windows |
サポート状況 | 現行 |
種別 | プロトコル, 分散ファイルシステム, コンテンツデリバリネットワーク |
ライセンス | MITライセンス |
公式サイト | ipfs.io |

InterPlanetary File System (IPFS)とは内容アドレスかつP2Pのハイパーメディア分散プロトコルである。IPFSネットワークにあるノードは分散ファイルシステムを形成する。
インタープラネタリー・ネットワークスがオープンソースのコミュニティからの協力を得ながら開発しており[1]、ユアン・ベネット (Juan Benet) が最初に提唱したプロトコルである[2]。
解説
IPFSは同じファイルシステムである全てのコンピューターへの接続を試みるP2P分散ファイルシステムである。複数の点で、IPFSはWebと共通点があるが、IPFSは単一のBitTorrentスウォームのように1つのGitリポジトリの中でオブジェクトを交換することが出来る。言い換えれば、IPFSはハイスループットの内容アドレスブロックストレージモデルを内容アドレスハイパーリンクで提供する。この形式はマークル木の有向非巡回グラフで生成される。また、IPFSは分散ハッシュテーブルとインセンティブブロック交換、自己証明名前空間を組み合わせている。また、単一障害点がなく、お互いに信頼しあう必要もない[3]。
ファイルシステムはFUSEやHTTP経由といった複数の方法でアクセスできる。ローカルファイルもIPFSのファイルシステムに追加することができ、世界中で利用することができる。ファイルはそれぞれのハッシュで識別することでキャッシングしやすくなる。また、Bittorrentをベースにしたプロトコルを使って拡散する。コンテンツを見る他のユーザーはネットワーク上で他人にコンテンツを提供することになる。IPFSにはPKIをベースにしたグローバル名前空間であるIPNSと呼ばれるネームサービスがあり、信頼できるチェーンを構築するために提供されており、他のNSesと互換性がある上、 DNS、.onion、.bitをIPNSに対応付けることができる[4]。
評価
ウェブホスティングサービスのネオシティーズ設立者であるカイル・ドレイクはIPFSはHTTPその他数多くのプロトコルとソリューションの後継になると確信しているとし「HTTP分散コンテンツには根本的な欠陥があり、パフォーマンスチューンナップの意義もなく、壊れたCA SSLが強制されるが、それらも修正されるであろう。」と述べている[5]。
脚注
- ^ “The IPFS Project”. 2015年9月11日閲覧。
- ^ “IPFS README - Who designed it?”. 2015年9月11日閲覧。
- ^ “The IPFS Project - How it works”. 2015年9月11日閲覧。
- ^ “IPFS README”. 2015年9月11日閲覧。
- ^ “HTTP is obsolete. It's time for the distributed, permanent web”. 2015年9月11日閲覧。