【新月実装】需【Clojure・ClojureScript】

d230ead2 anonymous 2016-02-03 13:11
>>7ffadbd1のログイン機能って、2ちゃんねるでいうBE機能みたいなのかなぁ。
M2Bだとか、専ブラでSPAMフィルターのデータベースが需と共有できると面白いと思うけど。
a0c34f19 anonymous 2016-02-03 16:07
>>d230ead2
とりあえずお気に入りと既読スレッドの管理に使う予定です。
SPAMフィルターの共有はおもしろそうですね。
452c38a3 anonymous 2016-02-04 16:55
効率よくデータベースから重複レコードを削除する方法を模索中。
クローラーはマルチスレッドだし、/update命令も複数のスレッドで同時に処理しているんですが、マスターマスターレプリケーションだと2つのデータベースを同時にロックするわけにも行かないのでなかなか面倒くさいです。
a9fb1023 anonymous 2016-02-05 05:48
もうちょっとクロールの方法も工夫しないとなあ。「ゆぐちゃんねる」の新しいサーバーをスーパーノードとして扱ってもいいんだけど、どうしようかな…
1a823f73 anonymous 2016-02-05 10:26
>>a9fb1023
リアルタイムに動いているスレはしょうが無いと置いて置くとして、

・x日以上新規書き込みの無いスレをあとでインポートしやすい形で1つか一定の大きさごとの
ファイルにしておいて、需や朔や合とは関係のないサーバにアップして置いたら、他のノード
への初期の大量アクセスは少しは減るのではないかなぁと。
(APIを経由しちゃうと、実装の仕方次第ではクローラに対する返事にCPUの処理能力食わ
れるケースがあるのでは?と安易に妄想してみた。)
・そもそも、「ゆぐちゃんねる」は運営方針として全取得が必要だというのは判るけど、これか
ら需を使うだろう全員が全員「それ」が必要かなと。
(とりあえず、x日間で動いているスレだけ取り込んで、リクエストがあった時点で取りに行く
とか。時間がかかるようであれば一旦、指定した別の公開ゲートウエイに転送)

とは思ったりするんですけど、その辺は既に検討してそうと思ったり。
ec9b760e anonymous 2016-02-05 14:32
>>1a823f73
需の設計方針で、全てのスレを同じように扱うようにしているのでちょっと難しいですね。
需はゆぐちゃんねると同じで基本的に全取得です。
これにはログを分散させて保存するという目的もあります。
もちろん欲しくないスレはブロックできるようにはなってますけど。
今考えているのはログ付きの配布パッケージを用意することです。
5GBぐらいになっちゃいますけど…
0e992e18 anonymous 2016-02-05 14:47
とりあえず需は私のノードから優先的にダウンロードするようにしました。
これで他のノードに迷惑がかかることはなくなるはずです。
f1dbc2e7 anonymous 2016-02-05 19:30
>>0e992e18
各ノードが許容頻度を設定できるってのが理想なんだけどね…。
だって、ゆぐちゃんねるまでの通信経路の障害で優先ノードから取れなかったら
なんて事も無いともいえない訳ですし。

なんとなくですが、その要件を満たすのってなんだろうって考えてたら、ブロック
チェーンかなぁだとか。
ab55c1bc anonymous 2016-02-05 23:23
そこにブロックチェーンが使えるの?
ブロックチェーン上でインデックスして、データのやり取りにBitTorrentを使うというシステムはいくつかあるがなぁ
ca1ba0c9 anonymous 2016-02-05 23:54
>>ab55c1bc
ビットコインにも未使用領域ってあって、そこにメッセージを入れて遊んだりする人もいるので、
「ずっと消せなくていいのなら」「データサイズ的に収まれば」って条件の上であれば、可能性は
あるんじゃないかとは思う。

もっとも、クリプトコインにチャットを実装したものまでしか見た事ないし、私自身は組み上げるよ
うな知識がある訳でもないので、戯言レベルのお話ですけども。
58e73766 anonymous 2016-02-06 07:40
ビットコインはユーザ(マイナー)が多いという意味で、障害に強い(より多くのノードからデータを取れる)とはおもうが、
ブロックチェーンが原理的に通信障害に強いプロトコル、というわけではないと思う。
7323d2ef anonymous 2016-02-06 10:04

>>58e73766
それはそのとおりだと思うよ?
ただ、暗号通過の基本としては、すべての参加者が、取引
内容を共有し承認するって点で、需同士がしようとしてる
事に似てるように
思えたので。

深くは考えてなくて、割とそれだけ。
bae3c17d anonymous 2016-02-06 10:33
ただ、(実況とかが複数乱立しなければ、)大量取得するのは
導入時と再構築時だから、
・自身のデータベースのコピーを作ってダウンロード可能な状態にするapi
・データベースが存在しない場合は自前で作らず、そこからまるごと
ダウンロードする。
・ダウンロード可能な状態か、余力はあるか、ダウンロード先urlを
取得するapi
で、新規導入者の体感としては早くなるんじゃないかと。

現実的かどうかは別にして。

配布パッケージに入れるというのもありはありだけど、あまり古く
なりすぎると、追加取得で似たような状態になりかねないですし。
72ef48d9 anonymous 2016-02-06 11:35
ネットワーク全体でどうやって情報共有してるかはブロックチェーンの本質ではない
Bitcoinがどうやってるかは知らないが、単に最新のブロックがネットワーク全体にフラッディングされてるんだろう
新月でいうと/updateが来ると全て取得する感じ、つまり現状の需と同じじゃね

勿論、取りこぼしとか捏造にはブロックチェーンの仕組み上起こらないという違いはあるが
捏造も何も掲示板の書き込みに制約はないし、全ノードが需みたいな動作だったらそれだけで取りこぼしも起きないだろう
09307aa0 anonymous 2016-02-06 11:51
フラッディングというかブロードキャスト?
1637cfb8 anonymous 2016-02-06 11:52
ブロックチェーンでも取りこぼしはありうる。単に一番長いチェーンを優先してるだけ。
スレちなので、これ以上やめとく
94792a55 anonymous 2016-02-06 12:33
>>72ef48d9
126は、そういう意味合いを私は書いたつもりだったんですが……

なんかすいません。
ce3ee5ac anonymous 2016-02-06 12:40
>>94792a55
横レスだけど新月はレス番で管理していないので126と書かれても分からない。
多分2chインターフェースで擬似的な番号だとは思うのだけど。
42241df6 anonymous 2016-02-06 12:51
>>ce3ee5ac
あ、すいません。
>>7323d2ef
とアンカー扱いにしないと、自動変換されませんでしたね。
ご指摘ありがとうございます。

>>94792a55
の126は、
>>7323d2ef
です。
588706b3 anonymous 2016-02-06 15:00
>>94792a55
その書き込みへのレスじゃないです
アンカー付けるの忘れてました、すいません

>>f1dbc2e7はブロックチェーンじゃなくね?という意味で書きました
6e4b4403 anonymous MGlbrmj//PR 2016-02-06 21:45
暗号通貨のブロックチェーンを利用して、PoWでレスの妥当性を保証するのは前から考えていました。需の機能がひと通り揃ったらぜひやりたいですね。新月プロトコルのいいところと問題点がだいたいわかってきたので、需のネットワークでいろいろ実験して見る予定です。
616fef71 anonymous MGlbrmj//PR 2016-02-06 22:10
しかし本業が忙しくなるたびに全く関係のないプログラミングのアイディアが次々と浮かんでくるのにも困ったもんです。論文が予定通りに進んだら今日はタグの実装に取り掛かろうっと。
ba85351e anonymous MGlbrmj//PR 2016-02-06 22:25
需にBitcoinのウォレットを実装して、書き込みのたびにハッシュ値と一緒に1 Satoshiだけ特定のアドレスに送金するというのが、楽そうでなかなかいいですね。確かBitcoinプロトコルのJavaでの実装はライブラリも含めていろいろ揃っているはずなので、問題はないはずです。
1bc262c6 anonymous 2016-02-06 22:49
>>ba85351e
1txあたりfee=200satoshi(約10円)をお忘れなく
9b28bc60 anonymous 2016-02-06 22:53
本当にハッシュをビットコインに載せたいなら、いくつかのハッシュからmerkle treeを作ってそのroot hashを
送るようにしないと、コストが合わないと思う。だれも10円/1投稿 なんて払いたくない。
そのコストを分担するようにする仕組みも一苦労なきがする。
be29a15c anonymous MGlbrmj//PR 2016-02-06 23:01
>>1bc262c6
そうだったorz じゃあ一日の終りにその日の書き込みの一覧を作成して、そのハッシュ値を送金に組み込めばいいのかな。1日10円ならいいけど、将来どうなるかわからないのはちょっと問題ですね…
b0c43a34 anonymous 2016-02-06 23:06
NEMとかカウンターパーティーってどうなんだろう。
07d9e498 anonymous 2016-02-06 23:14
それなら行けると思う。自分に送金すれば節約はできる。
技術的にはbitcoin OP_RETURNとかでググればわかるかもしれない。
74de2c0f anonymous 2016-02-06 23:17
カウンターパーティーは結局ビットコイン使ってるから、feeは変わらない。
NEMはしらないなぁ、、、。
a7efdd0e anonymous 2016-02-06 23:36
スレ違いな気もするけど、一応NEMの公式ホームページ貼っとこう。
http://nem.io/

開発者がダブってるせいか、テックビューロ株式会社のmijinと特徴がダブるところが……。
96477d8f anonymous MGlbrmj//PR 2016-02-07 00:04
>>07d9e498
40バイトあればハッシュ値を保存するのには十分ですね。
ブロックチェインをどうやって新月プロトコルに組み込むか悩んでたんですけど、Bitcoinの馬尻に乗るなら行けそうな気がしてきました。

Explanation of what an OP_RETURN transaction looks like
http://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like

To reach a middle ground in these opposing views, the core-developers made the opcode OP_RETURN a valid opcode to be used in a bitcoin transaction, which allows 80 arbitrary bytes to be used in an unspendable transaction. A good explanation of this can be found here:

https://bitcoinfoundation.org/bitcoin/core-development-update-5/

Later in February 2014, the bytes count was reduced from 80 to 40 bytes. This change is documented in the link below. Note that in this pull discussion we learn that no more than one output with OP_RETURN can be included in a single transaction:

https://github.com/bitcoin/bitcoin/pull/3737
8421b514 anonymous 2016-02-07 00:26
Bitcoinのライブラリはこれで良し、と。

https://bitcoinj.github.io/
6ef4913d anonymous 2016-02-07 10:31
monacoinは単価がやすいので節約できるかも。
bitcoinとの互換性とか、OP_RETURNとかあるかどうか、わからないが。
何かのパラメタを変更すればbitcoinのライブラリがそのまま使えたような気もする(かなり曖昧)。
3d3ff448 anonymous MGlbrmj//PR 2016-02-07 11:59
>>6ef4913d
monacoinはハッシュアルゴリズムが違うのである程度書き換えが必要なんじゃないでしょうか。
とりあえずBitcoinで実験してみてからですね。
2ff4a856 anonymous 2016-02-07 12:07 1454814435.png (12KB)
とりあえず重い腰を上げてタグ機能を実装中。
問題は「タグ編集」のUIの設計なんだけど、どうしようかな…
88223a52 anonymous 2016-02-07 12:24
>>3d3ff448
確かにそういう気がしてきた。失礼した。
865bf220 anonymous 2016-02-07 12:47
MonacoinはLitecoinベースなのでbitcoinjは使えないかもしれない
こんなの見つけたけど、 https://github.com/hank/litecoinj
Litecoinからさらに仕様を変えるみたいな話も聞いたし既存のライブラリだと難しい?

暗号通貨実装を組み込むんじゃなくて、bitcoindやmonacoindのRPCを使うのが楽かも
4b3e6c6a anonymous 2016-02-07 13:06
書き換えるのもありなら、フォークして「ゆぐコイン」とか。
でも、それならもう少しマイニングの負担が少ないやつが
ベースの方がいいのかも。
f01d1edb anonymous 2016-02-08 05:51
需のタグ機能の実装が大分進みました。ここで試すことが出来ます。

https://ygg.io/

あとは編集機能をもうちょっと強化するだけです。
思ってたよりすんなりと行きそうです。
efc224fb anonymous MGlbrmj//PR 2016-02-08 05:55
>>4b3e6c6a
SHA-1でトリップ検索と兼用のマイナーを作りたいんですけど、これは時間が出来たときの楽しみにとっておくことにします。
4bd7db5b anonymous MGlbrmj//PR 2016-02-09 08:33
週末はタグ機能の強化とスレッド一覧の表示の最適化を行いました。他のノードのタグを/recentで拾ってインポートする機能をつけたんですが、やっぱり便利ですね。表示はHTTPのレスポンスをメモリにキャッシュすればまだかなり高速化できることがわかりました。なかなか工夫のしがいがあります。
bbacdef5 anonymous 2016-02-09 09:49
朔カスタムの方のもそうだけど、2chインターフェースの
記述がないんですよね。

原則は、便利なんでwebインターフェースで使って下さい
だけども、どっかに書いた方がいいかも。

あと、タグで絞りこんで出力する機能も、予定してるなら、
2chインターフェース用の、2chでいうボードリストが欲しい
かも……
2a7af6e6 anonymous 2016-02-09 10:07
>>bbacdef5
簡単な記述はygg.ioのトップページにあります。ブラウザのキャッシュを削除してみてください。ボードリストは別に用意することにします。
5b231e9d anonymous 2016-02-09 11:08
>>bbacdef5
こんなのを用意すればいいわけですね。
これは確かにいいアイディアですね…

http://menu.2ch.net/bbsmenu.html
ad4ce7c9 anonymous 2016-02-09 13:26
>>5b231e9d
2ちゃんねる(net)専用の仕様のブラウザでも、ボードリストを差し替えると外部板が
使えるケースがあるようなので、あればあるで助かる人はいるんじゃないかな…と。
a0168146 anonymous [sage] 2016-02-09 14:22
>>ad4ce7c9
一応出来ました。
387ca0fe anonymous [sage] 2016-02-09 14:26
うまく動いてるみたいですね。よしよし。
382f58bf anonymous 2016-02-09 14:39
2ちゃんねる専用ブラウザ用のメニューです。意外にすんなりいきましたね。

http://ygg.io/bbsmenu.html
cf063a11 anonymous 2016-02-09 18:46
>>382f58bf
ありがとうございます。これで2chインターフェイス側からもスレを探し
やすくなりました。

気になるのはタグのついてないスレですけど、正直支障はないような気がします。
0de8c184 anonymous [sage] 2016-02-11 12:15
支障はないんだけど、
朔の方のゆぐちゃんが需の方に転送になってfeedを
rssリーダーに登録してた事思い出しました。
(そのくらい見てなかった)

Top of this page. | <<last 0 1 2 3 4 old>>

limit: 1536KB

(【新月実装】需【Clojure・ClojureScript】/214/0.5MB)

Powered by shinGETsu.