人間の顔でIPFSで作業する

IPFSについて聞いたことのある人はほとんどいません。詳細な調査に参加した人はさらに少なくなりました。 そして、かなりの数のユニットがプロジェクトのより深いところに突入しました。




要するに、IPFSはgitとbittorrentの基礎となるテクノロジーから作成されたキメラであり、1つの機能-コンテンツによるオブジェクトのアドレス指定( CAS )を備えています。


オブジェクト、ファイル、またはユーザーデータはすべてハッシュされ、結果のハッシュはIPFS内のこのファイルのアドレスになります。 さらに、ネットワークの他のノードがこのコンテンツを要求する可能性があり、それは惑星全体に広がり、理想的には、ハッシュによって利用可能になり、再び消えることはありません。 また、このプロパティは、コンテンツの変更がネットワーク上に新しいハッシュアドレスを作成するため、システム内のオブジェクトの耐性を意味します。


典型的なオブジェクト参照: http : //ipfs.io/ipfs/QmPQGujZ4K1xPNNcCjBWMoSuYrcJae43dukJP51mbfftDK


しかし、このアプローチにはマイナス点があります。人はハッシュを覚えていないからです。 一般的な人は、階層的なファイルシステムまたはフィルター機能を備えたタグクラウドを持っていることが一般的です。


ファイルシステム


これを行うために、ipfs開発者は、ファイルとディレクトリのように見えるネットワーク上のオブジェクトのグラフを保存することを可能にしました;ファイルとディレクトリには、人間の名前と使い慣れたファイルパスがあります。


この機会は良いもので、次の機会に活気を与えました。このhttps://ipfs.io/ipns/i.ocsf.in/のように、ipfsネットワーク上で静的サイトを直接ホストすることです。


このすべてについて、ユーザーがこの仮想ファイルシステムで実行できる最大の操作は、ローカルデーモンの起動時にオブジェクトのデータベースのコンテンツをマウントすることであることがipfsのドキュメントから明らかです。 おそらく、これはいくつかのタスクに十分です。 しかし、多かれ少なかれFSで本格的な仕事をするには、より多くの機能が必要です。


もちろん、ファイルシステムを完全に仮想化するには、fuseまたはWindowsでのdokanY用の独自のドライバーを開発する必要がありますが、これはエキサイティングなプロセスですが、最初にネットワークとIPFSファイルシステムAPIの機能を評価するためにもっと簡単なことができます。


そして、どのメカニズムがほとんどすべてのエコシステムで機能しますか? Webプロトコル。 たとえば、WebDAV。 Windowsには組み込みのクライアントがあり、Linuxにはメインのグラフィックファイルマネージャーとcadaverを介したコンソールがあります。


ジグラットを作成します。 golangで。 そして、おそらくnode.jsで。


実装


golangですぐに使用できるwebdavサービスは、基本的な機能と独自のファイルシステム実装を構築する機能を備えています。 インターフェイスは、標準のosパッケージのファイルシステムインターフェイスとほぼ同じです。


しかし、問題があります。 IPFSオブジェクトの耐性は、ファイルシステムの変更がディレクトリオブジェクトの階層全体の完全な再構築を引き起こすという事実につながります。 ルートとともに。 残念ながら、これには外部(IPFSに関連する)ストレージにルートハッシュを保存する必要があります。 そしてこれまでのところ、これは仮想ファイルシステムの唯一の構成パラメーターです。


WebDAVはファイルのロックもサポートしています。 多くのユーザーのFSへのアクセスを共有するために使用されます。 FSが変更されるたびに変化する、絶えず変化するルートディレクトリへのアクセスに関する未解決の問題。


WebDAVミドルウェアは、go-ipfsデーモンの隣で実行され、パフォーマンス制限を課すhttp-apiを介してIPFSと対話するデーモンとして実装されます。 そのため、将来的には、モジュールを直接go-ipfsデーモンにコンパイルすることにより、ipfsネットワークで作業することが理にかなっています。


また、仮想FSオブジェクトの組み込みIPFS構造には、ファイルとディレクトリのユーザー属性を保存する機能がありません。 あなたはいつでも松葉杖を思いつくことができますが、これはこの研究プロジェクトよりも少しクールになる製品には道ではありません。


結論


開発プロセス中に、オペレーティングシステムなどの一部のオペレーティングシステムでのWebDAVのサポートにいくつかの欠点が確認されました。 また、多数の小さなファイルを操作する場合、WebDAV自体はあまり速く動作しません。 また、IPFSネットワークでは、大きなファイルに問題があり、システムへのアップロードには比較的長い時間がかかります。 WebDAVとともにIPFSを広く使用するには、IPFS内のファイルシステムにアクセスするために他のドライバーが必要です。 さらに、APIの最新バージョンでは、可変ファイルシステムの機能が登場しましたが、これはまだ文書化されていませんが、必要な速度と使いやすさを提供する可能性があります。


参照資料




Source: https://habr.com/ru/post/J310554/


All Articles