-
IPFSにおけるデータExchangeプロトコル
-
主な機能
- クライアントから要求されたブロックをネットワークから取得する
- 持っているブロックを,それを欲している他のピアに送信する
-
ファイルがほしいとき,他のピアに
want-lists
を送るwant-list
: ほしいブロックのCIDのリスト
-
各ノードは,他のピアの
want-list
を把握している- ブロックを受信するたびに,そのブロックを欲しがっている他のピアがいるかどうかチェックし,欲しがってるピアがいたらそこに送る
Discovery
- ファイルを持ってるピアを見つけたいとき…
- 自分が接続しているすべてのピアに
want-have
リクエストを送信want-have
にはファイルのルートブロックのCIDが含まれる(Merkle Treeの根)
want-have
を受信したノードは,持ってたらhave
,持ってなかったらdont-have
レスポンスを送る- どのピアも持ってなかったら,DHTに問い合わせて誰がルートブロックを提供できるか尋ねる
- want-haveとwant-blockを分けたのはなぜ? 最初からwant-blockを送ればいいのでは(kekeho)
- 自分が接続しているすべてのピアに