2ちゃんねる互換P2P匿名掲示板の実装を考える 1

■ このスレッドは過去ログ倉庫に格納されています
2014/04/23(水) 23:29:44.09ID:k48oXhUz
このスレは「P2P型の完全匿名掲示板はまだ出来ないの?」スレからforkして生まれました
2ちゃんの代替となる2ちゃん型掲示板をP2Pで実装してみようぜ、なスレです
名前が長いので若干スレタイは変えましたファイル共有ソフト等の話題はスレ違いなのです

origin:P2P型の完全匿名掲示板はまだ出来ないの?その4
http://toro.2ch.net/test/read.cgi/tech/1390486453/

wiki
http://www34.atwiki.jp/p2p-anon/

[参考]

Tor(The Onion Router)のHidden Service(onionドメイン)Onionちゃんねる
http://xiwayy2kn32bo3ko.onion/ (Tor経由でのみアクセス可能)
Syndie - distributed forums
http://syndie.i2p2.de/
Freenet - P2Pコミュニケーションフレームワーク
https://freenetproject.org/

[関連するP2P掲示板ソフトウェア等]

新月 - P2P匿名掲示板
http://shingetsu.info/index.ja
P2P2ch
http://p2p2ch.web.fc2.com/
ちらしの裏
http://chiraura0.web.fc2.com/
alias
https://code.google.com/p/alias/
o2on
https://github.com/o2on/o2on
2014/05/01(木) 21:24:00.67ID:276dm0Cu
純粋なP2Pとは権威から自由であるということだ。
2014/05/01(木) 21:28:57.05ID:txn6O3jo
でもIDはほしい
2014/05/01(木) 21:34:14.42ID:276dm0Cu
例えば、誰もが(作者も含めて)同じ方法で平等に利用可能なソフトウェアがインストールされたサーバがあり、インターネット経由でしかアクセスできず、誰も近づけない場所に設置されている場合、その形態はp2pと言える。
2014/05/01(木) 21:35:54.01ID:7EhQIRwr
>>21
それはクライアントに依存すること。作者の意向に依存するのはどんなp2pソフトでも同じ。
新月プロトコルのようなものを作れば個人に依存することはなくなる。
2014/05/01(木) 21:45:18.90ID:s0t/V4/m
新月の作者は簡単に利用出来るように公開ゲートウェイまで設置してるし
閉鎖的な運用してるようには見えない
ただP2P掲示板の需要がないだけだろ
2014/05/01(木) 22:05:19.99ID:B1bUdh8+
需要はあるよ現に自分も使ってたしかしいかんせん使いづらい
ログの即時取得、2ch専ブラ対応、荒らし対策、携帯対応ぐらいやらないと
2014/05/01(木) 22:05:31.36ID:7EhQIRwr
>>27
以前は誰でもクライアントなしで閲覧できたが、最近はクライアントをインストールしないと閲覧できなくなっている。
理由は、P2P掲示板は2ちゃん型と比べて非常に重いということ。大勢からクライアント無しでアクセスを受けると簡単に落ちる。

確かにP2P掲示板は需要がない。
クライアントをインストールしないといけないし、常時接続での運用が基本でハードルが高い。
2014/05/01(木) 22:14:44.90ID:r0ZRtrW8
新月自体には需要はないだろう
ただp2pってだけで2ch以上なところが何もないからな
p2p掲示版への期待だけで持ってる感じ
2014/05/02(金) 05:50:38.49ID:CF7dLv5d
DNS分散の実装が必要だってことなんじゃないか?

新月の中の人は実況を知らなかったんだろうな。
皆の表現が一致したりしなかったりするダンスのような所が実況の味なのに、
それが十把一絡のスパム扱いではどうしようもない。
32461 ◆Of8OpFdQADOA
垢版 |
2014/05/02(金) 07:04:44.76ID:meKs6CjB
みなさんP2Pに求めているものがたくさんありますね。(悪いことだ言うつもりは毛頭ありませんよ)
自由であることは大事なことですが、それは哲学領域に取り敢えず留めておいて、実装では負荷分散と即時性の両立を狙うのが賢い落とし所ではないでしょうか。
考え方によっては、サーバクライアントモデルの拡張としてサーバ側を我々がP2Pで実現し、ふつうに何かのドメインに紐をつけて使っても立派なP2P掲示板ということになります。匿名性はやや犠牲になるでしょうが。
でも当分の間はクライアントをローカルで走らせるモデルが続くと思います。
自宅サーバをやってる人たちが使ってくれたら安定性に一役買ってくれそうなものですが、そのためにはこちら側からの良質なドキュメントなどの提供が必要だと思います。
そこも含めて開発できたらいいなと思っています。
2014/05/02(金) 08:16:20.41ID:CF7dLv5d
そういう事実上の切り捨てこそが一番の哲学なんだよ。
意見が一致したものから実装すればいいだけなのに、
最初に切り捨てから入るとゴリ押しに見えるのさ。
2014/05/02(金) 09:19:48.83ID:uOzfD9BM
P2Pはシステムの構造でなく、人の利用形態なのだよ。
2014/05/02(金) 09:29:05.39ID:uOzfD9BM
開発方針

フェーズ1.匿名性が高く汎用的なP2Pデータベース開発(分散ハッシュテーブルみたいな物?)
フェーズ2.掲示板の仕様とデータベースにぶち込むデータモデルを設計
フェーズ3.普及を想定した使いやすい閲覧ブラウザの開発
2014/05/02(金) 12:59:07.20ID:CF7dLv5d
>>35
それって段階の意味が全然ないよ。
確認しないまま実装すると確実に作り直しになって
折角作った意味がない場合にそれは必要なんじゃないか?
最初から2ch互換で匿名なのはわかっている以上、
その部分の完成を待ったり段階化する必要なんてサボる口実でしかない。
いいのがでてきたらいつでも差し替えられるようにすれば済む話だし、
むしろ好みで選択できたほうがいいでしょう。

必要なフェーズと言えば、こんなこともあろうかと的な応用にも対応できる
汎用仕様を作ることだけど、これも別になきゃ作れないものではないし、
適当に作ったものがデフォルト化する方が多いよね。
2014/05/02(金) 13:43:45.00ID:meKs6CjB
>>36
>それって段階の意味が全然ないよ。
>確認しないまま実装すると確実に作り直しになって
>折角作った意味がない場合にそれは必要なんじゃないか?
>最初から2ch互換で匿名なのはわかっている以上、
>その部分の完成を待ったり段階化する必要なんてサボる口実でしかない。

ウォーターフォールモデルとアジャイル開発の対立みたいだw
あまり厳密に設計すると融通が利かなくなりそう。割りにゆるく、それでいて引き締まった設計にしたい。
ただ、2ちゃん互換ってのは大前提になると思う。

>必要なフェーズと言えば、こんなこともあろうかと的な応用にも対応できる
>汎用仕様を作ることだけど、これも別になきゃ作れないものではないし、

YAGNIって云うよね。今必要でない機能は今は実装しなくていい。必要になった時に実装する。

ゆっくり改良していけばいい。
ただ開発者が足りないような感じもするなあ。個人的には一人じゃ寂しいなあと思うw
2014/05/02(金) 15:28:44.56ID:KxhRqmmx
モジュラーを意識しよう
Golangでやろうぜ
2014/05/02(金) 15:32:36.76ID:uOzfD9BM
go言語?一人でやってろ。
みんなで作ろう系はC++かJavaだろJK
2014/05/02(金) 15:52:55.90ID:KxhRqmmx
>>39
お前が勝手にやってろよ化石
2014/05/02(金) 15:53:48.23ID:CI+++snQ
P2Pって言葉がもう時代遅れで実体に合わない感じだな
有志による鯖のクラウド化をしたいと言う方が正しい感じがする
2014/05/02(金) 16:05:02.24ID:uOzfD9BM
>>40
go言語とC++のユーザー数の違いは分かりますか?オタク君
2014/05/02(金) 16:09:08.60ID:KxhRqmmx
>>41
その方向性でいいと思うよ
2014/05/02(金) 16:12:55.30ID:uOzfD9BM
>>41
AmazonEC2借りて従前の2ch鯖立てるだけでもクラウド化なわけだがw
2014/05/02(金) 16:15:12.74ID:uOzfD9BM
もちろん、そんな物作ったって、既にopen2chやひろゆきの新2chなどがあるわけで
何の新規性もない。
2014/05/02(金) 17:04:29.08ID:sbuiiAlk
個人的な想いですが、大きな震災が発生してもアクセスに耐え、ノードの急減に耐えられるようなシステムにしたいです。
TCP/IP自体がある程度の耐障害性をもって設計されていますし、アプリケーションがこれに応えることも悪くないと思うのですがどうでしょう?
2014/05/02(金) 17:18:09.67ID:CI+++snQ
>>44
おーぷんやscはAmazonEC2じゃないだろw

だがある意味それで十分な利用者もいるんだよね。特に2ch.netの方は非常に鯖が脆弱だから。

1. 鯖の堅牢性
2. 匿名性
3. 荒らし対策

2.と3.を両立させるのが難しい。P2Pにしたところで、第三者による追跡が可能になる訳で2.が保証される訳ではない。
ぶっちゃけtor板が大規模クラウドのvpsで提供されていたら匿名性と堅牢性の両方で申し分無いんだよね。
おもしろくないけどw
2014/05/02(金) 17:24:06.72ID:uOzfD9BM
>>47
仮にvpsにしてもtorにしても匿名性に関する危険性は現2chと同じ。
torに関しては鯖の所在を秘匿する手段としては使えるが、
情報漏洩の危険性は依然として残っているから、
現状より匿名性が高いとは言えない。
2014/05/02(金) 17:26:00.51ID:uOzfD9BM
さらに、管理者の裁量が大きすぎることも問題。
管理者が閉鎖したいと思えばいつでもできるし、
気に入らないレスを管理者が如何様にも操作できるという点も問題だ。
特別に大きな裁量を持った人間を置くべきではない。
2014/05/02(金) 18:05:35.80ID:CI+++snQ
結局、有志によるクラウド化に意味が出てくるわけだな。
torの匿名性が2chと同じってのは意味がわからんがw
2014/05/02(金) 19:25:07.26ID:uljkUnkD
>>41
申し訳ないけれども,「クラウド」はサーバーの存在を前提にしている時点で(現時点で最先端だとは思いますが)未来的ではないと考えています.
2014/05/02(金) 20:44:53.00ID:CI+++snQ
p2pと言ってもデータを持っているノードは常時接続でないとそのデータが利用できないので、実質的に鯖が存在するのと同じことだと思うが
鯖の存在を意識せずに利用するためには大規模なノードの参加によるデータの冗長化が前提になる
2014/05/02(金) 20:47:40.12ID:CF7dLv5d
>>41
まだ存在しない実体を適当に語られても困るんだな。
そういうクラウド実装を出してくるなら話は別だけど、
ただ、スレタイと実装が合わないなら結局2ch的には
スレ違いか乗っ取り扱いだろうなあ。
2014/05/02(金) 21:59:48.33ID:lkuUn+Js
>>52
DHTを実装するならノードの起動や終了に伴ってデータは自動的に移管されます。
少なくとも今書いている実装ではそうなっています。異常終了でない限りは。
完全にノードが0になればデータ消失のおそれがありますが、それは他のいかなるP2P掲示板でも生じうる事態ですし、誰かが予備を立てることで対処するとしましょう。
あと、素敵なIDですね。
2014/05/02(金) 22:03:53.47ID:uOzfD9BM
匿名で利用できるDHTができればファイル共有にも使える。
ファイル共有なら常時稼働するインセンティブになるからね。
そのネットワークに掲示板を間借りすれば良いというわけ。
2014/05/02(金) 22:09:25.70ID:KxhRqmmx
https://github.com/nictuku/dht
Go使おうぜ
https://github.com/laher/goxc
Write once, runs everywhere in native executableだぜ
2014/05/02(金) 22:24:05.47ID:uljkUnkD
今の乏しい理解の時点では DHT には否定的だな‥
参加ノードが時々刻々と変化するなかで、ハッシュ値に対してどのノードにキャッシュを置くのか?どのノードからキャッシュを取るのか、疑問は尽きない‥
第一、単純な DHT だったら、ある投稿単位を得るために、その投稿単位を所持しているノードに集中的にアクセスが集中するのでは?

それとも理解が足りないのか?
2014/05/02(金) 22:28:00.79ID:MCI6Hkq+
うわ、、、ここにもqzいんのかよ
邪魔だから消えろ
2014/05/02(金) 23:30:51.23ID:uljkUnkD
>>58
やだ!
2014/05/03(土) 00:00:32.41ID:v1U2AV4z
面白い感じに開発者が集まってきたな
俺もコテ使おうかしら、しかしほんま最近仕事忙しくて何もできてない
2014/05/03(土) 00:01:37.70ID:OPPs3lzA
sourceforgeでやれ
2014/05/03(土) 00:26:11.97ID:Pd384C+v
最近はGitHubでやるのが普通な模様
2014/05/03(土) 00:28:00.87ID:7Cx29wqw
オープンソース?
2014/05/03(土) 00:39:51.83ID:t3CXZaAV
>>57
私の実装の範囲で説明します。

>参加ノードが時々刻々と変化するなかで、ハッシュ値に対してどのノードにキャッシュを置くのか?どのノードからキャッシュを取るのか、疑問は尽きない‥

≪キャッシュ≫の意味がよく分かりかねます。
仮に≪DHTに保存されたデータ≫だとしてお答えします。DHTのアルゴリズムとしてChordを採用した場合、データに対して保存ノードは自動的に決定されます。詳しくはChordについてご参照ください。

>第一、単純な DHT だったら、ある投稿単位を得るために、その投稿単位を所持しているノードに集中的にアクセスが集中するのでは?

現時点の私の実装ではその通りです。
回避策として、多重にハッシュ関数を適用することによるラウンドロビンが考えられます。(Chordを用いているとします)

通常ではDHTに保存されるデータ:Vのアドレス:Kは、ハッシュ関数:Hを用いてK=H(V)として決定します。
ここでK[n]={H(V), H(H(V)), ... }で表せるように複数のアドレスを生成し、それぞれのアドレスに対応する複数のノードにデータを保存します。
データを読み出す際は、Kに上原付でランダムな回数だけHを適用し、得られたアドレスにデータを請求します。
これによりネットワーク負荷は分散されますがストレージの負荷は全体として増加します。
掲示板の機構とDHTの機構とは分離されるので、掲示板側からはこれを意識する必要はありません。

今考えたアルゴリズムなので瑕疵があるかもしれません。ご了承ください。
2014/05/03(土) 03:50:41.53ID:hbaIgB0n
>>57
キャッシュって言葉からしてny系P2Pに毒されすぎだよ。
DNSの浸透(≒DNS設定ミスによる不具合の別名)みたいな状態はムダでしか無い。

DHTの場合(例えばKなんとか)、データを保持するノードに到達するまでの距離が自動的に定まるし、
アクセス数の多いデータは複製数を上げれば集中が緩和されると同時にアクセス時間も減少する、筈。
2014/05/03(土) 05:20:18.12ID:kJWWkRZ3
>>55
使えてどうするのさ?
この板で作るなら開発者の為のソース共有辺りはあっていいけれど。

掲示リスクが増えたら掲示したい奴が余計減るよ。
別に常時じゃなくたっていまどきの雇用と同じでどうにでもなるだろ。
2014/05/03(土) 05:23:12.00ID:OPPs3lzA
思い思いに勝手な理想を語るだけで動く奴は一人もいない。
2014/05/03(土) 05:27:54.46ID:kJWWkRZ3
ライセンスの不備とIDが致命的なんじゃない?

実はレスのまとめを作るのさえ自己責任の同人扱いで要はfreeがないんだ。

人が集まっているのが2chのメリットなのに、IDのせいで住人層の薄さがハッキリでてしまい
ギブアンドテイクの期待ができない。

一般的にID識別というのは信用の為なのに、24時間という中途半端な期限では何の信用も積めないし、
積んだところでそんな釈迦に説法するのは敬遠されてしまって本人のトクにはならないね。
効果としてはレス待ちゲストによる気まぐれ支援を自粛させて瓢箪から駒の望みも奪ってしまうだけで、
互恵関係構築には全く役立たない欠陥品なんかを有難がるストーカー御用達って感じ。

自分にメリットがあると思えなきゃ誰も(書き込み)しない
という誰でもわかる基本を何故か皆忘れちゃってるんだよな。
2014/05/03(土) 13:47:44.68ID:a/u/kbPZ
違法な書き込みのリレーノードになってて警察が家にくる可能性のある掲示版を誰が利用するんだ
2014/05/03(土) 13:52:16.01ID:Y9TWu4Hw
>>69
キャッシュしない仕様であれば家宅捜索する意味が無いので、
裁判所は礼状を出さないよ。
71デフォルトの名無しさん
垢版 |
2014/05/03(土) 14:00:14.81ID:S8B6XMOo
テキスト情報共有ソフトなのだから
サイズが小さく、多くの複製を置くことができるから
あまり読まれないスレも素早く読めそうな気がするが
2014/05/03(土) 14:29:46.50ID:feMw6Ra8
>>68
>ID識別というのは信用の為

違うね、そのためにはすでにトリップがある。
君の説だと全員に強制的にトリップをつけることになるが、そうなると本当に誰もこなくなるだろう。
ID反対意見としては、今ひとつ説得力がない、もう少し脳細胞を使ってくれ
2014/05/03(土) 15:16:22.81ID:kJWWkRZ3
>>72
一般的なID識別の話をしてるのに2ch限定の用語と混同されても困る。
トリップは後付けの機能で昔は無かったよ。
2014/05/03(土) 15:57:40.01ID:eGpApgSQ
>>68
>実はレスのまとめを作るのさえ自己責任の同人扱いで要はfreeがないんだ。

Creative Commonsにしてみたいですね。

>ギブアンドテイクの期待ができない。

>一般的にID識別というのは信用の為なのに、24時間という中途半端な期限では何の信用も積めない

>自分にメリットがあると思えなきゃ誰も(書き込み)しない
>という誰でもわかる基本を何故か皆忘れちゃってる
個人的には登録制にすれば内容の質は上がると考えています。署名付き専用板などを作って棲み分けるようにしてもいいと思います。
2014/05/03(土) 16:09:47.03ID:UCtcrg1u
連投ごめん

匿名な掲示板は次のステージに進むべきではないのかと感じることがある。
匿名でも一定の品質が得られた時代は終焉し、ネット利用者の増加に伴う2ちゃんねるの利用者の質の低下が起こりつつある。

匿名は人間を無責任にする。
一度匿名での書き込みができれば、利用者はそれをさも当たり前だったかのように錯覚してしまう。
限られた人のみが使える匿名掲示板なら高い品質を確保することができたが、あらゆる人間が集まる場所で匿名での書き込みに品質を求めるのには無理がある。

初回起動時に自動で電子署名を作成し、電子署名がついた投稿を最初からするように設計すれば、それが当たり前にできるんじゃないかな。
明示的に署名を作る手間があるからそれを意識してしまうんだ。
2014/05/03(土) 16:27:56.64ID:kJWWkRZ3
品質とかそういうのは広告屋の発想だよ。
そんなものは利用者は求めていない。
千に三つ役に立つものがあれば、それは良スレだ。
2014/05/03(土) 17:50:48.64ID:iRDUo3cR
2chの全盛期を知らない人かな。
2chは昔、もっと人口が多かった時代のほうが高品質なレスが多かったよ。
その後、運営がデタラメな規制を繰り返した影響で大きく人が減って、質が落ちたんだよ。
2014/05/03(土) 18:42:50.27ID:kJWWkRZ3
単に人が減っただけなら消化速度が落ちるだけで質は変わらない。
よくある過疎スレだよ。

見捨てられるから質が落ちるのであって、その判断をさせてしまうのがIDだという事。
そもそも削除判断用だからね。
2014/05/03(土) 19:05:07.84ID:a/u/kbPZ
ネット利用者は増加してるけど2chの雑談系板以外の書き込み数は全盛期の半分以下まで低下してる
2014/05/03(土) 19:35:03.17ID:OPPs3lzA
で、こんな内容がプログラム技術板でやることか?
VIPでやったほうがまだましなんじゃないの。
2014/05/03(土) 19:45:46.73ID:7wut77np
>>79
利用者減ってるのか。
運営のせいか、時代の流れなのか。
2014/05/03(土) 21:15:21.72ID:Pd384C+v
江崎浩のP2P教科書を斜め読みしてると、P2Pの既存実装、ツールキット、テスト環境があることがわかった
(既存実装は自明だけど・・・)つまり誰かが車輪を作りまくって置いてることになる

【BambooDHT】
http://bamboo-dht.org/

分散ハッシュテーブルの研究で作られたソフトウェア、安心と信頼のMIT製

【OverlayWeaver】
http://overlayweaver.sourceforge.net/index-j.html

オーバーレイネットワークアプリを3層に分けて、それぞれ差し替え可能にしている開発ツールキット
階層0:ルーティング(Chord, Pastry, Kademlia...)
階層1:高レベルサービス(DHTとか)
階層2:アプリ

これはどの程度使えるのだろうか・・・

【PIAX】
どちらかというと車載機器や携帯機器への実装を目指してるプロジェクト?
低レイヤな部分でlibjingleとか使ってるっぽい
阪大製
2014/05/03(土) 21:18:42.74ID:Pd384C+v
OverlayWeaverはP2Pで通信するアプリケーションを”オーバレイ”ってひとくくりにしてるぐらいだから
なかなかすごいプロジェクトかもしれんね、ゲーム開発ツールキットで言えばUnityみたいなもんかな
2014/05/03(土) 21:33:59.64ID:CHVCcZx3
知ってるからいちいち紹介しなくていいよ
2014/05/03(土) 21:51:27.46ID:hZTTUVzr
使ったことないけど新月はなにがいけないの?
自分的にはp2pにこだわりすぎてるからじゃないかと思うけど
これをサーバーからでも閲覧や書き込みしやすいようにすりゃいいんじゃ?
2014/05/03(土) 22:10:59.90ID:Y9TWu4Hw
>>84
別にお前個人に教えてやろうと思って書いてるわけじゃないだろ。
2014/05/04(日) 00:26:00.32ID:F1HNpjLt
>>65
DNSの浸透、のほうがいいかもしれないよ
DHT の場合データが取得できない場合がある、所持しているノードが起動していなくてね
ファイル共有の場合は、そのノードが参加するのを待てばよいが、掲示板の場合はどうかな?

>>64
chord 調査中です。
2014/05/04(日) 05:20:21.25ID:fRCldqOt
>>85
P2Pというのはサーバ兼クライアントなんだから、こだわりすぎというのは意味不明。

過去ログ読まない貴方には向かないかもしれないけれど、
大事な事でも一度書かれれば充分な>>84なんかには新月も悪くないだろう。
2014/05/06(火) 04:29:26.74ID:YArsLWRD
>>87
DNSの浸透は設定ミスでTTLが延長される等のクソ環境の言い訳だし(故に浸透言う業者は無能な可能性が高い)、
そんな「データの伝達経路がぶっ壊れてるけど運がよけりゃデータ読める」状態を意図的に作ってどうすんだって。
DHTでは最悪のケースとしてデータ所有ノードが全て断線しても「ファイル共有の場合」の状態を再現できるし、
通常の場合は断線するノードが出たり明示的に切断する場合に複製数増やして最低データ保持ノード数を確保するだけ。
2014/05/06(火) 07:28:02.05ID:/sGQ2PwJ
大抵のDHTアルゴリズムには、特定のノードが退出してもそのノードの担当範囲のデータが消えないようにする仕組みがあるよ
2014/05/06(火) 10:12:26.17ID:R4LFdeTL
>>90
>特定のノードが退出してもそのノードの担当範囲のデータが消えない
詳しく

投稿単位AのハッシュH の結果H(A)でノードBを特定し,そのノードBが実際に投稿単位を持っているノードCを保持しているんだね (Chord)
じゃ,特定のノードBが前触れも無くいきなり退出(P2Pではよくあること)した場合は, C のことを知っているノードはいなくなるのでは?
2014/05/06(火) 13:05:02.81ID:/sGQ2PwJ
まず、DHTでは基本的にデータを複製していく点に留意。
>>91の例の場合、ノードCからノードBへ投稿Aそのものがコピーされる。
どのノードが持っているか、という情報を転送していくのはWinny方式だから勘違いせぬよう。
2014/05/06(火) 13:39:18.25ID:/sGQ2PwJ
DHT上に保存したいデータをA、そのデータのハッシュ値をH(A)、Aを担当するノードをNとする。
取り敢えず、自分の知ってるChordとKademliaってアルゴリズムを例にする。

Chordの場合、Nはその前(ノードID的に)のノードN'、N''、…へAを複製する。
円状のネットワークを構成するアルゴリズムだから、Nが抜けると(例えば)N'が次のNになるので、Aは消えない。

Kademliaの場合、Nに近い幾つかのノード(N自体が入っているとは限らない)へAをばら撒く。
各ノードは、定期的に自分の持つデータをNに近い幾つかのノードへばら撒く。
Aを取得する時も、Nに近い幾つかのノードにリクエストを送る。
データはひたすら複製されていくから、いずれかのノードが抜けても問題ないワケ。
円状のきれいなネットワークを構築するChordに比べると力技っぽいけど、実装が簡単らしいね。
2014/05/06(火) 18:07:43.97ID:68cG1kKx
>>91 >>92
どちらの実装もあり得る。
大きいデータとかファイル共有だったらDHTの担当ノードに直接データを持たせるということはしないだろう。
掲示板のデータはそれほど大きくないし、新しいレスが素早く反映される必要があるから
担当ノードが直接保持するべきだろう。
2014/05/06(火) 18:25:11.36ID:WFxcGpUO
まじかよ
コンテンツをDHTに直接入れてる実装って現時点で存在するのか?
おれは知らん
2014/05/06(火) 18:32:09.33ID:R4LFdeTL
>>93
なるほど、ハッシュ=ノードID のサイズが 160ビットならば、ノードIDをローテートして生成されるノードID群で持ち合うんだね
あとはノードIDの決め方だけれども
2014/05/06(火) 18:52:44.17ID:YxXCNUPf
DHTに直接データを置くのではなく、一旦メタデータを置く事が主流であるようですが、間接配置(他に正確な呼び名があるならそう読み替えてください)のメリットは何でしょうか。
私には大きなファイルの分割による負荷分散ぐらいしか思いつきませんが、他に何か応用があるのかな?
2014/05/06(火) 19:04:51.40ID:WFxcGpUO
というか直接配置の実例があるなら提示していただきたい
参考にするから
2014/05/06(火) 19:05:21.89ID:T0Gx8R+v
あ、いま思い浮かびました。連投をお許しください。
荒らしがいるとします。彼は大量の無意味な投稿をするのですが、これを直接DHTに配置すると多大なネットワーク負荷が発生します。
間接的にアドレスだけを配置し実体を投稿したノードに持たせれば、無駄な負荷を発生させずに済みます。
ただ投稿ノードが抜ける時に結局データの移動が起きてしまいますが。
2014/05/06(火) 19:36:34.06ID:GTsT1a5r
だめだこりゃ。ちゃんちゃん。
2014/05/06(火) 20:29:15.99ID:68cG1kKx
>>97
P2Pはノードの出入りが激しいから
DHTで大きいデータを直接配置すると
出入りの度に大量のデータ転送が必要になるからとても非効率

ファイル共有だとファイルをダウンロードするノードとDHTの担当ノードは
異なるのが普通だから、間接配置にならざるを得ない。

>>98
CREAの掲示板はDHTの担当ノードが管理する方式だったから
担当ノードが直接保持していた。
ちなみに、動画ファイルはもちろん間接配置だった。
2014/05/06(火) 20:51:39.18ID:Fr+PW76D
ここは帯域の無駄でしか無い中継をやらない
まともなP2Pスレってことでいいの?
2014/05/06(火) 20:55:23.86ID:WFxcGpUO
>>101
実装できるんだ
パフォーマンスはどんな感じなんだろう
2014/05/06(火) 21:19:26.66ID:68cG1kKx
>>103
それが作った自分も分かってないんだよwww
そもそも自分がP2Pを作ったのってP2Pシステムのテストをしたかったっていう
個人的な理由があったからなんだけど(その他にも色々理由はあったけど)、
P2P掲示板を作っても誰も使ってくれないから全くデータが取れなかったw
で、動画共有機能を追加したら多少はノードが増えると思っていたんだが
それでも全然増えなくて、これはいったん止めにするしかないわ、となった。

そんな訳で、直接配置でどれくらいパフォーマンスが出るのかはよく分からない。
ただ、10ノード程度で動いていたときはDHT絡みで特に問題はなかったと思う
(繋がらないノードの扱いには結構苦労した記憶があるけど)。
2014/05/06(火) 21:25:59.34ID:Fr+PW76D
インフラが整ってきたせいで
P2Pの必要性が減ってきてしまったからね。

動画配信はP2Pの出番のように
考えられていた時期もあったけど、
今や個人が無料で配信できてしまう時代。

P2Pよりも優れていて、すぐに再生できる
アップ者はアップが終わったらネットに繋がなくていいといった
メリットもある。この点でP2Pを超えてしまっている。
2014/05/06(火) 22:17:05.56ID:soHpq/YZ
作るやつがいないものをいくら議論したって無駄だろ。
2014/05/07(水) 01:17:20.12ID:eSaIM8aR
>>104
なるほど
でも使える可能性があるわけだね
これは光明か

多分人が集まらなかったのはプラットフォームの限定と広報不足では

個人的にBitTorrent Liveの実装が早く見たい
2014/05/07(水) 02:19:06.09ID:2caJ5LuF
CREAのひとだったのか

匿名にするなら実データをバケツリレーでポストしないと誰が書いたかバレバレになるよ
2014/05/07(水) 06:03:42.93ID:S8HTbvhn
匿名にする必要ないだろ。
2014/05/07(水) 18:11:42.50ID:Vbe/shdF
>>38
golangみたいな今日明日にでも消えそうな言語で開発とかww
2014/05/07(水) 20:37:08.51ID:E+53UQ5m
goはいい言語だと思うけど「俺がgoで作ってやったったwww」ぐらいじゃないと使うことにはならないだろうな
2014/05/08(木) 07:36:21.65ID:tK+74K/E
>>95
でかいコンテンツを直接格納するとそのキーを割り当てられた奴が悲惨なことになるから、
格納するデータをメタデータや十分に分割した物する実装じゃないと実用にならないんじゃないの?
>>96
前スレでChordかなんかでの一例は出てたね。クライアントが制御しきれない情報(例:IPアドレス)のハッシュ+α
>>98
ビットトレントのDHT(Kademliaだっけ?)はトレントファイルを共有してた筈だけど、
トレントファイルをコンテンツとみなせば直接格納には該当しないかな?実装知らんので詳しく分からん。
>>102
匿名化って目的のために帯域を消費して中継してんだから、無駄ではないだろ。
あんまりスマートではないけど、だからって「まともでない」って判断はどーかと。
匿名性が必要か否かは別の議論。
2014/05/08(木) 08:45:43.26ID:aLJM5gos
>>112
1キーあたりのデータは例えば1MBみたいな制限を加えるべき。
1キー1掲示板みたいな極端な事をせず、1キー1レスぐらいで設計すべきだね。
2014/05/08(木) 09:12:30.09ID:tK+74K/E
>>113
だね。2chのスレッドは1スレッド512kBいかない程度な事も多いから、スレッド単位かレス単位かは悩ましそうだけど…
2014/05/08(木) 09:37:14.61ID:aLJM5gos
google app engineの仕様では1キー1MBだから、それに合わせてもいいね。
2014/05/08(木) 09:42:07.96ID:aLJM5gos
DHTで掲示板を作る事自体は簡単なんだけど、
問題は、P2Pではピアが信用出来ないので、
改ざん耐性を高める必要があって、どういう設計をすればよいか、なんだよねぇ。
2014/05/08(木) 09:44:19.68ID:aLJM5gos
つまり、自分が所有するピアのデータを自分自身で書き換えられないか、
書き換えた事が検出可能な設計にするにはどうすればよいか。
2014/05/08(木) 09:49:16.77ID:rrq/Td9f
複数のソースをゲットすればいい
別ルートからのデータを比較して同一じゃなければ改ざん認定
正しいのがどれか判別する方法は知らん
2014/05/08(木) 09:50:37.46ID:rrq/Td9f
データと書いたがハッシュね
2014/05/08(木) 09:54:07.68ID:rrq/Td9f
確率論的には3つのうち1つだけ違っていたらそれが改ざんとしてしまってもいい
2014/05/08(木) 13:47:43.26ID:aLJM5gos
あと、掲示板のレスの順番は正確でなければならないが、
ACID(atomicity, consistency, isolation, durability)をどうやって保証するか。

P2PのDHTでのACID保証について議論したい
2014/05/08(木) 13:52:15.09ID:rrq/Td9f
>>121
実際の処理はユニークIDで処理して、UIに番号で表示すればよい
2014/05/08(木) 13:54:55.86ID:rrq/Td9f
P2PでACIDという発想がどこから出てくるのか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況