|
| 1 | + ┌─────────────────────────────────────────────────────────────────────────────┐ |
| 2 | + │ The IPFS Architecture │ |
| 3 | + └─────────────────────────────────────────────────────────────────────────────┘ |
| 4 | + ┏━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ |
| 5 | + ======================= IPFS Daemon ======================= ┃ |
| 6 | + ┃ ┃ |
| 7 | + ┃┌────┐ ┏ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ |
| 8 | + │ │ ++++++++++++++++++ IPFS Core ++++++++++++++++++ ┃ |
| 9 | + │ │ ┃ ┌──────────────────────────────────────────────────┐ |
| 10 | + │HTTP│ ┌─│ API (Core API) │ ┃┃ |
| 11 | + ┃│Gate│ │ ├──────┬──────┬──────┬──────┬──────┬───────┬───────┤ ┃ |
| 12 | + ┃│way │◀┤ │ Repo │Block │ DAG │ Pin │Files │ │Network│ ┃ |
| 13 | + │ │ │ └──────┴──────┴──────┴──────┴──────┘ └───────┘ |
| 14 | + │ │ │ │ │ │ │ │ │ ┃ |
| 15 | + │ │ │ │ │ ┌────┘ │ ┌────┘ ┌────┘ ┃ |
| 16 | + ┃└────┘ │ ┌──┘ │ │ ┌──────┘ │ ▼ ┃┃ |
| 17 | + ┃ │ │┌────────┘ │ ▼ ▼ ┌────────────────────┐ |
| 18 | + ┌────┐ │ ││ │┌───────┐┌──────┐│ libp2p │┃ |
| 19 | + │ │ │ ││ ││Pinning││Unixfs││ (Network, PubSub, │ |
| 20 | + │ │ │ ││ ││Service││Engine││ Swarm, Crypto) │┃┃ |
| 21 | + ┃│ │ │ ││ │└───────┘└──────┘│┌──────────────────┐│ ┃ |
| 22 | + ┃│HTTP│ │ ││ │ │ │ ││Connection Manager││┃ |
| 23 | + │RPC │ │ ││ ├────┴────────┘ │└──────────────────┘│ |
| 24 | +┌───┐┌────────┐ │API │◀┘ ││ │ │┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ │┃ |
| 25 | +│CLI││ipfs-api│ │ │ ┃ ││ │ │ Peer Reputation ││ ┃ |
| 26 | +└───┘└────────┘┃│ │ ││ │ │└ ─ ─ ─ ─ ─ ─ ─ ─ ─ │┃┃ |
| 27 | + ┃│ │ ┃ ││ ┌──┘ └────────────────────┘ |
| 28 | + │ │ ││ │ ┌ ─ ─ ─ ─ ┐┌ ─ ─ ─ ─ ─ ┃ |
| 29 | + └────┘ ┃ ││ │ Providers GC │ |
| 30 | + ││ ▼ │ Service ││ ┃┃ |
| 31 | + ┃ ┃ ││┌─────────────┐ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘ ┃ |
| 32 | + ┃ │││Graph Service│─────┬───────────┬───────────┐ ┃ |
| 33 | + ┃ ││└─────────────┘ ▼ ▼ ▼ |
| 34 | + ││ │ ┌ ─ ─ ─ ─ ─ ┌ ─ ─ ─ ─ ─ ┌ ─ ─ ─ ─ ─ ┃ |
| 35 | + ┃ │└───────┤ GraphSync │ GraphSyncB│ GraphSyncC│ ┃ |
| 36 | + ┃ │ ▼ └ ─ ─ ─ ─ ─ └ ─ ─ ─ ─ ─ └ ─ ─ ─ ─ ─ ┃┃ |
| 37 | + ┃ ┃ │ ┌─────────────┐ |
| 38 | + │ │Block Service│─────┬───────────┬───────────┐ ┃ |
| 39 | + ┃ │ └─────────────┘ ▼ ▼ ▼ |
| 40 | + │ │ ┌──────────┐┌ ─ ─ ─ ─ ─ ┌ ─ ─ ─ ─ ─ ┃┃ |
| 41 | + ┃ ┃ └─────┬──┴──────│ Bitswap │ BitswapB │ BitswapB │ ┃ |
| 42 | + ┃ ▼ └──────────┘└ ─ ─ ─ ─ ─ └ ─ ─ ─ ─ ─ ┃ |
| 43 | + ┃ ┌─────────┐ |
| 44 | + │ Repo │ ┃ |
| 45 | + ┃ └─────────┘ ┃ |
| 46 | + ┃ │ ┃┃ |
| 47 | + ┃ ┃ ┌─┴──────┬──────────┬───────┐ |
| 48 | + ▼ ▼ ▼ ▼ ┃ |
| 49 | + ┃ ┌────┐┌──────────┐┌────────┐┌────┐ |
| 50 | + │ fs ││indexedDB ││LevelDB ││ S3 │ ┃┃ |
| 51 | + ┃ ┃ └────┘└──────────┘└────────┘└────┘ ┃ |
| 52 | + ┃ ┃ |
| 53 | + ┗ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ |
| 54 | + ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ ━━ |
| 55 | + |
| 56 | + ┌───────────────────────────────────────────────────────────────────────────┐ |
| 57 | + │ Legend │ |
| 58 | + │ ┌ ─ ─ ┐ │ |
| 59 | + │ Planned, not yet implemented │ |
| 60 | + │ └ ─ ─ ┘ │ |
| 61 | + │ ┌─────┐ │ |
| 62 | + │ │ │ Exist and shipped with IPFS │ |
| 63 | + │ └─────┘ │ |
| 64 | + └───────────────────────────────────────────────────────────────────────────┘ |
0 commit comments