カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

datproject について少し調べた

僕は以前、 P2P で Web を実現する為のソフトウェアとして、

に、ついて調べた事をブログに書いた様な記憶があるのですが、 今日は、それとは別のプロジェクトで、

と言う、似たようなプロジェクトについて調べたので、その辺りを書きます。

datproject (dat protocol) とは何か?

そもそも、前述した IPFS が何者か、と言うと、これは、

P2P ベースのネットワークで Web っぽい事をする

ための実装群であるのですが、実装の起点としては golang ベースで、 それに追従する形で、node.js 等の実装が存在する、という感じになっています。

それに対して、 datproject の方が開発している dat protocol とは何か、というと、これは、

既存の Web も活用しつつ、大規模なデータを P2P も使って共有しやすくする

という感じのプロジェクトで、主に JavaScript の実装が起点となっており、 Node.js でも Browsers でも動く、という感じになっています。

また、大雑把なイメージとして、IPFS が P2P ベースで 馬鹿みたいにデカい Object Storage を作っている 、 と言うイメージ なら、dat の方は P2P も使う大規模データ用の git っぽいのを作っている 、と言う感じのイメージになるかと思います。

ただ、とは言いつつも、どちらも実際には P2P ベースの 分散 Web が実装できない事もないので、 P2P ベースの分散 Web と言う文脈から見た限りでは、重複する部分も有るかなぁ、という印象です。

datipfs は競合するか?

ぶっちゃけ、用途によります。

と言うか、先にも述べた様に、IPFS は Object Storage っぽさが有るのに対し、 dat は git っぽさが有るので、この辺りは使い分けなんじゃないかなー、と僕は思ってます。

あと、dat は基本的には分散データベースとして使われるのを最初から想定していて、 割と分散データベースとして使うには十分そうなライブラリが揃っているのに対し、 IPFS の方はちょっとその辺りが弱そうな感じなので、その辺りも含め、要は使い分けなんじゃないかと。

また、dat は基本 JavaScript ベースで、Node.js とかブラウザを念頭に作られているのに対し、 IPFS は起点の実装が golang である様に、どちらかというと、それ単体で使うのを想定している感じなので、 その辺りも、dat とIPFS の違いなんじゃないかなーと思います。

datipfs の使い分けは?

基本、 IPFS は Object Storage みたく、例えば、

(Bitcoin 等で) 同期の時間を短くするために、既存の Blockchain を配布する

という用途に向いているのに対し、 dat は、

構造的なデータを共有できる様にして、アプリケーションからデータベース的に使う

という感じの用途が向いているのではないか、と僕は思っていて、 そのため、なんと言うか、静的な ファイル配信に IPFS は向いている感じで、 dat は 動的なデータを操作するのに向いている、と言う感じではないかな、と僕は考えています。

以上

まー、P2P ベースの 分散 Web という文脈から言うんであれば、

データベースとして使うなら dat を使い 、 static なファイル配信には ipfs を使う、

と言うのが、それぞれの特徴を生かせる使い方なんではないかな、と僕は思います。はい。