ブラウザで実現するピアツーピアファイル転送の新時代
引用元:https://news.ycombinator.com/item?id=43342361
ブラウザベースとCLIのp2pファイル転送ツールのリストを持ってるよ。LimeWireは最近いろんな良いツールを手に入れてて、ShareDropやSnapDropも含まれてる。https://pairdrop.net/ が今のところ最後の生き残り。
https://wormhole.app/ はいいよ!暗号化されてるし、アップロードが終わる前にダウンロードを開始できるし、サイズ制限も悪くない。
Web Wormholeと混同しないでね、これもかなりいいよ!>「P2Pファースト」、つまり送り手と受け手が同時にオンラインじゃないとダメなんだけど、TURNリレーがあるからほぼどんなネットワークでも使える。
5GBを超えるファイルを送る場合はp2pになるよ。https://wormhole.app/faq で確認してね。
そうそう、これ裏でwebtorrentを使ってるんだ。https://webtorrent.io のトレントソフトはマジで最高だよ。
まあまあかな。99%の動画ファイルはVLCで開かなきゃいけないけど、すぐにストリーミングできるのは嬉しい。
https://onionshare.org/ を使ってるよ。たぶんp2pじゃないけど、でも簡単に扱えるんだよね。
Dragitも追加した方がいいかも。ローカルネットワーク用のデスクトップp2pツールで、自動ホスト発見に対応してる。LinuxとWindowsをサポート中。リストの長さを考えると続けるべきか迷ってるけどね。https://github.com/sireliah/dragit で確認して!
sendmeも追加すべきだよ!CLIで試した中で、これが一番良かった。https://www.iroh.computer/sendme で見てみて。
Galeneっていうビデオ会議システムは、peer-to-peerのファイル転送機能もあるんだ。ウェブクライアントが内蔵されてるし、コマンドラインクライアントもあるよ。>”https://galene.org”<とか、>”https://github.com/jech/galene-file-transfer”<もある。
私はよく>”https://justbeamit.com”<を使ってるよ。
前の会社ではWeTransferをよく使ってた。大きなファイルシステムのイメージやAndroidのリリースを中国との間で送る必要があったから、Great FirewallでGoogle Driveみたいなのが使えなくて苦労した。
ShareDropを買収された時はめっちゃイライラした。
>”https://google.com/search?q=inurl:awesome+p2p+site:github.co…”<で、これは面白そうだね。Peer-to-peerについては、>”https://en.wikipedia.org/wiki/Peer-to-peer”<を見てみて。
実はこれが必要なツールを探してたんだけど、最近のことだって知らなかったな。
CLIのセクションにmagic-wormholeが載ってないのはおかしい。代わりにwormhole-williamsがあるけど、あれはGOの古い実装だよ。
これがp2pかは分からないけど、存在するのは面白いね。>”http://xkcd949.com”<っていうのがある。
これはHTTPでやるの?
Operaブラウザには2010年頃にP2Pファイル転送のUniteって機能があったんだよね。あの頃のOpera Prestoはフル機能で、BittorrentクライアントやIRCクライアント、メールクライアントなんかも搭載してたけど、意外と軽かったんだよ。
あの全部入りのOperaに戻ってほしいな。RSSやメール、トレント機能があった頃って最高だったよね。
それは決めたのは僕らじゃないよ。GoogleがOperaのシェアが大きい国で攻撃的なキャンペーンをしてたんだ。 Chromeをランダムなアプリと一緒にバンドルして、静かにインストールしてデフォルトに設定するのも忘れちゃダメだね。子供の頃、いつもイライラしてたから。 彼らはOperaのシェアが大きい国だけじゃなく、ほぼすべての発展した国でそれをやってたよ。 そうだね、もう少し明確に説明すべきだった。 Opera Uniteのことを言ってるの?P2Pファイル共有と壁みたいな機能があったよね。15年前にブログでも書いたな。 VivaldiにはRSSやメール機能があって、オリジナルのOperaの精神的後継者みたいで懐かしい。 Vivaldiはめちゃくちゃ遅いよ。良いパソコンがないと動かないし、Operaの基本機能も欠けてるからオススメできないよ。 それ本当?設定を変えないとタブスイッチングの動作がLRUになってたと思ったけど。 昔は動いてたけど、2年くらい前に壊れたかも。これを見ると、ブラウザを使ってる人がいないし、誰も頑張ってないってことに感じる。Chromiumのアップデートは受けてるし、金儲けのための機能追加もあるけど。 懐かしいね。コメントもポイントもゼロ。Operaはアメリカではあまり人気がなかったね。 久しぶりだな、8〜10年前くらいかな?でも今見たら、まだ一人でやってるみたい。それはすごいけど、残念でもある。当時もっと流行って、活発なユーザーや開発者が集まっていれば良かったのに。 >”Opera Prestoが全盛期に持ってた様々な機能の一つ。”Prestoエンジン、あれがもうOperaじゃないのが残念。今もスマホでは最高のUXだけど、他のブラウザは追いつけてない。 Operaがもっとシェアを持っていたら良かったのに。数年間は1〜4%でまあまあ良かったけど、IE6のような終わったブラウザにも負けてた。ブラウザは当時、Chrome、Firefox、IEだけだったし。すごい機能を詰め込んだせいで、シンプルさが求められるChromeやIE7には対抗できなかった。 このことを懐かしく思い出す。Googleが他を潰さなければ、もっと美しいウェブになってたかも。 それ用のトレントサイトソフトがあって、50以上の良いトレントサイトができたんだ。内蔵のトレントクライアントやIRCクライアントと組み合わせて、すごく良い体験だった。 M2っていうメールクライアントを覚えてる。良い”AI”による自動ラベリングがあった。今の基準ではすごくはないけど、当時はうまく機能してた。Thunderbirdでもそういうのがあればいいのに、今までのプラグインは全然ダメだった。Thunderbirdはタグ付けが必要だよ。 ちなみにOperaには今、オペレーターモードがあるよ。HNのレーダーをすり抜けたみたい。発表から2週間くらい経ったかな?Product Huntのメインページにも載っていた。 どのブラウザでもマウスジェスチャーがほしいんだよな。拡張機能は全然ダメだし。 そうそう、昔のブラウザはもっとユーザーエージェントらしかったよね。 こういうP2P転送サービスって、複雑なURLが多くて電話で伝えるのが大変だよね。file.pizzaは英単語でわかりやすいけど、結局言葉が英語じゃあ問題だし。pairdrop.netは5文字の部屋が作れるから便利だよ。CLIから簡単なURLで接続できるP2Pサービス、待ってるんだけどな。 >“シンプルなURL”は完全なエントロピーの暗号鍵を持つには小さすぎる。 >“シンプルなURL”は完全なエントロピーの暗号鍵を持つには小さすぎる。 複雑さを減らすのが目的なんだから、余計なものは載せたくないよ。PairDropの今の方法が便利で十分だから。 >“シンプルなURL”は完全なエントロピーの暗号鍵を持つには小さすぎる。 簡単に数字を使ってセッションを開始して、電話で一緒にコードをやり取りすればいいんじゃないかな。サーバーを使う必要もなくなるし。 CLI経由でアップロードしてブラウザ経由でダウンロードできるサービスもあるけど、全てアップロードが終わるまで待たないといけないよね。copypartyっていうHTTPサーバーは、まだアップロード中でもダウンロードを始められるから便利だよ。 ブラウザをスロットルする理由は何?もっとデータが届くまでブロックしちゃえばいいじゃん。 データ送信を完全に止めると、ブラウザが何分か待った後に接続を切っちゃうことがあるから、スロットルすることでそれが防げるみたいだね。 >copyparty そうそう、サーバーバンド幅がボトルネックになることがあるから、真のピアツーピアの方がまだ良さそう。多くの人が同じファイルをダウンロードする場合はWebTorrentベースがベストだね! >P2Pサービスの聖杯が欲しいんだ。 結構赤が多いね。このサービスについて知らなかったよ、シェアありがとう。でもPairDropよりは使わないかも、ページが忙しすぎて目が疲れるからもっとシンプルなものが好きなんだ。 >CLIで接続を開始してシンプルなURLを共有できるやつ これ、ほんとにほしかったものに近いね!ありがとう。でも、開発がもう終わってるっぽいのが残念。 最終コミットが2年前ってことは、完成したからなのか、それとも本当に開発が止まったのか気になるところだね。 俺が作者なんだけど、セキュリティに関してはしっかり見てるんだ。新機能は追加してないから、コミットが少ないんだよ。あと、https://webwormhole.io/ のインスタンスも維持してるよ。 コミットが少ないからって放置されてると思ったわけじゃないけど、指示が古いし、未対応の問題やプルリクがいっぱいあって、READMEの大きな警告が気になったんだよね。 確かに、インストール手順を新しくするべきだと思うし、その警告も調整した方がいいんじゃないかな。 維持ありがとう!今のインストールコマンドじゃ動かないから、CLIの手順を’go install’を使うように更新した方がいいよ。 こっちはwebとコマンドライン両方に対応してる唯一のツールだと思ったけど、なんか完全に死んでる感じだね。少なくとも、逆に思われたくないならその指示を更新した方がいいよ。 そう思ってたから、説明ありがとう! もし完成してたなら、作者は問題とかプルリクをすべて閉じたり却下したり、大きな警告も外すべきだよね。「このプロジェクトはまだ開発中で、実験的な暗号ライブラリを使ってるから安全じゃないかも」って警告があるし。インストール手順も古くて、試したら’go’がDeprecatedな方法使ってるって文句言ったから、もう開発が止まってるんじゃないかと思った。 実験的な暗号についての開発ができないって部分はどうでもいいんだ。本当に重要なのは「このプロジェクトはまだ開発中」や「このソフトウェアは壊れてるかもしれない」って部分。これがプロジェクトが終わってないって示唆してる。 プルリク送ってくれれば、俺が直接レビューするよ。 CLIでトレント作成・シーディングして、マグネットリンクのショートリンクを作るのはどう? それだと逆に面倒になるよ。マグネットリンクは長いし、相手にBitTorrentアプリをインストールさせるのも嫌だし。 file.pizzaはP2Pじゃない気がする。ファイルをサーバーにアップロードして、ダウンロードURLをもらう形だから、P2Pには見えない。 それはWebRTCを使ってのP2Pだよ。公式サイトにもホストして接続とFAQに書いてる。 ああ、確かに見逃してたわ。 WebRTCでローカルピア発見できるといいんだけど。今は二つのエンドポイントがインターネット接続と特別なURLが必要なのが面倒なんだよね。オフラインでの共有って無理かな。 できるよ! 一方がネイティブアプリなら他のオプションあるけど、ブラウザ同士の話だよ。ローカルピアを通常通り公開するんじゃなくて、ユーザーの許可を得る形のダイアログがあればいいかも。 片方のブラウザにカメラアクセスがあればQRコードも使えるんじゃないかな? GitHubのSendMeってプロジェクトがあるよ。 irohのはいいけど、ローカルピア発見がブラウザでは無理なんだ。mdnsみたいなプロトコル使ってるからね。 ウェブトレントトラッカーのクライアントを実装して問題を解決したよ。シグナリングサーバーはまだいるけど、ウェブトレントのトラッカーがその役割を果たせる。 シェア用の識別子はQRコードやチュープ音、NFCタップ使えそう。iOSにはピーアコネクティビティがあってP2Pみたいに使えるけど、APIがなくてAndroidでは動かないかも。 誰かが実装したけど、カスタムの低レベル802.11バリアント使ってるから、非ルートのAndroidでは難しいと思う。 音やBluetooth、QRコードなんかをシグナリングに使えない?一回テキストエリアからメッセージを行ったり来たりコピーしてやったことあるよ。 ShareDropやSnapdropがLimeWireに取られたように、このサービスもそんな運命になりそうでちょっと心配。もっとコメントを表示(1)
もっとコメントを表示(2)
暗号化が必要な場合は、セキュリティが大事で、インタラクティブなプロトコルを使わないといけないんだよね。例えば、magic-wormholeみたいな。サーバーはファイルをホストせず、復号化だけ担当する形式ができれば、要件に合うかも。ただ、セキュリティのリスクもあるから注意が必要。
普段はそれが気にならないかな。信頼できないサービスにはそもそも頼まないし。短いリンクを選ぶときに警告を出すオプションがあればいいんじゃないかな。CLIツールが必要ない方が楽だよね。
サーバーを信頼できるなら、URLに暗号鍵は不要。盗まれない程度の長さで、接続後に鍵を生成すれば大丈夫だよ。
いい名前だね!残念ながら、これを自分でホストしなきゃならないならちょっと面倒だな。たまにしか共有しないから、できるだけ楽にやりたいんだよね。
CLIで接続を開始して、誰かとシェアできるURLを簡単に取得したいんだよね。
”git clone https://github.com/jech/galene-file-transfer”で、あとは手順通りにやればOKさ。
https://webwormhole.ioがそうできるよ。下のCLIリンクを参照してね。小さなファイルで試してみたけど、うまくいったよ。もっとコメントを表示(3)
https://github.com/pion/offline-browser-communication
mDNSを使って発見するらしいけど、ブラウザ一つだけだね。