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/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という発想がどこから出てくるのか
2014/05/08(木) 14:12:32.37ID:tK+74K/E
>>123
P2Pというか、分散DBの類だからこそACID意識するんじゃないの?
2014/05/08(木) 14:29:26.84ID:aLJM5gos
>>122
ユニークなキーを振るのは当然として、
どうやってレス番1の書き込みとレス番2の書き込みの順番がわかるんですか?
書き込み時間にしたって、ピアの時計が正確とは限らないわけだし。
2014/05/08(木) 14:41:08.06ID:aLJM5gos
レス1の次に書き込まれたレスは、必ずレス2にならなくてはならない。
これを保証するにはどういう設計にすればよいのだろう。
2014/05/08(木) 14:45:19.56ID:rrq/Td9f
>>125
別ピアのUIの表示番号が違っていて良い
内部で整合性がとれていれば

めんどくせえ
2014/05/08(木) 14:53:49.00ID:5NN0m/yU
レスが改竄されないことを前提とすると
レス2にレス1のハッシュ値を添付しなければならないようにすれば
少なくともレス2がレス1より前に存在しなかったことは保証できるな
レスが改竄されない方法は知らんw
掲示板のためにproof of workを使うのはコスト高すぎだろうしなー

まあ、多少順番が狂っても別にいいと思うけど
2014/05/08(木) 15:30:16.25ID:lBa33A+E
必ず分岐が起こるがその場合どうするのか?
単純にタイムスタンプで同期させると改竄が容易になる。
改竄に対しては多数決で改竄防止という話が出ているが、
そうすれば新規書きこみは全て捨てられることになる
130デフォルトの名無しさん
垢版 |
2014/05/08(木) 20:32:46.09ID:oHeX29Ky
レスの順番なんてどうでもいいだろ
本当に必要な場面になったら、後から安価して順序を説明すりゃいい
2014/05/08(木) 20:42:45.56ID:Lwvjy9Um
順序の制御は無理だろう
>>127 のいうとおりだ、UI に渡すときに整合性が取れていればなんら問題ない、そのためにアンカー先を別途探しにいく実装があってもよい
アンカー先探しをあきらめる条件をどうするか、だね
2014/05/08(木) 21:07:16.40ID:lBa33A+E
レス順が変わるのはスレッドが分岐したときの副作用で、この分岐には適切に対処しないと改竄スレッドを流されてしまう穴になる
書きこみを複数のノードに投げて、最新スレッドの取得同期は多数決にすると最新投稿が捨てられる可能性が高くなる
2014/05/08(木) 21:12:09.26ID:oHeX29Ky
改竄は防げない前提で考えたほうがいいんじゃないの?
された場合にどうするかを考えたほうが現実的な気がする

例えば、他の人とログを比べて改竄されてそうな場所をピックアップする機能とか
改竄してまくってそうなやつをブロックする機能とかあればいいんでない?
2014/05/08(木) 21:16:48.49ID:JZCmTzL0
内容に不一致があればそれ以降はフォークとみなすしかないんじゃね
2014/05/08(木) 21:23:14.60ID:oHeX29Ky
ワーキングディレクトリに他のノードからの更新を受けておいて、
そこから手動で自分のログに指定したレスをプルする。
こうすれば常に綺麗な状態は保てるんじゃない?
プル地獄になりそうだけど
2014/05/08(木) 22:04:50.39ID:fes617/2
私の実装ではレスごとに固有のIDを与えて内部で自動変換していますね。
見た目が変わらなければどうということはないです。
2014/05/09(金) 09:39:28.91ID:b6QXm0aH
レス番は投稿情報のハッシュ(仮にレスIDとする)とかにしとくと楽だわな

>>128
レスを識別する情報(レスID)をそのレスの全情報のハッシュにしとけば、
強衝突性を突破しない限り同一レスIDのレスを捏造することは阻止できる。
全コピーの削除はネットワークの規模と複製回数で頑張ればいいし、
不正な投稿(といっても問題なのは未来や過去のタイムスタンプ位か?)さえ防げればいい。
>>129>>132
直線構造に拘る必要はなくね?ツリーでも一方向メッシュでもそれなりの順序は持つし。
基本は直線で、分岐見つけたら全ての先端のIDを添付して合流させてけばいい。
表示順は原則タイムスタンプ順で、あまりに古いレスID使って伸びた枝は閲覧時に警告を付ける。
本格的にチェックしたいなら信用できるタイムスタンプサーバを借りて部分的にP2Pをやめる。
>>133
プロトコル的な攻撃の話って、攻撃→防御じゃなくてバグ→攻撃の順で考えたほうがいいと思う
というか既存投稿の上書きな改竄は、異なる内容のレスを別のレスとして扱う実装だと無意味になる
元の投稿消したデータ群渡されても、元の投稿を含むデータ群読んで差分を挿入して終わり
元の投稿を持つやつ全員が結託して抹消しない限り、そいつと接触できれば直ぐ復元できる
138デフォルトの名無しさん
垢版 |
2014/05/09(金) 11:03:34.80ID:NbpGrdz5
特定のレスをNGにして、自分ノードではやりとりしないっていう機能も必要だね
薬売買とか個人情報のやりとりあるレスは持ちたくない人いるでしょ

手動でNGに入れるのも面倒だから
つまり共有NGみたいなものが必要になるのか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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