NEW・邪悪なブックマークレット考(考えてるだけ)

やあ (´・ω・`) ようこそ、セルフまとめへ。 このテキーラはサービスだから、まず飲んで落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このまとめタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい そう思って(という建前で)、このセルフまとめをまとめたんだ。 続きを読む
2
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

「新・邪悪なブックマークレット考(考えてるだけ)」をトゥギャりました。 togetter.com/li/1428802

2019-11-11 00:26:40
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

あれや。 やっぱ一回Winnyみたいなのをブラウザベースで作ろうと思うの。 一定の基準を守ったら無限に接続を増やしてデータをレプリケーションして永続化していく感じの奴。 検索どうするんや?的なのは有るけどね。

2019-11-14 01:08:49
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

開始地点のspd交換、シグナリング鯖を複数登録、そこで中継ノードに参加、定期的に接続先を変えながら一定サイズを交換して 永続化していくと spdも保存しておくと。 次回はそのspdの指す先から再開、 つながらない情報は生存期間終了後削除。 持ってるファイルのリストを公開 シグネチャで確認

2019-11-14 12:54:04
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

spdがなーという気はするし、フルオープンなのはいいのか悪いのか。 ブラウザの脆弱性経由で攻撃されるとか目も当てられない。 じゃあ、参加プロトコルどうするのか?と言うのはある。 事件の教訓としてファイルを直接送信は危険。とは言え、ファイルをブラウザは触れないはずなので大丈夫。

2019-11-14 12:58:06
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

仮に出来上がったとしてブラウザ上で動くので次の成約を受ける ・ファイルシステム上のファイルには触れない ・したがってファイルはindexeddb上に置かれる ・通常のファイルとして使いたければダウンロードが必要 ・sturn鯖でいけない場所は繋がらない なのでつこうた案件はxssでも喰らわない限りOK

2019-11-15 09:41:32
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

ただ、sdpが盛大にばれるのはばかられるのでやはり個体識別と認証は必要。

2019-11-15 09:43:21
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

え?エレクトロンでデスクトップアプリ実装しちゃった? 流石にそれはという感じはある。

2019-11-15 09:44:25
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まあパスワードで防衛ですかにゃー。 ペアリングまでしたいけどペアリングを省くと任意のマシンに接続が可能になる。まああれだ、ネットワーク名を決めて複数のネットワークに接続できない呪いをかけておけば大丈夫な気はする。 問題はどちらかというと画面をオフったスマホを動員できるのかという点。

2019-11-15 12:43:35
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

webrtcで別にP2Pコネクションが成立した後に別のノードをシグナリングして紹介してもいいわけだし、シグナリングサーバー低機能でもやっていけると思われる。webrtcの二個目以降はつないだ先のピアを仲介してもらうとふむふむ。 最初につながった二人は定期的にシグナリング鯖を覗きに行くと。

2019-11-15 12:57:02
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

なんとか接続一歩手前まで来たが、アレだ。 peerオブジェクトを持つOffer降り出したやつが、Answerを受けようとして、もうpeer有るんだけど・・・ とかエラーになるのがあかん。 お前のコネクションはこれ、あんたとのコネクションはこれと、1コネクションを一個一個かんりしないといけない。

2019-12-03 23:13:23
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

相互に通信を開始した場合に 双方のコネクタがOfferを出してしまう。 このとき、受信専用のコネクターを出すと、双方コネクションが成立してコネクションが2本出来てしまう。 正直、無駄以外の何物でもないので、どちらを使うか決めなければいけない あーどうしようか ハッシュのアルファベット昇順?

2019-12-03 23:37:07
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まあ双方で確実に同じ方を活かすとするとそうなるね。仕方ないね。 さてコネクションは何処で管理したものか? やはり、一旦コネクションプールを作ってそこから払い出しかね。 無ければつなぎ直すとか。 あーこれは設計しないと行けない予感。

2019-12-04 01:38:11
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

理想は仮想的なネットワークが存在し、 任意のタイミングで通信が成立するhttpな世界。 実際まあレイテンシーとか考えると同じもんじゃろう。内部でhttpを3往復するからもっと遅い気はするが。 なので、コネクションプールもといコネクションキャッシュが存在して、そこになければつなぎ直すと。

2019-12-04 01:40:50
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

問題はコネクション成就した後に どうやってデータを送るのか? ファイルを送りたいので、まあ10kbとかにバイナリ分割して送りつけて、向こう側で組み立てて、ハッシュチェックしてOKなんですかね。 うーん。 ファイルは全部indexeddbの中に暗号化しておあずけと。 暗号化が面倒くさいのがアレ。

2019-12-04 01:52:46
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まずは、そこまで行くか。 処理を送りたい場合はどうすれば良いんだろうか。まあWebのセキュリティ境界的に一括WSAMバイナリをgithub pagesにあげて云々じゃないと始まらないか。 任意の処理をやり取りはXSSそのものだし・・・

2019-12-04 01:55:20
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

バイナリを送るのは js処理上でTCPをそのまま再実装的に送るので、TCPヘッダーを参考に組めば良いのかな? パスフレーズはそのままハッシュにして使いまわそう。 まあ、Torみたいな事をしたいわけではないのですが、メッシュ構成は夢が有るよね。

2019-12-04 02:04:42
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

こうrdbmsのデータベースを各ノードとして、裏で三重バックアップとジャーナリングをすると。 クライアントはこのrdbmsにアクセスをすると。ファイル単位でのkvsにはなるけれど。 そこからか。

2019-12-04 09:56:51
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

先達を確認したところ、 ・ドメインがある ・一時限りなファイルを受け渡す ・特定のurlを払い出して共有する まあwinnyは2003年なのよね。 とても古い。もっと良いアルゴリズムが出てる気配がする skywayはsdkが全部抱え込んでるのね。 apiキーと設定を入れるだけ。 まあそんなところやね

2019-12-04 12:40:17
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

sdkはskywayのIFを参考にするか互換にしておけばいいか。 ただ、レイヤーが低いので高レイヤーまでやるべきか。 でsdkとして出します。 使い方は、google app scriptでホスティングします。 このsdkで繋ぎます。 後はファイル共有を開始します。的な。 画面は開きっぱなしになるのがねー

2019-12-04 12:45:30
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

nhiroki.jp/2019/12/05/es-… めんどくせーからWebPackでパッキングしてるんじゃ。 並列化の恩恵と1ファイルで一括読み込みどっちが速いかだよなあ・・・ WebPackが1秒以上ビルドにかかると萎えるが、どう考えてもnode_modulesの連中を五月雨式に取得するより速いと思うのだが。

2019-12-05 23:50:03
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まあ普通にフルメッシュネットワークでLAN内で好き勝手ファイル交換をできるようにしようぜ。 と言うわけでまずはシグナリング鯖とコネクションピアか。 githubで公開しよう。 ブラウザで、 シグナリング鯖のURL、パスフレーズ、デバイス名、グループ名を指定して、つなぎたいデバイス名を指定と。

2019-12-06 00:24:40
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まず調査中だがwebrtcのコネクションを自分自身に貼るループは出来ないっぽい。 この時別タブからテストすればいいんだろうがめんどくさい。 相手のデバイス名をどうやって知ることが出来るのかと。 データをストレージに入れないといけないのでその手当も必要。

2019-12-06 09:34:41
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

あるhtmlをと言うかjsをダウンロードして同一のドメインであれば良いと。 マルチプロセスモデルの排他処理が必要と。 クロスドメインしたかったら外部鯖が仲介しないと駄目であると。 うーん。よいよGASにスクリプト置いてやらざる得ないか。 indexeddb経由でデータ通信は即時性がないから…

2019-12-06 09:44:52
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

一応ブラウザ上で完結をするなら親子関係でwindowを開いていけばメッセージでアクセスは不可能ではないけれど。 こうブックマークレットがある空ページで同じドメインをiframeで開く、そこでindexeddbでシグナリングしてwebrtcチャンネルを同一のブラウザ上でクロスドメインで開けると。 なるなる。

2019-12-06 09:51:20
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

こうしたライブラリがないのよね。お前の検索の仕方が悪いんだろ?と言われたらそれまでだが、だいぶニッチ臭い。 となると、メインのタブを開けて、そこがデータ管理をして、外部へのwebrtcを繋ぐと。 直接つないでもいいけど、リレーの研究もしたいしねー。 あるサイトのデータがドメイン消滅してもOK

2019-12-06 12:21:32