カラクリスタ

「輝かしい青春」なんて失かった人のブログ

datproject について少し調べた

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

ipfs

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

datproject

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

[datproject (dat protocol) とは何か?]

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

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

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

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

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

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

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

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

dat と ipfs は競合するか?

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

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

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

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

dat と ipfs の使い分けは?

基本、 IPFSObject Storage みたく、例えば、

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

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

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

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

以上

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

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

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

解説 - #P2P #IPFS #datproject - #2017-12 #2017-12-11