diff options
Diffstat (limited to 'template/use.html.j2')
-rw-r--r-- | template/use.html.j2 | 158 |
1 files changed, 122 insertions, 36 deletions
diff --git a/template/use.html.j2 b/template/use.html.j2 index 2f90aade..41d2a263 100644 --- a/template/use.html.j2 +++ b/template/use.html.j2 | |||
@@ -5,24 +5,44 @@ | |||
5 | <header> | 5 | <header> |
6 | <h2>{{ _("How to use GNUnet - in a nutshell") }}</h2> | 6 | <h2>{{ _("How to use GNUnet - in a nutshell") }}</h2> |
7 | </header> | 7 | </header> |
8 | <p> | ||
9 | This document is just a brief intro on what can be done with GNUnet. Find much more in our <a ref="https://docs.gnunet.org/">handbook / reference manual</a>, e.g. in the section <a href="https://docs.gnunet.org/#toc-Using-GNUnet-1">"using GNUnet"</a>. | ||
10 | </p> | ||
8 | 11 | ||
9 | <section> | 12 | <section> |
10 | <h3>{{ _("Make sure your GNUnet installation works...") }}</h3> | 13 | <h3>{{ _("Make sure your GNUnet installation works...") }}</h3> |
11 | 14 | <p>After installing and starting GNUnet you should make sure that your peer is connecting | |
15 | to the P2P-network. By typing gnunet-core you should see something like this: | ||
16 | </p> | ||
17 | <p> | ||
18 | <code> | ||
19 | $ gnunet-core <br> | ||
20 | Tue Oct 30 19:58:48 2018: connection established DSTJ (timeout in 293 s)<br> | ||
21 | Tue Oct 30 19:58:48 2018: connection established A4MK (timeout in 292 s)<br> | ||
22 | Tue Oct 30 19:58:48 2018: connection established 7WRD (timeout in 299 s)<br> | ||
23 | Tue Oct 30 19:58:48 2018: connection established 5WBG (timeout in 299 s)<br> | ||
24 | </code> | ||
25 | </p> | ||
26 | </section> | ||
27 | <section> | ||
28 | <h4>{{ _("... and play around with it.") }}</h4> | ||
12 | <p> | 29 | <p> |
13 | ... and play around with it. So let's try out some of GNUnet's use cases. Please mind that some should be done in a particular order, one after another: | 30 | So let's try out some of GNUnet's use cases. Please mind that some should be done in a particular order, one after another: |
14 | </p> | 31 | </p> |
15 | 32 | ||
16 | <ul> | 33 | <ul> |
17 | <li>filesharing</li> | 34 | <li>filesharing</li> |
18 | <li>A simple chat using CADET</li> | 35 | <li>A simple chat using CADET</li> |
36 | <li>Another simple chat using a nim client</i> | ||
19 | <li>Name resolution using GNS on the command line</li> | 37 | <li>Name resolution using GNS on the command line</li> |
20 | <li>Name resolution using GNS with a browser (do it on the command line first)</li> | 38 | <li>Name resolution using GNS with a browser (do it on the command line first)</li> |
21 | <li>Serving a website using VPN (do name resolution with a browser first)</li> | 39 | <li>Serving a website using VPN (do name resolution with a browser first)</li> |
22 | </ul> | 40 | </ul> |
23 | </section> | 41 | </section> |
42 | |||
43 | |||
24 | <section> | 44 | <section> |
25 | <h4>{{ _("filesharing") }}</h4> | 45 | <h4>{{ _("Filesharing") }}</h4> |
26 | 46 | ||
27 | <p> | 47 | <p> |
28 | Let's publish a file in the GNUnet filesharing network. We use the keywords | 48 | Let's publish a file in the GNUnet filesharing network. We use the keywords |
@@ -33,28 +53,35 @@ | |||
33 | We can choose any file and describe it with meaningful keywords (using the | 53 | We can choose any file and describe it with meaningful keywords (using the |
34 | `-k` command line option). | 54 | `-k` command line option). |
35 | </p> | 55 | </p> |
36 | 56 | <p> | |
37 | <code> | 57 | <code> |
38 | $ gnunet-publish -k commons -k state ostrom.pdf<br> | 58 | $ gnunet-publish -k commons -k state ostrom.pdf<br> |
39 | Publishing `/home/myself/ostrom.pdf' done.<br> | 59 | Publishing `/home/myself/ostrom.pdf' done.<br> |
40 | URI is `gnunet://fs/chk/M57SXDJ72EWS25CT6307KKJ8K0GCNSPTAZ649NA1NS10MJB4A1GZ9EN4Y02KST9VA5BHE8B335RPXQVBWVZ587Y83WQ7J3DHMBX30Q8.DHNGBN4CB2DBX1QRZ1R0B1Q18WTEAK4R94S9D57C9JMJJ3H7SSQDCV4D1218C4S2VP085AMQQSMG18FCP6NQMZQZJ91XR5NBX7YF0V0.42197237'. | 60 | URI is `gnunet://fs/chk/M57SXDJ72EWS25CT6307KKJ8K0GCNSPTAZ649NA1NS10MJB4A1GZ9EN4Y02KST9VA5BHE8B335RPXQVBWVZ587Y83WQ7J3DHMBX30Q8.DHNGBN4CB2DBX1QRZ1R0B1Q18WTEAK4R94S9D57C9JMJJ3H7SSQDCV4D1218C4S2VP085AMQQSMG18FCP6NQMZQZJ91XR5NBX7YF0V0.42197237'. |
41 | </code> | 61 | </code> |
42 | 62 | </p> | |
43 | <p> | 63 | <p> |
44 | Finding the file by keyword works with `gnunet-search`. | 64 | Finding the file by keyword works with `gnunet-search`. |
45 | </p> | 65 | </p> |
46 | 66 | <p> | |
47 | <code> | 67 | <code> |
48 | $ gnunet-search commons<br> | 68 | $ gnunet-search commons<br> |
49 | #1:<br> | 69 | #1:<br> |
50 | gnunet-download -o "ostrom.pdf" gnunet://fs/chk/M57SXDJ72EWS25CT6307KKJ8K0GCNSPTAZ649NA1NS10MJB4A1GZ9EN4Y02KST9VA5BHE8B335RPXQVBWVZ587Y83WQ7J3DHMBX30Q8.DHNGBN4CB2DBX1QRZ1R0B1Q18WTEAK4R94S9D57C9JMJJ3H7SSQDCV4D1218C4S2VP085AMQQSMG18FCP6NQMZQZJ91XR5NBX7YF0V0.42197237 | 70 | gnunet-download -o "ostrom.pdf" gnunet://fs/chk/M57SXDJ72EWS25CT6307KKJ8K0GCNSPTAZ649NA1NS10MJB4A1GZ9EN4Y02KST9VA5BHE8B335RPXQVBWVZ587Y83WQ7J3DHMBX30Q8.DHNGBN4CB2DBX1QRZ1R0B1Q18WTEAK4R94S9D57C9JMJJ3H7SSQDCV4D1218C4S2VP085AMQQSMG18FCP6NQMZQZJ91XR5NBX7YF0V0.42197237 |
51 | </code> | 71 | </code> |
52 | 72 | </p> | |
53 | <p> | 73 | <p> |
54 | It gives us the command line call to download the file (and store it as | 74 | It gives us the command line call to download the file (and store it as |
55 | ostrom.pdf)! | 75 | ostrom.pdf)! |
56 | </p> | 76 | </p> |
77 | <p> | ||
78 | Please also refer to the chapter on <a href="=> https://docs.gnunet.org/#File_002dsharing | ||
79 | ">filesharing in the handbook</a>. | ||
80 | |||
57 | </section> | 81 | </section> |
82 | |||
83 | |||
84 | |||
58 | <section> | 85 | <section> |
59 | <h4>{{ _("CADET (and Chat)") }}</h4> | 86 | <h4>{{ _("CADET (and Chat)") }}</h4> |
60 | 87 | ||
@@ -63,26 +90,72 @@ | |||
63 | another machine connect to this port and chat or transfer data. First we need | 90 | another machine connect to this port and chat or transfer data. First we need |
64 | our *peer ID* of the GNUnet peer opening the port. | 91 | our *peer ID* of the GNUnet peer opening the port. |
65 | </p> | 92 | </p> |
66 | 93 | <p> | |
67 | <code> | 94 | <code> |
68 | $ gnunet-peerinfo -s<br> | 95 | $ gnunet-peerinfo -s<br> |
69 | I am peer `P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG'. | 96 | I am peer `P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG'. |
70 | </code> | 97 | </code> |
71 | 98 | </p> | |
72 | <p> | 99 | <p> |
73 | Now we open the port (it can be any string!): | 100 | Now we open the port (it can be any string!): |
74 | </p> | 101 | </p> |
75 | 102 | <p> | |
76 | <code> | 103 | <code> |
77 | $ gnunet-cadet -o my-secret-port | 104 | $ gnunet-cadet -o my-secret-port |
78 | </code> | 105 | </code> |
79 | 106 | </p> | |
80 | <p>On the other machine we can connect using the peer ID and the port and start chatting!</p> | 107 | <p>On the other machine we can connect using the peer ID and the port and start chatting!</p> |
81 | 108 | <p> | |
82 | <code> | 109 | <code> |
83 | $ gnunet-cadet P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG my-secret-port | 110 | $ gnunet-cadet P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG my-secret-port |
84 | </code> | 111 | </code> |
112 | </p> | ||
113 | <p> | ||
114 | If you are interested into CADET in detail, please have a look in the <a href="https://docs.gnunet.org/#CADET-Subsystem">chapter "Cadet-Subsystem" in our handbook</a>. | ||
115 | </p> | ||
116 | |||
117 | </section> | ||
118 | |||
119 | <section> | ||
120 | <h4>{{ _("Chatting with a (simple) client") }}</h4> | ||
121 | <p> | ||
122 | To chat a tiny bit prettier, we need to install and compile additional software. | ||
123 | If you join the chat mentioned below and no one is there, feel free to ping on | ||
124 | IRC/freenode #gnunet and ask if someone can join to test with you! (But we are | ||
125 | trying to be there as often as possible). | ||
126 | </p> | ||
127 | <p> | ||
128 | <code> | ||
129 | $ git clone https://gnunet.org/git/gnunet-nim.git<br> | ||
130 | $ cd gnunet-nim/examples<br> | ||
131 | $ nim c groupchat.nim<br> | ||
132 | </code> | ||
133 | <p> | ||
134 | <p> | ||
135 | Fine! We can now try to enter a chat server running on another GNUnet node. | ||
136 | </p> | ||
137 | <p> | ||
138 | <code> | ||
139 | $LD_LIBRARY_PATH=/path/to/gnunetlibs ./groupchat --config=/path/to/gnunet.conf --server=YV6G9EP9K3X41BM3FJ3D29BDZR6358XNZ6KDZVV7DFW729YB0KCG --port=welcome --nick=YOURNICK | ||
140 | </code> | ||
141 | <p> | ||
142 | <p> | ||
143 | You should now see something like this: | ||
144 | </p> | ||
145 | <p> | ||
146 | <code> | ||
147 | > 2018-10-30 19:50:10 Welcome 8Q2T! participants: @[]<br> | ||
148 | Hello GNUnet!<br> | ||
149 | 2018-10-30 19:52:53 [8Q2T] Hello GNUnet!<br> | ||
150 | </code> | ||
151 | <p> | ||
152 | <p> | ||
153 | Here we have typed "Hello gnunet!" to standard in which is then written out to standard out after having been sent back from GNUnet. | ||
154 | </p> | ||
85 | </section> | 155 | </section> |
156 | |||
157 | |||
158 | |||
86 | <section> | 159 | <section> |
87 | <h4>{{ _("Name resolution using GNS on the command line") }}</h4> | 160 | <h4>{{ _("Name resolution using GNS on the command line") }}</h4> |
88 | 161 | ||
@@ -90,66 +163,71 @@ | |||
90 | equivalent to a zone in DNS. We'll call it "myself" and create it using the | 163 | equivalent to a zone in DNS. We'll call it "myself" and create it using the |
91 | `gnunet-identity` command line tool. Instead of "myself" you can surely use your | 164 | `gnunet-identity` command line tool. Instead of "myself" you can surely use your |
92 | nick or any other name. </p> | 165 | nick or any other name. </p> |
93 | 166 | <p> | |
94 | <code> | 167 | <code> |
95 | $ gnunet-identity -C myself | 168 | $ gnunet-identity -C myself |
96 | </code> | 169 | </code> |
97 | 170 | </p> | |
98 | <p>We can check if it worked using the same tool. We expect the name of our identity and the corresponding public key to be displayed.</p> | 171 | <p>We can check if it worked using the same tool. We expect the name of our identity and the corresponding public key to be displayed.</p> |
99 | 172 | <p> | |
100 | <code> | 173 | <code> |
101 | $ gnunet-identity -d<br> | 174 | $ gnunet-identity -d<br> |
102 | myself - HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG | 175 | myself - HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG |
103 | </code> | 176 | </code> |
104 | 177 | </p> | |
105 | <p> | 178 | <p> |
106 | Now we add a public `A` record to our zone. It has the name "ccc", a value | 179 | Now we add a public `A` record to our zone. It has the name "ccc", a value |
107 | of "195.54.164.39" and it expires after one day. | 180 | of "195.54.164.39" and it expires after one day. |
108 | </p> | 181 | </p> |
109 | 182 | <p> | |
110 | <code> | 183 | <code> |
111 | $ gnunet-namestore -z myself -a -e "1 d" -p -t A -n ccc -V 195.54.164.39 | 184 | $ gnunet-namestore -z myself -a -e "1 d" -p -t A -n ccc -V 195.54.164.39 |
112 | </code> | 185 | </code> |
113 | 186 | </p> | |
114 | <p>Now we can query that record using the command line tool `gnunet-gns`.</p> | 187 | <p>Now we can query that record using the command line tool `gnunet-gns`.</p> |
115 | 188 | <p> | |
116 | <code> | 189 | <code> |
117 | $ gnunet-gns -t A -u ccc.myself<br> | 190 | $ gnunet-gns -t A -u ccc.myself<br> |
118 | ccc.myself:<br> | 191 | ccc.myself:<br> |
119 | Got `A' record: 195.54.164.39 | 192 | Got `A' record: 195.54.164.39 |
120 | </code> | 193 | </code> |
121 | 194 | </p> | |
122 | <p> | 195 | <p> |
123 | So it worked! But only resolving our own records is boring. So we | 196 | So it worked! But only resolving our own records is boring. So we |
124 | can give our identity (the public key of it to be precise) to | 197 | can give our identity (the public key of it to be precise) to |
125 | someone else so they can try to resolve our records, too. The | 198 | someone else so they can try to resolve our records, too. The |
126 | other person (Bob) has to add it to his namestore like this: | 199 | other person (Bob) has to add it to his namestore like this: |
127 | </p> | 200 | </p> |
128 | 201 | <p> | |
129 | <code> | 202 | <code> |
130 | $ gnunet-namestore -z myself -a -e never -p -t PKEY -n alice -V HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG | 203 | $ gnunet-namestore -z myself -a -e never -p -t PKEY -n alice -V HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG |
131 | </code> | 204 | </code> |
132 | 205 | </p> | |
133 | <p> | 206 | <p> |
134 | Our identity in Bobs namestore is a public record (-p) and never | 207 | Our identity in Bobs namestore is a public record (-p) and never |
135 | expires (-e never). Now Bob (let's assume he has called his | 208 | expires (-e never). Now Bob (let's assume he has called his |
136 | identity myself, too) should be able to resolve our "ccc" record, | 209 | identity myself, too) should be able to resolve our "ccc" record, |
137 | too! | 210 | too! |
138 | </p> | 211 | </p> |
139 | 212 | <p> | |
140 | <code> | 213 | <code> |
141 | $ gnunet-gns -t A -u ccc.alice.myself<br> | 214 | $ gnunet-gns -t A -u ccc.alice.myself<br> |
142 | ccc.alice.myself:<br> | 215 | ccc.alice.myself:<br> |
143 | Got `A' record: 195.54.164.39 | 216 | Got `A' record: 195.54.164.39 |
144 | </code> | 217 | </code> |
145 | 218 | </p> | |
146 | <p> | 219 | <p> |
147 | It can continue like this. A friend of Bob would be able to | 220 | It can continue like this. A friend of Bob would be able to |
148 | resolve our records too because Bob published our identity in a | 221 | resolve our records too because Bob published our identity in a |
149 | public record. Bobs friend would simply use "ccc.alice.bob.myself" | 222 | public record. Bobs friend would simply use "ccc.alice.bob.myself" |
150 | to resolve our "ccc" record. | 223 | to resolve our "ccc" record. |
151 | </p> | 224 | </p> |
225 | <p> | ||
226 | See the <a href="https://docs.gnunet.org/#First-steps-_002d-Using-the-GNU-Name-System">chapter "Using the GNU Name System" in our handbook</a> for a more detailed documentation. | ||
227 | </p> | ||
152 | </section> | 228 | </section> |
229 | |||
230 | |||
153 | <section> | 231 | <section> |
154 | <h4>{{ _("Name resolution using GNS with a browser") }}</h4> | 232 | <h4>{{ _("Name resolution using GNS with a browser") }}</h4> |
155 | 233 | ||
@@ -166,11 +244,11 @@ | |||
166 | names. This means we need to create our own certificate authority | 244 | names. This means we need to create our own certificate authority |
167 | and tell our browser about it. Luckily there's a script for it: | 245 | and tell our browser about it. Luckily there's a script for it: |
168 | </p> | 246 | </p> |
169 | 247 | <p> | |
170 | <code> | 248 | <code> |
171 | $ gnunet-gns-proxy-setup-ca | 249 | $ gnunet-gns-proxy-setup-ca |
172 | </code> | 250 | </code> |
173 | 251 | </p> | |
174 | <p>After executing this script the Browser has to be restarted.</p> | 252 | <p>After executing this script the Browser has to be restarted.</p> |
175 | 253 | ||
176 | <p> | 254 | <p> |
@@ -185,50 +263,58 @@ | |||
185 | hostname) record, too. It must contain the website's original DNS | 263 | hostname) record, too. It must contain the website's original DNS |
186 | hostname: | 264 | hostname: |
187 | </p> | 265 | </p> |
188 | 266 | <p> | |
189 | <code> | 267 | <code> |
190 | $ gnunet-namestore -z myself -a -e "1 d" -p -t LEHO -n ccc -V www.ccc.de | 268 | $ gnunet-namestore -z myself -a -e "1 d" -p -t LEHO -n ccc -V www.ccc.de |
191 | </code> | 269 | </code> |
192 | 270 | </p> | |
193 | <p>Now let's start gnunet-gns-proxy.</p> | 271 | <p>Now let's start gnunet-gns-proxy.</p> |
194 | 272 | <p> | |
195 | <code> | 273 | <code> |
196 | $ /usr/lib/gnunet/libexec/gnunet-gns-proxy | 274 | $ /usr/lib/gnunet/libexec/gnunet-gns-proxy |
197 | </code> | 275 | </code> |
198 | 276 | </p> | |
199 | <p> | 277 | <p> |
200 | Our browser has to be configured so it uses our proxy. In Firefox | 278 | Our browser has to be configured so it uses our proxy. In Firefox |
201 | we have to set these options under "about:config": | 279 | we have to set these options under "about:config": |
202 | </p> | 280 | </p> |
203 | 281 | <p> | |
204 | <code> | 282 | <code> |
205 | network.proxy.socks: localhost<br> | 283 | network.proxy.socks: localhost<br> |
206 | network.proxy.socks_port: 7777<br> | 284 | network.proxy.socks_port: 7777<br> |
207 | network.proxy.socks_remote_dns true<br> | 285 | network.proxy.socks_remote_dns true<br> |
208 | network.proxy.type: 1 | 286 | network.proxy.type: 1 |
209 | </code> | 287 | </code> |
210 | 288 | </p> | |
211 | <p> | 289 | <p> |
212 | To tell Chromium to use the proxy, it has to be started with the | 290 | To tell Chromium to use the proxy, it has to be started with the |
213 | "--proxy-server" command line option: | 291 | "--proxy-server" command line option: |
214 | </p> | 292 | </p> |
215 | 293 | <p> | |
216 | <code> | 294 | <code> |
217 | $ chromium --proxy-server="socks5://127.0.0.1:7777" | 295 | $ chromium --proxy-server="socks5://127.0.0.1:7777" |
218 | </code> | 296 | </code> |
219 | 297 | </p> | |
220 | <p> | 298 | <p> |
221 | Now we should be able to resolve our GNS names in the browser! We | 299 | Now we should be able to resolve our GNS names in the browser! We |
222 | just have to type "https://ccc.myself" into the address bar. If | 300 | just have to type "https://ccc.myself" into the address bar. If |
223 | our friend Bob prepared his system, too, he can resolve our record | 301 | our friend Bob prepared his system, too, he can resolve our record |
224 | by typing "ccc.alice.myself". | 302 | by typing "ccc.alice.myself". |
225 | </p> | 303 | </p> |
304 | <p> | ||
305 | See the <a href="https://docs.gnunet.org/#Integration-with-Browsers">chapter on Integration with Browsers in our handbook</a> for a more detailed description. | ||
306 | </p> | ||
226 | </section> | 307 | </section> |
227 | <section> | 308 | <section> |
228 | <h4>{{ _("VPN") }}</h4> | 309 | <h4>{{ _("VPN") }}</h4> |
229 | |||
230 | <p> | 310 | <p> |
231 | TBD | 311 | TBD, see <a href="https://docs.gnunet.org/#Configuring-the-GNUnet-VPN">chapter "Configuring the GNUnet VPN" in the handbook.</a> |
312 | </p> | ||
313 | </section> | ||
314 | <section> | ||
315 | <h4>{{ _("Conversation") }}</h4> | ||
316 | <p> | ||
317 | TBD, see <a href="hhttps://docs.gnunet.org/#First-steps-_002d-Using-GNUnet-Conversation">chapter "Using GNUnet Conversation" in the handbook.</a> | ||
232 | </p> | 318 | </p> |
233 | </section> | 319 | </section> |
234 | </article> | 320 | </article> |