|
1 | 1 |
|
2 |
| - ┌────────────────────────────────────────────────────────────────────────────┐ |
3 |
| - │ Bitswap API │ |
4 |
| - └────────────────────────────────────────────────────────────────────────────┘ |
5 |
| - │ ▲ |
6 |
| - │register wants │yields the |
7 |
| - │and unwants │received |
8 |
| - │ │blocks |
9 |
| - │ │ |
10 |
| - │ send block to other nodes┌───────────────────────────┐ |
11 |
| - │ by adding them to their │ Decision Engine │ |
12 |
| - │ buckets │ │ |
13 |
| - │ ┌─────────◀├ ─ ─ ─ │ |
14 |
| - │ │ │Ledger│ │ |
15 |
| - │ │ └───────────────────────────┘ |
16 |
| - │ │ ▲ |
17 |
| - ▼ │ │ |
18 |
| - ┌────────────────────┐ │ │ |
19 |
| - │ │ │ │ |
20 |
| - │ Want Manager │ │ │ |
21 |
| - │ │ │ │ |
22 |
| - ├───────────┬──┬─────┘ │ │ |
23 |
| - │my wantlist│ │ │ │ |
24 |
| - └───────────┘ │update wantlist │ │ |
25 |
| - │messages │ receive a block │ |
26 |
| - └─────┬───────┬───────┤ │ |
27 |
| - │ │ │ │ |
28 |
| - ▼ ▼ ▼ │ |
29 |
| - ┌───────┬───────┬───────┐ │ |
30 |
| - │Message│Message│... │ │ |
31 |
| - │Queue/ │Queue/ │ │ │ |
32 |
| - │peer │peer │ │ │ |
33 |
| - └───────┴───────┴───────┘ │ |
34 |
| - │ │ │ │ |
35 |
| - │ │ │ │ |
36 |
| - │ │ │ │ |
37 |
| - └───────┴───────┴─┐ │ |
38 |
| - │ │ |
39 |
| - │ │ |
40 |
| - ▼ │ |
41 |
| - ┌────────────────────────────────────────┐ |
42 |
| - │ Network │ |
43 |
| - └────────────────────────────────────────┘ |
44 |
| - │ ▲ │ ▲ |
45 |
| - ▼ │ │ │ |
46 |
| - ┌─────────┐ ▼ │ |
47 |
| - │Transform│ /ipfs/bitswap/1.1.0 |
48 |
| - └─────────┘ |
49 |
| - │ ▲ |
50 |
| - ▼ │ |
51 |
| - /ipfs/bitswap/1.0.0 |
| 2 | + +---------------------------------------------------------------------------+ |
| 3 | + | Bitswap API | |
| 4 | + +-----------+---------------------------------------------------------------+ |
| 5 | + | ^ |
| 6 | + | | |
| 7 | + | | |
| 8 | + | Yield the |
| 9 | + Register wants received blocks |
| 10 | + and unwants | |
| 11 | + | | |
| 12 | + | +------------+-------------+ |
| 13 | + | +-------<------+ | |
| 14 | + | | | Decision Engine | |
| 15 | + | | +============\ | |
| 16 | + | | |Peer Ledgers| | |
| 17 | + v | +------------/-------------+ |
| 18 | + +--------------------+ | ^ |
| 19 | + | | | | |
| 20 | + | Want Manager | Add peers' wanted blocks | |
| 21 | + +============\ | to outgoing messages | |
| 22 | + |Our wantlist| | | | |
| 23 | + +------------/---+---+ | | |
| 24 | + | | | |
| 25 | + | | | |
| 26 | + Add wants/cancels | | |
| 27 | + to outgoing message | | |
| 28 | + | | | |
| 29 | + | | | |
| 30 | + +----+---+--------+----+--+ | |
| 31 | + | | | | | |
| 32 | + v v v v | |
| 33 | + +--------+--------+ +--------+ +---------+---------+ |
| 34 | + |Peer 1 |Peer 2 | |Peer N | |{d} | |
| 35 | + |Message |Message | ... |Message | |/ipfs/bitswap/1.1.0| |
| 36 | + |Queue |Queue | |Queue | | | |
| 37 | + +--------+--------+ +--------+ +---------+---------+ |
| 38 | + | | | | | |
| 39 | + | | | | | |
| 40 | + | | | | | |
| 41 | + +--------+--+-----+-------+ | |
| 42 | + | | |
| 43 | + | | |
| 44 | + +---------+---------+ | |
| 45 | + |{d} | | |
| 46 | + |/ipfs/bitswap/1.1.0| | |
| 47 | + | | | |
| 48 | + +---------+---------+ | |
| 49 | + | | |
| 50 | + v | |
| 51 | + +-------------------------------------------+-----------------------------------+ |
| 52 | + | Network | |
| 53 | + +-------------------------------------------------------------------------------+ |
| 54 | + | | |
| 55 | + v Peer using | |
| 56 | + +-------------* older Bitswap? +------>-------+ |
| 57 | + | | | | |
| 58 | + v | | | |
| 59 | + +--------+--------+ | +--------+--------+ | |
| 60 | + |{io}Transform | | |{io}Transform | | |
| 61 | + +--------+--------+ | +--------+--------+ | |
| 62 | + | | ^ |Yes |
| 63 | + | | | No | |
| 64 | + +------>------+ +--------------* Older Bitswap |
| 65 | + | ^ version? |
| 66 | + | | |
| 67 | + +---------+---------+ +---------+---------+ |
| 68 | + |{d} (Outgoing) | |{d} (Incoming) | |
| 69 | + | Bitswap Message | | Bitswap Message | |
| 70 | + | | | | |
| 71 | + +---------+---------+ +---------+---------+ |
0 commit comments