gnunet-nse.1: follow standards
[oweals/gnunet.git] / doc / man / gnunet-download.1
1 .TH GNUNET-DOWNLOAD "1" "January 31, 2016" "GNUnet"
2 .SH NAME
3 gnunet\-download \- a command line interface for downloading files from GNUnet
4 .SH SYNOPSIS
5 .B gnunet\-download
6 [\fIOPTIONS\fR] \-\- GNUNET_URI
7 .SH DESCRIPTION
8 Download files from GNUnet.
9 .TP
10 \fB\-a \fILEVEL\fR, \fB\-\-anonymity=LEVEL\fR
11 set desired level of receiver anonymity.  Default is 1.
12 .TP
13 \fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
14 use config file (defaults: ~/.config/gnunet.conf)
15 .TP
16 \fB\-D, \fB\-\-delete\-incomplete\fR
17 causes gnunet\-download to delete incomplete downloads when aborted with
18 CTRL\-C.  Note that complete files that are part of an incomplete recursive
19 download will not be deleted even with this option.  Without this option,
20 terminating gnunet\-download with a signal will cause incomplete
21 downloads to stay on disk.  If gnunet\-download runs to (normal) completion
22 finishing the download, this option has no effect.
23 .TP
24 \fB\-h\fR, \fB\-\-help\fR
25 print help page
26 .TP
27 \fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=LOGLEVEL\fR
28 Change the loglevel.  Possible values for LOGLEVEL are
29 ERROR, WARNING, INFO and DEBUG.
30 .TP
31 \fB\-n\fR, \fB\-\-no-network\fR
32 Only search locally, do not forward requests to other peers.
33 .TP
34 \fB\-o \fIFILENAME\fR, \fB\-\-output=FILENAME\fR
35 write the file to FILENAME.  Hint: when recursively downloading a directory,
36 append a '/' to the end of the FILENAME to create a directory of that name.
37 If no FILENAME is specified, gnunet\-download constructs a temporary ID from
38 the URI of the file.  The final filename is constructed based on meta\-data
39 extracted using libextractor (if available).
40 .TP
41 \fB\-p \fIDOWNLOADS\fR, \fB\-\-parallelism=DOWNLOADS\fR
42 set the maximum number of parallel downloads that is allowed.  More parallel
43 downloads can, to some extent, improve the overall time to download content.
44 However, parallel downloads also take more memory (see also option \-r which
45 can be used to limit memory utilization) and more sockets.  This option is
46 used to limit the number of files that are downloaded in parallel (\-r can
47 be used to limit the number of blocks that are concurrently requested).
48 As a result, the value only matters for recursive downloads.
49 The default value is 32.
50 .TP
51 \fB\-r \fIREQUESTS\fR, \fB\-\-request-parallelism=REQUESTS\fR
52 set the maximum number of parallel requests that is allowed.  If multiple
53 files are downloaded, gnunet\-download will not run them in parallel if
54 this would cause the number of pending requests to possibly exceed the
55 given value.  This is useful since, for example, downloading dozens of
56 multi\-gigabyte files in parallel could exhaust memory resources and would
57 hardly improve performance.   Note that the limit only applies to this
58 specific process and that other download activities by other processes
59 are not included in this limit.  Consider raising this limit for large
60 recursive downloads with many large files if memory and network
61 bandwidth are not fully utilized and if the parallelism limit (\-p option)
62 is not reached.  This option also only matters for recursive downloads.
63 The default value is 4092.
64 .TP
65 \fB\-R\fR, \fB\-\-recursive\fR
66 download directories recursively (and in parallel). Note that the URI
67 must belong to a GNUnet directory and that the filename given to "\-o"
68 must end in '.gnd' \-\- otherwise, you will receive an error.  You may
69 want to use "DIRNAME/.gnd" for the filename, this way a directory
70 "DIRNAME/" will be created, and GNUnet's internal directory
71 information will be stored in "DIRNAME/.gnd". However, it is also
72 possible to specify "DIRNAME.gnd", in which case the files from the
73 directory will end up in "DIRNAME/", while GNUnet's directory meta
74 data will be in "DIRNAME.gnd".
75 .TP
76 \fB\-v\fR, \fB\-\-version\fR
77 print the version number
78 .TP
79 \fB\-V\fR, \fB\-\-verbose\fR
80 print progress information
81 .SH NOTES
82 The GNUNET_URI is typically obtained from
83 gnunet\-search. gnunet\-fs\-gtk can also be used instead of
84 gnunet\-download.  If you ever have to abort a download, you can at
85 any time continue it by re\-issuing gnunet\-download with the same
86 filename. In that case GNUnet will not download blocks again that are
87 already present. GNUnet's file\-encoding will ensure file integrity,
88 even if the existing file was not downloaded from GNUnet in the first
89 place. Temporary information will be appended to the target file until
90 the download is completed.
91 .SH SETTING ANONYMITY LEVEL
92 The \fB\-a\fR option can be used to specify additional anonymity
93 constraints. If set to 0, GNUnet will try to download the file as fast
94 as possible, including using non-anonymous methods.  If you set it to
95 1 (default), you use the standard anonymous routing algorithm (which
96 does not explicitly leak your identity).  However, a powerful
97 adversary may still be able to perform traffic analysis (statistics)
98 to over time infer data about your identity.  You can gain better
99 privacy by specifying a higher level of anonymity, which increases the
100 amount of cover traffic your own traffic will get, at the expense of
101 performance.  Note that your download performance is not only
102 determined by your own anonymity level, but also by the anonymity
103 level of the peers publishing the file.  So even if you download with
104 anonymity level 0, the peers publishing the data might be sharing with
105 a higher anonymity level, which in this case will determine
106 performance.  Also, peers that cache content in the network always use
107 anonymity level 1.
108 .PP
109 This option can be used to limit requests further than that. In
110 particular, you can require GNUnet to receive certain amounts of
111 traffic from other peers before sending your queries. This way, you
112 can gain very high levels of anonymity \- at the expense of much more
113 traffic and much higher latency. So set it only if you really believe
114 you need it.
115 .PP
116 The definition of ANONYMITY\-RECEIVE is the following.  0 means no
117 anonymity is required.  Otherwise a value of 'v' means that 1 out of v
118 bytes of "anonymous" traffic can be from the local user, leaving 'v-1'
119 bytes of cover traffic per byte on the wire.  Thus, if GNUnet routes n
120 bytes of messages from foreign peers (using anonymous routing), it may
121 originate n/(v-1) bytes of queries in the same time\-period. The
122 time\-period is twice the average delay that GNUnet defers forwarded
123 queries.
124 .PP
125 The default is 1 and this should be fine for most users.  Also notice
126 that if you choose very large values, you may end up having no
127 throughput at all, especially if many of your fellow GNUnet\-peers all
128 do the same.
129 .SH FILES
130 .TP
131 ~/.config/gnunet.conf
132 GNUnet configuration file
133 .SH BUGS
134 Report bugs to <https://bugs.gnunet.org/> or by sending electronic
135 mail to <gnunet\-developers@gnu.org>
136 .SH SEE ALSO
137 \fBgnunet\-fs\-gtk\fP(1), \fBgnunet\-publish\fP(1),
138 \fBgnunet\-search\fP(1), \fBgnunet.conf\fP(5),
139 \fBgnunet\-service\-fs\fP(1)
140 .PP
141 The full documentation for
142 .B gnunet
143 is maintained as a Texinfo manual.
144 If the
145 .B info
146 and
147 .B gnunet
148 programs are properly installed at your site, the command
149 .IP
150 .B info gnunet
151 .PP
152 should give you access to the complete handbook,
153 .IP
154 .B info gnunet-c-tutorial
155 .PP
156 will give you access to a tutorial for developers.
157 .PP
158 Depending on your installation, this information is also
159 available in
160 \fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7).