はじめに
ブラウザで完結するP2P型分散ファイル共有プラットフォームを作ってみたので紹介します。
Orcinus Orca
Orcinus Orcaとは
- Orcinus Orcaは分散ファイルシステムです
- Orcinus Orcaはサーバーを必要としません。誰も管理者が居ないシステムであり自立して稼働し続けます。
- Orcinus Orca自体はファイルを保持しません。
- Orcinus OrcaはP2Pで分散されたファイルアップロード機能を提供します。これはブラウザでのみで動作しています。
- Orcinus Orcaはどの国にも属していません。 あなたのブラウザにのみ存在しています。
- Orcinus Orcaはインターネットが死なない限り如何なる権力によっても止めることはできないでしょう。
- ファイルをアップロードすると、Orcinus Orcaはファイル名とファイルパスを分散KVSに記録します。 分散型KVSはすべての人が同一のデータを保持しています。
- ファイルをダウンロードしたい場合、Orcinus Orcaはファイルを探し、それをあなたに送信します。
- Orcinus Orcaはあなたのブラウザでインメモリデータベースを必要とします。 あなたのブラウザはそれをサポートしなければなりません。
- IPFSのネットワーク内で動作しているので、利用者が増えれば増えるほど強固なものになります。
要するに、まったく新しい形のファイルアップローダの実験体です。
使ってみた感想を教えてください。改善できるようにがんばります。
くれぐれも違法なファイルはアップロードしないようにしてください。本当にこればかりはお願いします…。
やるなよ!ぜったいにやるなよ!おねーさんとの約束だからな!
使い道
- 自作のポエムをアップロードする
- 自作の音楽を配信する
- 猫さんの写真をアップロードする
くれぐれも合法な使い方をお願いしますm(_ _)m
技術解説
ストレージ層
- ストレージ層にはIPFSを使っています。javascript版のjs-ipfsを使うことで、webブラウザから直接IPFSに対してファイルのアップロード/ダウンロードができるようになっています。
- アップロードしたファイルはブラウザのストレージに一時保管されます。ダウンロードのリクエストが来ると、ここから配信します。
- IPFSの制約上、ダウンロードリクエストが来た時にファイルを持ってる人がOrcinus Orcaを起動していないと、アップロードしたファイルは配信されません。
- ダウンロードした人も再配信することができるので、torrentと似ている気がしますがtorrentとは全く異なるものです。
- 同じファイルを保持する人が増えれば増えるほど、ダウンロード速度が速くなるのが特徴です。
KVS層
- IPFSのネットワークで動作するorbit-dbを使っています。
- これを使うことで、複数の利用者間で同一のKVSを扱うことができるようになりました。
- サーバーレスのシステムを構築するにあたっては、複数人が同時に読み書きできる仕組みが必要ですが、orbit-dbが解決してくれました。
- KVS自体は利用者全員で持ち合うので、止まることはありません。
#最後に
感想、改善点、バグ報告、マサカリお待ちしてます
説明文に絵が欲しいな...そのうち追加します。