-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathipfs-some-graph.txt
136 lines (126 loc) · 15.4 KB
/
ipfs-some-graph.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
IPFS(Hypermedia transport protocol:超媒体传输协议) - IPFS是程序里用链接移动数据的算法。
.__________________________________________________________________________________________________________________________.
| |
| The IPFS Stack |
| |
| |
| .————————————————. |
| | |\ |
| | | \ |
| Web | applications | )-----------------------▶ Using the Data |
| | | / |
| |________________|/ |
| SFS | |\ |
| | naming | \ |
| | | \ |
| git |________________| \ IPNS |
| | | )---------------------▶ Defining the Data |
| | | / IPLD |
| BitTorrent | merkledag | / |
| | | / |
| |________________|/ |
| DHT | |\ |
| | exchange | \ |
| |________________| \ |
| | | \ libp2p |
| | routing | )---------------------▶ Moving the Data |
| |________________| / |
| | | / |
| | network | / |
| |________________|/ |
| |
| |
|__________________________________________________________________________________________________________________________|
.__________________________________________________________________________________________________________________________.
| |
| .__________. ._______. ._______. ._________. .________. |
| | | | | | | | | | | |
| applications | Etherpad | | VLC | | Git | | Bitcoin | | Chat | |
| |__________| |_______| |_______| |_________| |________| |
| |
| |
| ._______. |
| | | |
| naming | IPNS | |
| |_______| |
| |
| |
| ._____________. |
| | | |
| | merkledag | |
| |_____________| |
| |
| |
| .___________. |
| | | |
| exchange | Bitswap | |
| |___________| |
| |
| |
| .___________. .__________. |
| | | | | |
| routing | Kad DHT | | mDNS | |
| |___________| |__________| |
| |
| |
| ._________. ._______. ._______. .________. .________. .________. ._____________. |
| | | | | | | | | | | | | | | |
| network | CJDNS | | UDT | | uTP | | WebRTC | | QUIC | | TCP | | WebSocket | |
| |_________| |_______| |_______| |________| |________| |________| |_____________| |
| |
|__________________________________________________________________________________________________________________________|
The merkel link is that you link things together with a cryptographic hash, so you use the content itself to determine the link.
.__________________________________________________________________________________________________________________________.
| |
| The Merkel Tree |
| |
| .____________. |
| | | |
| | Top Hash | |
| ◥|____________| ◤ |
| / \ |
| / \ |
| .——————————. .——————————. |
| | | | | |
| | Hash 0 | | Hash 1 | |
| |__________| |__________| |
| ▲ ▲ ▲ ▲ |
| | | | | |
| | | | | |
| .________. .________. .________. .________. |
| | | | | | | | | |
| | Hash | | Hash | | Hash | | Hash | |
| | 0-0 | | 0-1 | | 1-0 | | 1-1 | |
| |________| |________| |________| |________| |
| ▲ ▲ ▲ ▲ |
| | | | | |
| | | | | |
| .________. .________. .________. .________. |
| | | | | | | | | |
| | Data | | Data | | Data | | Data | |
| | block | | block | | block | | block | |
| | 000 | | 001 | | 002 | | 003 | |
| |________| |________| |________| |________| |
| |
| |
|__________________________________________________________________________________________________________________________|
.__________________________________________________________________________________________________________________________.
| |
| The Merkel DAG |
| |
| |
| 1 ◄--- root |
| ▲ / \ |
| | / \ |
| 2 ◄---√ ) |
| | |
| ▼ |
| 3 ----▶ 4 |
| |
| |
| in IPFS, data from a dag. it's called the merkel dag, because the links are hashes. |
|__________________________________________________________________________________________________________________________|
sign with private key
content --------------------------> hash --------------------------> pointer ------------------------------------------> 发布
signing means somebody can verify
So, you add content to IPFS then share the hash, or you sign the hash and then share your key.