aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorNils Gillmann <ng0@n0.is>2018-05-04 19:57:38 +0000
committerNils Gillmann <ng0@n0.is>2018-05-04 19:57:38 +0000
commitc3c9fef22fa6e4657c3fc862bad365b440ee2305 (patch)
treea19406f086fd3a1c059c66b6916b78148f83d5bb /doc
parent295384b197a85ebfb1cb7bbe5d1b02af4c40d342 (diff)
downloadgnunet-c3c9fef22fa6e4657c3fc862bad365b440ee2305.tar.gz
gnunet-c3c9fef22fa6e4657c3fc862bad365b440ee2305.zip
Follow-up commit to format most of the other man pages code.
Signed-off-by: Nils Gillmann <ng0@n0.is>
Diffstat (limited to 'doc')
-rw-r--r--doc/man/gnunet-arm.128
-rw-r--r--doc/man/gnunet-ats.13
-rw-r--r--doc/man/gnunet-auto-share.160
-rw-r--r--doc/man/gnunet-bcd.17
-rw-r--r--doc/man/gnunet-config.110
-rw-r--r--doc/man/gnunet-conversation-test.19
-rw-r--r--doc/man/gnunet-conversation.110
-rw-r--r--doc/man/gnunet-core.17
-rw-r--r--doc/man/gnunet-datastore.15
-rw-r--r--doc/man/gnunet-directory.139
-rw-r--r--doc/man/gnunet-dns2gns.18
-rw-r--r--doc/man/gnunet-download-manager.112
-rw-r--r--doc/man/gnunet-download.1100
-rw-r--r--doc/man/gnunet-ecc.122
-rw-r--r--doc/man/gnunet-fs.121
-rw-r--r--doc/man/gnunet-gns-proxy.118
-rw-r--r--doc/man/gnunet-gns.125
-rw-r--r--doc/man/gnunet-identity.145
-rw-r--r--doc/man/gnunet-namecache.16
-rw-r--r--doc/man/gnunet-namestore-fcfsd.132
-rw-r--r--doc/man/gnunet-namestore.144
-rw-r--r--doc/man/gnunet-nat-auto.16
-rw-r--r--doc/man/gnunet-nat-server.143
-rw-r--r--doc/man/gnunet-nat.131
-rw-r--r--doc/man/gnunet-peerinfo.14
-rw-r--r--doc/man/gnunet-publish.1279
-rw-r--r--doc/man/gnunet-qr.13
-rw-r--r--doc/man/gnunet-resolver.13
-rw-r--r--doc/man/gnunet-revocation.138
-rw-r--r--doc/man/gnunet-scalarproduct.140
-rw-r--r--doc/man/gnunet-scrypt.13
-rw-r--r--doc/man/gnunet-search.173
-rw-r--r--doc/man/gnunet-statistics.118
-rw-r--r--doc/man/gnunet-testbed-profiler.14
-rw-r--r--doc/man/gnunet-testing-run-service.112
-rw-r--r--doc/man/gnunet-transport.115
-rw-r--r--doc/man/gnunet-unindex.15
-rw-r--r--doc/man/gnunet-uri.16
-rw-r--r--doc/man/gnunet-vpn.130
-rw-r--r--doc/man/gnunet-zoneimport.150
40 files changed, 900 insertions, 274 deletions
diff --git a/doc/man/gnunet-arm.1 b/doc/man/gnunet-arm.1
index b591f0ad7..099978f24 100644
--- a/doc/man/gnunet-arm.1
+++ b/doc/man/gnunet-arm.1
@@ -9,7 +9,10 @@ gnunet\-arm \- control GNUnet services
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-arm\fP can be used to start or stop GNUnet services, including the ARM service itself. The ARM service is a supervisor for GNUnet's service processes. ARM starts services on-demand or as configured and re-starts them if they crash. 12\fBgnunet\-arm\fP can be used to start or stop GNUnet services, including
13the ARM service itself. The ARM service is a supervisor for GNUnet's
14service processes. ARM starts services on-demand or as configured and
15re-starts them if they crash.
13 16
14.SH OPTIONS 17.SH OPTIONS
15.B 18.B
@@ -17,7 +20,8 @@ gnunet\-arm \- control GNUnet services
17Use the configuration file FILENAME. 20Use the configuration file FILENAME.
18.B 21.B
19.IP "\-e, \-\-end" 22.IP "\-e, \-\-end"
20Shutdown all GNUnet services (including ARM itself). Running "gnunet-arm \-e" is the usual way to shutdown a GNUnet peer. 23Shutdown all GNUnet services (including ARM itself). Running
24"gnunet-arm \-e" is the usual way to shutdown a GNUnet peer.
21.B 25.B
22.IP "\-h, \-\-help" 26.IP "\-h, \-\-help"
23Print short help on options. 27Print short help on options.
@@ -26,16 +30,25 @@ Print short help on options.
26Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 30Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
27.B 31.B
28.IP "\-i SERVICE, \-\-init=SERVICE" 32.IP "\-i SERVICE, \-\-init=SERVICE"
29Starts the specified SERVICE if it is not already running. More specifically, this makes the service behave as if it were in the default services list. 33Starts the specified SERVICE if it is not already running. More specifically,
34this makes the service behave as if it were in the default services list.
30.B 35.B
31.IP "\-k SERVICE, \-\-kill=SERVICE" 36.IP "\-k SERVICE, \-\-kill=SERVICE"
32Stop the specified SERVICE if it is running. While this will kill the service right now, the service may be restarted immediately if other services depend on it (service is then started 'on-demand'). If the service used to be a 'default' service, its default-service status will be revoked. If the service was not a default service, it will just be (temporarily) stopped, but could be re-started on-demand at any time. 37Stop the specified SERVICE if it is running. While this will kill the service
38right now, the service may be restarted immediately if other services depend
39on it (service is then started 'on-demand'). If the service used to be a 'default'
40service, its default-service status will be revoked. If the
41service was not a default service, it will just be (temporarily) stopped,
42but could be re-started on-demand at any time.
33.B 43.B
34.IP "\-m, \-\-monitor" 44.IP "\-m, \-\-monitor"
35Monitor service activity of ARM. In this mode, the command will not terminate until the user presses CTRL-C. 45Monitor service activity of ARM. In this mode, the command will not terminate
46until the user presses CTRL-C.
36.B 47.B
37.IP "\-s, \-\-start" 48.IP "\-s, \-\-start"
38Start all GNUnet default services on this system (and also ARM). Naturally, if a service is demanded by a default service, it will then also be started. Running "gnunet-arm \-s" is the usual way to start a GNUnet peer. 49Start all GNUnet default services on this system (and also ARM). Naturally,
50if a service is demanded by a default service, it will then also be started.
51Running "gnunet-arm \-s" is the usual way to start a GNUnet peer.
39.B 52.B
40.IP "\-I, \-\-info" 53.IP "\-I, \-\-info"
41List all running services. 54List all running services.
@@ -45,7 +58,8 @@ Print GNUnet version number.
45 58
46 59
47.SH BUGS 60.SH BUGS
48Report bugs by using Mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet\-developers@gnu.org> 61Report bugs by using Mantis <https://gnunet.org/bugs/> or by sending
62electronic mail to <gnunet\-developers@gnu.org>
49 63
50.SH SEE ALSO 64.SH SEE ALSO
51gnunet\-config(1), gnunet\-setup(1) 65gnunet\-config(1), gnunet\-setup(1)
diff --git a/doc/man/gnunet-ats.1 b/doc/man/gnunet-ats.1
index e0546f53e..cac55e79f 100644
--- a/doc/man/gnunet-ats.1
+++ b/doc/man/gnunet-ats.1
@@ -62,7 +62,8 @@ Print verbose output (include ATS address properties)
62Print GNUnet version number. 62Print GNUnet version number.
63 63
64.SH BUGS 64.SH BUGS
65Report bugs by using Mantis <https://gnunet.org/bugs/> or by sending electronic mail to <bug\-gnunet@gnu.org> 65Report bugs by using Mantis <https://gnunet.org/bugs/> or by sending
66electronic mail to <bug\-gnunet@gnu.org>
66 67
67.SH SEE ALSO 68.SH SEE ALSO
68gnunet\-transport(1) 69gnunet\-transport(1)
diff --git a/doc/man/gnunet-auto-share.1 b/doc/man/gnunet-auto-share.1
index dd3d93611..f655f6ccd 100644
--- a/doc/man/gnunet-auto-share.1
+++ b/doc/man/gnunet-auto-share.1
@@ -6,13 +6,22 @@ gnunet\-auto\-share \- a command line tool to automatically share an entire dire
6[\fIOPTIONS\fR] DIRNAME 6[\fIOPTIONS\fR] DIRNAME
7.SH DESCRIPTION 7.SH DESCRIPTION
8.PP 8.PP
9In order to share files with other GNUnet users, the files must first be made available to GNUnet. This tool can be used to automatically share all files from a certain directory. The program will periodically scan the directory for changes and publish files that are new or that changed on GNUnet. Which files have already been shared is remembered in a ".auto-share" file in the shared directory. You can run the tool by hand or automatically by adding the respective options to your configuration. gnunet\-auto\-share has many options in common with gnunet\-publish, but can only be used to index files. 9In order to share files with other GNUnet users, the files must first be made
10available to GNUnet. This tool can be used to automatically share all files
11from a certain directory. The program will periodically scan the directory
12for changes and publish files that are new or that changed on GNUnet.
13Which files have already been shared is remembered in a ".auto-share" file
14in the shared directory. You can run the tool by hand or automatically by
15adding the respective options to your configuration. gnunet\-auto\-share
16has many options in common with gnunet\-publish, but can only be used to
17index files.
10.PP 18.PP
11You can use automatic meta\-data extraction (based on libextractor). 19You can use automatic meta\-data extraction (based on libextractor).
12.PP 20.PP
13 21
14\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 22\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
15Use alternate config file (if this option is not specified, the default is ~/.config/gnunet.conf). 23Use alternate config file (if this option is not specified, the
24default is ~/.config/gnunet.conf).
16 25
17.TP 26.TP
18\fB\-D\fR, \fB\-\-disable\-extractor\fR 27\fB\-D\fR, \fB\-\-disable\-extractor\fR
@@ -31,11 +40,20 @@ ERROR, WARNING, INFO and DEBUG.
31\fB\-p \fIPRIORITY\fR, \fB\-\-prio=\fIPRIORITY\fR 40\fB\-p \fIPRIORITY\fR, \fB\-\-prio=\fIPRIORITY\fR
32Executive summary: You probably don't need it. 41Executive summary: You probably don't need it.
33 42
34Set the priority of the published content (default: 365). If the local database is full, GNUnet will discard the content with the lowest ranking. Note that ranks change over time depending on popularity. The default should be high enough to preserve the locally published content in favor of content that migrates from other peers. 43Set the priority of the published content (default: 365). If the local
44database is full, GNUnet will discard the content with the lowest ranking.
45Note that ranks change over time depending on popularity. The default
46should be high enough to preserve the locally published content in favor
47of content that migrates from other peers.
35 48
36.TP 49.TP
37\fB\-r \fILEVEL\fR, \fB\-\-replication=\fILEVEL\fR 50\fB\-r \fILEVEL\fR, \fB\-\-replication=\fILEVEL\fR
38Set the desired replication level. If CONTENT_PUSHING is set to YES, GNUnet will push each block (for the file) LEVEL times to other peers before doing normal "random" replication of all content. This option can be used to push some content out into the network harder. Note that pushing content LEVEL times into the network does not guarantee that there will actually be LEVEL replicas. 51Set the desired replication level. If CONTENT_PUSHING is set to YES, GNUnet
52will push each block (for the file) LEVEL times to other peers before doing
53normal "random" replication of all content. This option can be used to push
54some content out into the network harder. Note that pushing content LEVEL
55times into the network does not guarantee that there will actually be LEVEL
56replicas.
39 57
40.TP 58.TP
41\fB\-v\fR, \fB\-\-version\fR 59\fB\-v\fR, \fB\-\-version\fR
@@ -43,16 +61,38 @@ Print the version number.
43 61
44.TP 62.TP
45\fB\-V\fR, \fB\-\-verbose\fR 63\fB\-V\fR, \fB\-\-verbose\fR
46Be verbose. Using this option causes gnunet\-publish to print progress information and at the end the file identification that can be used to download the file from GNUnet. 64Be verbose. Using this option causes gnunet\-publish to print progress
65information and at the end the file identification that can be used to download
66the file from GNUnet.
47 67
48 68
49.SH SETTING ANONYMITY LEVEL 69.SH SETTING ANONYMITY LEVEL
50 70
51The \fB\-a\fR option can be used to specify additional anonymity constraints. If set to 0, GNUnet will publish the file non-anonymously and in fact sign the advertisement for the file using your peer's private key. This will allow other users to download the file as fast as possible, including using non-anonymous methods (DHT, direct transfer). If you set it to 1 (default), you use the standard anonymous routing algorithm (which does not explicitly leak your identity). However, a powerful adversary may still be able to perform traffic analysis (statistics) to over time infer data about your identity. You can gain better privacy by specifying a higher level of anonymity, which increases the amount of cover traffic your own traffic will get, at the expense of performance. Note that regardless of the anonymity level you choose, peers that cache content in the network always use anonymity level 1. 71The \fB\-a\fR option can be used to specify additional anonymity constraints.
52 72If set to 0, GNUnet will publish the file non-anonymously and in fact sign
53The definition of the ANONYMITY LEVEL is the following. 0 means no anonymity is required. Otherwise a value of 'v' means that 1 out of v bytes of "anonymous" traffic can be from the local user, leaving 'v-1' bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n bytes of messages from foreign peers (using anonymous routing), it may originate n/(v-1) bytes of data in the same time\-period. The time\-period is twice the average delay that GNUnet defers forwarded queries. 73the advertisement for the file using your peer's private key. This will
54 74allow other users to download the file as fast as possible, including using
55The default is 1 and this should be fine for most users. Also notice that if you choose very large values, you may end up having no throughput at all, especially if many of your fellow GNUnet\-peers all do the same. 75non-anonymous methods (DHT, direct transfer). If you set it to 1 (default),
76you use the standard anonymous routing algorithm (which does not explicitly
77leak your identity). However, a powerful adversary may still be able to
78perform traffic analysis (statistics) to over time infer data about your
79identity. You can gain better privacy by specifying a higher level of
80anonymity, which increases the amount of cover traffic your own traffic will
81get, at the expense of performance. Note that regardless of the anonymity
82level you choose, peers that cache content in the network always use anonymity
83level 1.
84
85The definition of the ANONYMITY LEVEL is the following. 0 means no anonymity
86is required. Otherwise a value of 'v' means that 1 out of v bytes of "anonymous"
87traffic can be from the local user, leaving 'v-1' bytes of cover traffic per
88byte on the wire. Thus, if GNUnet routes n bytes of messages from foreign
89peers (using anonymous routing), it may originate n/(v-1) bytes of data in
90the same time\-period. The time\-period is twice the average delay that
91GNUnet defers forwarded queries.
92
93The default is 1 and this should be fine for most users. Also notice that if
94you choose very large values, you may end up having no throughput at all,
95especially if many of your fellow GNUnet\-peers all do the same.
56 96
57 97
58.SH EXAMPLES 98.SH EXAMPLES
diff --git a/doc/man/gnunet-bcd.1 b/doc/man/gnunet-bcd.1
index 3f695c072..f23196687 100644
--- a/doc/man/gnunet-bcd.1
+++ b/doc/man/gnunet-bcd.1
@@ -9,7 +9,12 @@ gnunet\-bcd \- run HTTP server to create GNS business cards
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-bcd\fP can be used to create an business card with a QR code containing the public key of a zone from the GNU Name System. gnunet\-bcd requires LaTeX (pdflatex) with various packages to be installed. If it does not work for you, try installing the full TeXLive distribution first (i.e. "apt-get install texlive-full"). 12\fBgnunet\-bcd\fP can be used to create an business card with a QR code
13containing the public key of a zone from the GNU Name System.
14gnunet\-bcd requires LaTeX (pdflatex) with various packages to be
15installed. If it does not work for you, try installing the full
16TeXLive distribution first, for example using the package\-manager
17apt: "apt-get install texlive-full".
13 18
14.SH OPTIONS 19.SH OPTIONS
15.B 20.B
diff --git a/doc/man/gnunet-config.1 b/doc/man/gnunet-config.1
index d309e7fa0..74839ee0e 100644
--- a/doc/man/gnunet-config.1
+++ b/doc/man/gnunet-config.1
@@ -14,7 +14,8 @@ gnunet\-config \- manipulate GNUnet configuration files
14.SH OPTIONS 14.SH OPTIONS
15.B 15.B
16.IP "\-f, \-\-filename" 16.IP "\-f, \-\-filename"
17When accessing a specific option using \-s and \-o, perform expansions as if the value represents a filename. 17When accessing a specific option using \-s and \-o, perform expansions as if the
18value represents a filename.
18.B 19.B
19.IP "\-s SECTION, \-\-section=SECTION" 20.IP "\-s SECTION, \-\-section=SECTION"
20Which configuration section should be accessed or edited. Required option. 21Which configuration section should be accessed or edited. Required option.
@@ -26,10 +27,13 @@ List available configuration sections for use with \-\-section.
26Consider differences to defaults only. 27Consider differences to defaults only.
27.B 28.B
28.IP "\-o OPTION, \-\-option=OPTION" 29.IP "\-o OPTION, \-\-option=OPTION"
29Which configuration option should be accessed or edited. Required to set a value. If not given, all values of a given section will be printed in the format "OPTION = VALUE". 30Which configuration option should be accessed or edited. Required to set a value.
31If not given, all values of a given section will be printed in the
32format "OPTION = VALUE".
30.B 33.B
31.IP "\-V VALUE, \-\-value VALUE" 34.IP "\-V VALUE, \-\-value VALUE"
32Configuration value to store in the given section under the given option. Must only be given together with \-s and \-o options. 35Configuration value to store in the given section under the given option.
36Must only be given together with \-s and \-o options.
33.B 37.B
34.IP "\-c FILENAME, \-\-config=FILENAME" 38.IP "\-c FILENAME, \-\-config=FILENAME"
35Use the configuration file FILENAME. 39Use the configuration file FILENAME.
diff --git a/doc/man/gnunet-conversation-test.1 b/doc/man/gnunet-conversation-test.1
index fa1b8d855..3cda104df 100644
--- a/doc/man/gnunet-conversation-test.1
+++ b/doc/man/gnunet-conversation-test.1
@@ -9,9 +9,14 @@ gnunet\-conversation\-test \- check your speaker and microphone settings
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-conversation\-test\fP can be used to check your speaker and microphone settings. It will record you for five seconds and then play the recording back to you. If this fails, you might want to use the \fBpavucontrol\fP tool to check which microphone or speaker were assigned to GNUnet by PulseAudio (you may have more than one set of microphones or speakers known to your computer). 12\fBgnunet\-conversation\-test\fP can be used to check your speaker and microphone
13settings. It will record you for five seconds and then play the recording back
14to you. If this fails, you might want to use the \fBpavucontrol\fP tool to
15check which microphone or speaker were assigned to GNUnet by PulseAudio (you
16may have more than one set of microphones or speakers known to your computer).
13 17
14You can use gnunet\-conversation\-test without having a peer running on your computer. 18You can use gnunet\-conversation\-test without having a peer running on your
19computer.
15 20
16.SH OPTIONS 21.SH OPTIONS
17.B 22.B
diff --git a/doc/man/gnunet-conversation.1 b/doc/man/gnunet-conversation.1
index 912d2a17e..ae2523f82 100644
--- a/doc/man/gnunet-conversation.1
+++ b/doc/man/gnunet-conversation.1
@@ -9,7 +9,11 @@ gnunet\-conversation \- have a conversation with your peers
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-conversation\fP can be used to have a conversation with other GNUnet users. You can make calls and receive incoming calls. You need to setup an ego using gnunet\-identity first. For others to be able to call you, you must add a PHONE record to your zone in the GNU Name System (using gnunet\-namestore). gnunet\-conversation has an interactive help system via the /help command. 12\fBgnunet\-conversation\fP can be used to have a conversation with other GNUnet
13users. You can make calls and receive incoming calls. You need to setup an
14ego using gnunet\-identity first. For others to be able to call you, you must
15add a PHONE record to your zone in the GNU Name System (using gnunet\-namestore).
16gnunet\-conversation has an interactive help system via the /help command.
13 17
14.SH OPTIONS 18.SH OPTIONS
15.B 19.B
@@ -26,7 +30,9 @@ Print short help on options.
26Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 30Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
27.B 31.B
28.IP "\-p LINE, \-\-phone=LINE" 32.IP "\-p LINE, \-\-phone=LINE"
29Optional argument that can be used to specify the phone LINE to be used with the conversation service. The default LINE is zero, which should be fine for most users. 33Optional argument that can be used to specify the phone LINE to be used with
34the conversation service. The default LINE is zero, which should be fine
35for most users.
30.B 36.B
31.IP "\-v, \-\-version" 37.IP "\-v, \-\-version"
32Print GNUnet version number. 38Print GNUnet version number.
diff --git a/doc/man/gnunet-core.1 b/doc/man/gnunet-core.1
index e2ada055a..2ed3df880 100644
--- a/doc/man/gnunet-core.1
+++ b/doc/man/gnunet-core.1
@@ -8,7 +8,9 @@ gnunet\-core \- monitor CORE subsystem
8.SH DESCRIPTION 8.SH DESCRIPTION
9.PP 9.PP
10 10
11gnunet\-core is a tool to access various functions of GNUnet's core subsystem from the command\-line. The only function right now is to monitor the status of peers known to the CORE service. 11gnunet\-core is a tool to access various functions of GNUnet's core subsystem
12from the command\-line. The only function right now is to monitor the status
13of peers known to the CORE service.
12 14
13.TP 15.TP
14\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 16\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
@@ -21,7 +23,8 @@ print help page
21Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG. 23Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG.
22.TP 24.TP
23\fB\-m\fR, \fB\-\-monitor\fR 25\fB\-m\fR, \fB\-\-monitor\fR
24in monitor mode, gnunet\-core will continuously print the connection status, instead of giving just a snapshot 26in monitor mode, gnunet\-core will continuously print the connection status,
27instead of giving just a snapshot
25.TP 28.TP
26\fB\-v\fR, \fB\-\-version\fR 29\fB\-v\fR, \fB\-\-version\fR
27print the version number 30print the version number
diff --git a/doc/man/gnunet-datastore.1 b/doc/man/gnunet-datastore.1
index 1605006b3..6bba7fb47 100644
--- a/doc/man/gnunet-datastore.1
+++ b/doc/man/gnunet-datastore.1
@@ -8,7 +8,10 @@ gnunet\-datastore \- dump or insert (restore) GNUnet datastore databases
8.SH DESCRIPTION 8.SH DESCRIPTION
9.PP 9.PP
10 10
11gnunet\-datastore can be used to backup and restore or merge GNUnet datastores. This is useful if a datastore is to be migrated between SQL databases, i.e. from sqlite to postgres or vice versa. gnunet\-datastore will dump the entire contents of the database or insert a dump file into the database. 11gnunet\-datastore can be used to backup and restore or merge GNUnet datastores.
12This is useful if a datastore is to be migrated between SQL databases, i.e.
13from sqlite to postgres or vice versa. gnunet\-datastore will dump the
14entire contents of the database or insert a dump file into the database.
12 15
13.TP 16.TP
14\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 17\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
diff --git a/doc/man/gnunet-directory.1 b/doc/man/gnunet-directory.1
index 373e171f1..9a44be244 100644
--- a/doc/man/gnunet-directory.1
+++ b/doc/man/gnunet-directory.1
@@ -7,10 +7,14 @@ gnunet\-directory \- display directories
7[\fIOPTIONS\fR] (FILENAME)* 7[\fIOPTIONS\fR] (FILENAME)*
8.SH DESCRIPTION 8.SH DESCRIPTION
9.PP 9.PP
10gnunet\-directory lists the contents of one or more GNUnet directories. A GNUnet directory is a binary file that contains a list of GNUnet file\-sharing URIs and meta data. The names of the directory files must be passed as command\-line arguments to gnunet\-directory. 10gnunet\-directory lists the contents of one or more GNUnet directories.
11A GNUnet directory is a binary file that contains a list of GNUnet
12file\-sharing URIs and meta data. The names of the directory files must
13be passed as command\-line arguments to gnunet\-directory.
11.TP 14.TP
12\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 15\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
13configuration file to use (useless option since gnunet\-directory does not really depend on any configuration options) 16configuration file to use (useless option since gnunet\-directory does not
17really depend on any configuration options)
14.TP 18.TP
15\fB\-h\fR, \fB\-\-help\fR 19\fB\-h\fR, \fB\-\-help\fR
16print help page 20print help page
@@ -21,13 +25,36 @@ Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and
21\fB\-v\fR, \fB\-\-version\fR 25\fB\-v\fR, \fB\-\-version\fR
22print the version number 26print the version number
23.SH NOTES 27.SH NOTES
24A GNUnet directory is a file containing a list of GNUnet URIs and meta data. The keys can point to files, other directories or files in namespaces. In other words, a GNUnet directory is similar to UNIX directories. The difference to tar and zip is that GNUnet directory does not contain the actual files (except if they are really small, in which case they may be inlined), just symbolic (links), similar to directories with symbolic links in UNIX filesystems. The benefit is that the individual files can be retrieved separately (if desired) and if some of the files are inserted to another node in GNUnet, this just increases their availability but does not produce useless duplicates (for example, it is a better idea to publish a collection of pictures or compressed sound files using a GNUnet directory instead of processing them with archivers such as tar or zip first). Directories can contain arbitrary meta data for each file. 28A GNUnet directory is a file containing a list of GNUnet URIs and meta data.
29The keys can point to files, other directories or files in namespaces. In other
30words, a GNUnet directory is similar to UNIX directories. The difference to tar
31and zip is that GNUnet directory does not contain the actual files (except if
32they are really small, in which case they may be inlined), just symbolic (links),
33similar to directories with symbolic links in UNIX filesystems. The benefit is
34that the individual files can be retrieved separately (if desired) and if some
35of the files are inserted to another node in GNUnet, this just increases their
36availability but does not produce useless duplicates (for example, it is a
37better idea to publish a collection of pictures or compressed sound files
38using a GNUnet directory instead of processing them with archivers such as
39tar or zip first). Directories can contain arbitrary meta data for each file.
25 40
26If a directory has missing blocks (for example, some blocks failed to download), GNUnet is typically able to retrieve information about other files in the directory. Files in a GNUnet directory have no particular order; the GNUnet code that generates a directory can reorder the entries in order to better fit the information about files into blocks of 32k. Respecting 32k boundaries where possible makes it easier for gnunet\-directory (and other tools) to recover information from partially downloaded directory files. 41If a directory has missing blocks (for example, some blocks failed to download),
42GNUnet is typically able to retrieve information about other files in the
43directory. Files in a GNUnet directory have no particular order; the GNUnet
44code that generates a directory can reorder the entries in order to better
45fit the information about files into blocks of 32k. Respecting 32k boundaries
46where possible makes it easier for gnunet\-directory (and other tools) to
47recover information from partially downloaded directory files.
27 48
28At the moment, directories can be created by \fBgnunet\-fs\-gtk\fP and \fBgnunet\-publish\fP. Just like ordinary files, a directory can be published in a namespace. 49At the moment, directories can be created by \fBgnunet\-fs\-gtk\fP
50and \fBgnunet\-publish\fP. Just like ordinary files, a directory can be
51published in a namespace.
29 52
30GNUnet directories use the (unregistered) mimetype \fBapplication/gnunet\-directory\fP. They can show up among normal search results. The directory file can be downloaded to disk by \fBgnunet\-download\fP(1) for later processing or be handled more directly by \fBgnunet\-fs\-gtk\fP(1). 53GNUnet directories use the (unregistered)
54mimetype \fBapplication/gnunet\-directory\fP. They can show up among normal
55search results. The directory file can be downloaded to disk
56by \fBgnunet\-download\fP(1) for later processing or be handled more directly
57by \fBgnunet\-fs\-gtk\fP(1).
31 58
32.SH "REPORTING BUGS" 59.SH "REPORTING BUGS"
33Report bugs by using mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet\-developers@gnu.org> 60Report bugs by using mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet\-developers@gnu.org>
diff --git a/doc/man/gnunet-dns2gns.1 b/doc/man/gnunet-dns2gns.1
index 04fcb7f53..e04901062 100644
--- a/doc/man/gnunet-dns2gns.1
+++ b/doc/man/gnunet-dns2gns.1
@@ -9,9 +9,13 @@ gnunet\-dns2gns \- run a DNS-to-GNS proxy
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12Most users will not want to run an DNS to GNS proxy/gateway and thus will not need this program. 12Most users will not want to run an DNS to GNS proxy/gateway and thus will not
13need this program.
13 14
14\fBgnunet\-dns2gns\fP runs a DNS resolver which delegates requests GNS if the TLD matches one configured for GNS. All other requests are forwarded to DNS. This DNS proxy is useful for enabling non-personalized GNS\-resolution to an entire network or to offer GNS\-resolution to DNS users. 15\fBgnunet\-dns2gns\fP runs a DNS resolver which delegates requests GNS if
16the TLD matches one configured for GNS. All other requests are forwarded
17to DNS. This DNS proxy is useful for enabling non-personalized
18GNS\-resolution to an entire network or to offer GNS\-resolution to DNS users.
15 19
16.SH OPTIONS 20.SH OPTIONS
17.B 21.B
diff --git a/doc/man/gnunet-download-manager.1 b/doc/man/gnunet-download-manager.1
index 844f81084..ec1f7538a 100644
--- a/doc/man/gnunet-download-manager.1
+++ b/doc/man/gnunet-download-manager.1
@@ -9,13 +9,19 @@ gnunet-download-manager \- manage downloads across sessions
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-download\-manager\fP is a script that can be used to track download sessions. It makes the process of resuming downloads after a system reboot easier. A typical use is to define an alias (depending on your shell) of the form 12\fBgnunet\-download\-manager\fP is a script that can be used to track
13download sessions. It makes the process of resuming downloads after a
14system reboot easier. A typical use is to define an alias (depending
15on your shell) of the form
13 16
14$ alias gnunet\-download='gnunet\-download\-manager.scm download' 17$ alias gnunet\-download='gnunet\-download\-manager.scm download'
15 18
16Other commands for the download manager include resume (resumes all downloads), status (show status of pending downloads), killall (abort all downloads), settings (for configuration) and help (print help text). 19Other commands for the download manager include resume (resumes all
20downloads), status (show status of pending downloads), killall (abort
21all downloads), settings (for configuration) and help (print help text).
17 22
18gnunet\-download\-manager is a scheme script and will only work if guile is available. 23gnunet\-download\-manager is a scheme script and will only work if Guile
24is available.
19 25
20.SH BUGS 26.SH BUGS
21Report bugs by using mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet-developers@gnu.org> 27Report bugs by using mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet-developers@gnu.org>
diff --git a/doc/man/gnunet-download.1 b/doc/man/gnunet-download.1
index 759b3a964..824c2414d 100644
--- a/doc/man/gnunet-download.1
+++ b/doc/man/gnunet-download.1
@@ -18,7 +18,12 @@ use config file (defaults: ~/.config/gnunet.conf)
18 18
19.TP 19.TP
20\fB\-D, \fB\-\-delete\-incomplete\fR 20\fB\-D, \fB\-\-delete\-incomplete\fR
21causes gnunet\-download to delete incomplete downloads when aborted with CTRL\-C. Note that complete files that are part of an incomplete recursive download will not be deleted even with this option. Without this option, terminating gnunet\-download with a signal will cause incomplete downloads to stay on disk. If gnunet\-download runs to (normal) completion finishing the download, this option has no effect. 21causes gnunet\-download to delete incomplete downloads when aborted with
22CTRL\-C. Note that complete files that are part of an incomplete recursive
23download will not be deleted even with this option. Without this option,
24terminating gnunet\-download with a signal will cause incomplete
25downloads to stay on disk. If gnunet\-download runs to (normal) completion
26finishing the download, this option has no effect.
22 27
23.TP 28.TP
24\fB\-h\fR, \fB\-\-help\fR 29\fB\-h\fR, \fB\-\-help\fR
@@ -35,19 +40,49 @@ Only search locally, do not forward requests to other peers.
35 40
36.TP 41.TP
37\fB\-o \fIFILENAME\fR, \fB\-\-output=FILENAME\fR 42\fB\-o \fIFILENAME\fR, \fB\-\-output=FILENAME\fR
38write the file to FILENAME. Hint: when recursively downloading a directory, append a '/' to the end of the FILENAME to create a directory of that name. If no FILENAME is specified, gnunet\-download constructs a temporary ID from the URI of the file. The final filename is constructed based on meta\-data extracted using libextractor (if available). 43write the file to FILENAME. Hint: when recursively downloading a directory,
44append a '/' to the end of the FILENAME to create a directory of that name.
45If no FILENAME is specified, gnunet\-download constructs a temporary ID from
46the URI of the file. The final filename is constructed based on meta\-data
47extracted using libextractor (if available).
39 48
40.TP 49.TP
41\fB\-p \fIDOWNLOADS\fR, \fB\-\-parallelism=DOWNLOADS\fR 50\fB\-p \fIDOWNLOADS\fR, \fB\-\-parallelism=DOWNLOADS\fR
42set the maximum number of parallel downloads that is allowed. More parallel downloads can, to some extent, improve the overall time to download content. However, parallel downloads also take more memory (see also option \-r which can be used to limit memory utilization) and more sockets. This option is used to limit the number of files that are downloaded in parallel (\-r can be used to limit the number of blocks that are concurrently requested). As a result, the value only matters for recursive downloads. The default value is 32. 51set the maximum number of parallel downloads that is allowed. More parallel
52downloads can, to some extent, improve the overall time to download content.
53However, parallel downloads also take more memory (see also option \-r which
54can be used to limit memory utilization) and more sockets. This option is
55used to limit the number of files that are downloaded in parallel (\-r can
56be used to limit the number of blocks that are concurrently requested).
57As a result, the value only matters for recursive downloads.
58The default value is 32.
43 59
44.TP 60.TP
45\fB\-r \fIREQUESTS\fR, \fB\-\-request-parallelism=REQUESTS\fR 61\fB\-r \fIREQUESTS\fR, \fB\-\-request-parallelism=REQUESTS\fR
46set the maximum number of parallel requests that is allowed. If multiple files are downloaded, gnunet\-download will not run them in parallel if this would cause the number of pending requests to possibly exceed the given value. This is useful since, for example, downloading dozens of multi\-gigabyte files in parallel could exhaust memory resources and would hardly improve performance. Note that the limit only applies to this specific process and that other download activities by other processes are not included in this limit. Consider raising this limit for large recursive downloads with many large files if memory and network bandwidth are not fully utilized and if the parallelism limit (\-p option) is not reached. This option also only matters for recursive downloads. The default value is 4092. 62set the maximum number of parallel requests that is allowed. If multiple
63files are downloaded, gnunet\-download will not run them in parallel if
64this would cause the number of pending requests to possibly exceed the
65given value. This is useful since, for example, downloading dozens of
66multi\-gigabyte files in parallel could exhaust memory resources and would
67hardly improve performance. Note that the limit only applies to this
68specific process and that other download activities by other processes
69are not included in this limit. Consider raising this limit for large
70recursive downloads with many large files if memory and network
71bandwidth are not fully utilized and if the parallelism limit (\-p option)
72is not reached. This option also only matters for recursive downloads.
73The default value is 4092.
47 74
48.TP 75.TP
49\fB\-R\fR, \fB\-\-recursive\fR 76\fB\-R\fR, \fB\-\-recursive\fR
50download directories recursively (and in parallel). Note that the URI must belong to a GNUnet directory and that the filename given to "\-o" must end in '.gnd' \-\- otherwise, you will receive an error. You may want to use "DIRNAME/.gnd" for the filename, this way a directory "DIRNAME/" will be created, and GNUnet's internal directory information will be stored in "DIRNAME/.gnd". However, it is also possible to specify "DIRNAME.gnd", in which case the files from the directory will end up in "DIRNAME/", while GNUnet's directory meta data will be in "DIRNAME.gnd". 77download directories recursively (and in parallel). Note that the URI
78must belong to a GNUnet directory and that the filename given to "\-o"
79must end in '.gnd' \-\- otherwise, you will receive an error. You may
80want to use "DIRNAME/.gnd" for the filename, this way a directory
81"DIRNAME/" will be created, and GNUnet's internal directory
82information will be stored in "DIRNAME/.gnd". However, it is also
83possible to specify "DIRNAME.gnd", in which case the files from the
84directory will end up in "DIRNAME/", while GNUnet's directory meta
85data will be in "DIRNAME.gnd".
51 86
52.TP 87.TP
53\fB\-v\fR, \fB\-\-version\fR 88\fB\-v\fR, \fB\-\-version\fR
@@ -58,18 +93,55 @@ print the version number
58print progress information 93print progress information
59 94
60.SH NOTES 95.SH NOTES
61The GNUNET_URI is typically obtained from gnunet\-search. gnunet\-fs\-gtk can also be used instead of gnunet\-download. 96The GNUNET_URI is typically obtained from
62If you ever have to abort a download, you can at any time continue it by re\-issuing gnunet\-download with the same filename. In that case GNUnet will not download blocks again that are already present. GNUnet's file\-encoding will ensure file integrity, even if the existing file was not downloaded from GNUnet in the first place. Temporary information will be appended to the target file until the download is completed. 97gnunet\-search. gnunet\-fs\-gtk can also be used instead of
98gnunet\-download. If you ever have to abort a download, you can at
99any time continue it by re\-issuing gnunet\-download with the same
100filename. In that case GNUnet will not download blocks again that are
101already present. GNUnet's file\-encoding will ensure file integrity,
102even if the existing file was not downloaded from GNUnet in the first
103place. Temporary information will be appended to the target file until
104the download is completed.
63 105
64.SH SETTING ANONYMITY LEVEL 106.SH SETTING ANONYMITY LEVEL
65 107
66The \fB\-a\fR option can be used to specify additional anonymity constraints. If set to 0, GNUnet will try to download the file as fast as possible, including using non-anonymous methods. If you set it to 1 (default), you use the standard anonymous routing algorithm (which does not explicitly leak your identity). However, a powerful adversary may still be able to perform traffic analysis (statistics) to over time infer data about your identity. You can gain better privacy by specifying a higher level of anonymity, which increases the amount of cover traffic your own traffic will get, at the expense of performance. Note that your download performance is not only determined by your own anonymity level, but also by the anonymity level of the peers publishing the file. So even if you download with anonymity level 0, the peers publishing the data might be sharing with a higher anonymity level, which in this case will determine performance. Also, peers that cache content in the network always use anonymity level 1. 108The \fB\-a\fR option can be used to specify additional anonymity
67 109constraints. If set to 0, GNUnet will try to download the file as fast
68This option can be used to limit requests further than that. In particular, you can require GNUnet to receive certain amounts of traffic from other peers before sending your queries. This way, you can gain very high levels of anonymity \- at the expense of much more traffic and much higher latency. So set it only if you really believe you need it. 110as possible, including using non-anonymous methods. If you set it to
69 1111 (default), you use the standard anonymous routing algorithm (which
70The definition of ANONYMITY\-RECEIVE is the following. 0 means no anonymity is required. Otherwise a value of 'v' means that 1 out of v bytes of "anonymous" traffic can be from the local user, leaving 'v-1' bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n bytes of messages from foreign peers (using anonymous routing), it may originate n/(v-1) bytes of queries in the same time\-period. The time\-period is twice the average delay that GNUnet defers forwarded queries. 112does not explicitly leak your identity). However, a powerful
71 113adversary may still be able to perform traffic analysis (statistics)
72The default is 1 and this should be fine for most users. Also notice that if you choose very large values, you may end up having no throughput at all, especially if many of your fellow GNUnet\-peers all do the same. 114to over time infer data about your identity. You can gain better
115privacy by specifying a higher level of anonymity, which increases the
116amount of cover traffic your own traffic will get, at the expense of
117performance. Note that your download performance is not only
118determined by your own anonymity level, but also by the anonymity
119level of the peers publishing the file. So even if you download with
120anonymity level 0, the peers publishing the data might be sharing with
121a higher anonymity level, which in this case will determine
122performance. Also, peers that cache content in the network always use
123anonymity level 1.
124
125This option can be used to limit requests further than that. In
126particular, you can require GNUnet to receive certain amounts of
127traffic from other peers before sending your queries. This way, you
128can gain very high levels of anonymity \- at the expense of much more
129traffic and much higher latency. So set it only if you really believe
130you need it.
131
132The definition of ANONYMITY\-RECEIVE is the following. 0 means no
133anonymity is required. Otherwise a value of 'v' means that 1 out of v
134bytes of "anonymous" traffic can be from the local user, leaving 'v-1'
135bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n
136bytes of messages from foreign peers (using anonymous routing), it may
137originate n/(v-1) bytes of queries in the same time\-period. The
138time\-period is twice the average delay that GNUnet defers forwarded
139queries.
140
141The default is 1 and this should be fine for most users. Also notice
142that if you choose very large values, you may end up having no
143throughput at all, especially if many of your fellow GNUnet\-peers all
144do the same.
73 145
74.SH FILES 146.SH FILES
75.TP 147.TP
diff --git a/doc/man/gnunet-ecc.1 b/doc/man/gnunet-ecc.1
index 910687f1f..22a3c5d44 100644
--- a/doc/man/gnunet-ecc.1
+++ b/doc/man/gnunet-ecc.1
@@ -9,21 +9,30 @@ gnunet\-ecc \- manipulate GNUnet ECC key files
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-ecc\fP can be used to create an ECC private key and to print the corresponding public key. You must specify a filename containing an ECC private key in GNUnet format as an argument. If the file does not exist, gnunet\-ecc will create a key. This may then take a while. If the option \-p is given, the corresponding public key will be printed to the console. 12\fBgnunet\-ecc\fP can be used to create an ECC private key and to
13print the corresponding public key. You must specify a filename
14containing an ECC private key in GNUnet format as an argument. If the
15file does not exist, gnunet\-ecc will create a key. This may then
16take a while. If the option \-p is given, the corresponding public
17key will be printed to the console.
13 18
14.SH OPTIONS 19.SH OPTIONS
15.B 20.B
16.IP "\-g COUNT, \-\-generate-keys=COUNT" 21.IP "\-g COUNT, \-\-generate-keys=COUNT"
17Create COUNT public-private key pairs and write them to FILENAME. Used for creating a file for testing. 22Create COUNT public-private key pairs and write them to FILENAME.
23Used for creating a file for testing.
18.B 24.B
19.IP "\-p, \-\-print-public-key" 25.IP "\-p, \-\-print-public-key"
20Print the corresponding public key to stdout. This is the value used for PKEY records in GNS. 26Print the corresponding public key to stdout. This is the value used
27for PKEY records in GNS.
21.B 28.B
22.IP "\-P, \-\-print-private-key" 29.IP "\-P, \-\-print-private-key"
23Print the corresponding private key to stdout. This is the value used for PKEY records in GNS. 30Print the corresponding private key to stdout. This is the value used
31for PKEY records in GNS.
24.B 32.B
25.IP "\-x, \-\-print-hex" 33.IP "\-x, \-\-print-hex"
26Print the corresponding public key to stdout in HEX format. Useful for comparing to Ed25519 keys in X.509 tools. 34Print the corresponding public key to stdout in HEX format. Useful
35for comparing to Ed25519 keys in X.509 tools.
27.B 36.B
28.IP "\-c FILENAME, \-\-config=FILENAME" 37.IP "\-c FILENAME, \-\-config=FILENAME"
29Use the configuration file FILENAME. 38Use the configuration file FILENAME.
@@ -32,7 +41,8 @@ Use the configuration file FILENAME.
32Print short help on options. 41Print short help on options.
33.B 42.B
34.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 43.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
35Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 44Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
45ERROR.
36.B 46.B
37.IP "\-v, \-\-version" 47.IP "\-v, \-\-version"
38Print GNUnet version number. 48Print GNUnet version number.
diff --git a/doc/man/gnunet-fs.1 b/doc/man/gnunet-fs.1
index 65f104d61..dfdaabbdb 100644
--- a/doc/man/gnunet-fs.1
+++ b/doc/man/gnunet-fs.1
@@ -8,7 +8,11 @@ gnunet\-fs \- measure and control the fs subsystem
8.SH DESCRIPTION 8.SH DESCRIPTION
9.PP 9.PP
10 10
11gnunet\-fs is a tool to access various functions of GNUnet's fs subsystem from the command\-line. Most of these are not expected to be useful for end-users. gnunet\-fs can currently only be used to obtain a list of indexed files. Other functions should be added in the near future. 11gnunet\-fs is a tool to access various functions of GNUnet's fs
12subsystem from the command\-line. Most of these are not expected to
13be useful for end-users. gnunet\-fs can currently only be used to
14obtain a list of indexed files. Other functions should be added in
15the near future.
12 16
13.TP 17.TP
14\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 18\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
@@ -17,17 +21,16 @@ configuration file to use
17\fB\-h\fR, \fB\-\-help\fR 21\fB\-h\fR, \fB\-\-help\fR
18print help page 22print help page
19.TP 23.TP
20\fB\-i\fR, \fB\-\-list-indexed\fR 24\fB\-i\fR, \fB\-\-list-indexed\fR print information about files that
21print information about files that are currently indexed by file-sharing 25are currently indexed by file-sharing
22.TP 26.TP
23\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=LOGLEVEL\fR 27\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=LOGLEVEL\fR Change the
24Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG. 28loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and
29DEBUG.
25.TP 30.TP
26\fB\-v\fR, \fB\-\-version\fR 31\fB\-v\fR, \fB\-\-version\fR print the version number
27print the version number
28.TP 32.TP
29\fB\-V\fR, \fB\-\-verbose\fR 33\fB\-V\fR, \fB\-\-verbose\fR be verbose
30be verbose
31 34
32 35
33.SH BUGS 36.SH BUGS
diff --git a/doc/man/gnunet-gns-proxy.1 b/doc/man/gnunet-gns-proxy.1
index 9b9f603bd..96e9911a2 100644
--- a/doc/man/gnunet-gns-proxy.1
+++ b/doc/man/gnunet-gns-proxy.1
@@ -9,9 +9,15 @@ gnunet\-gns\-proxy \- run a client side GNS SOCKS proxy
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12Most users will want to run this SOCKS proxy. It can be used in combination with browsers that support the SOCKS 4a protocol. 12Most users will want to run this SOCKS proxy. It can be used in
13combination with browsers that support the SOCKS 4a protocol.
13 14
14The proxy will perform SSL authentication of GNS names and rewrite GNS enabled HTML content. To assert the validity of GNS names a local root CA certificate has to be generated that is used by the proxy. Thus "gnunet-gns-proxy-setup-ca" should be executed before the first launch of this proxy or the \-\-authority switch is used to specify an appropriate CA certificate that is already trusted by the browser. 15The proxy will perform SSL authentication of GNS names and rewrite GNS
16enabled HTML content. To assert the validity of GNS names a local root
17CA certificate has to be generated that is used by the proxy. Thus
18"gnunet-gns-proxy-setup-ca" should be executed before the first launch
19of this proxy or the \-\-authority switch is used to specify an
20appropriate CA certificate that is already trusted by the browser.
15 21
16.SH OPTIONS 22.SH OPTIONS
17.B 23.B
@@ -19,7 +25,10 @@ The proxy will perform SSL authentication of GNS names and rewrite GNS enabled H
19Use the configuration file FILENAME. 25Use the configuration file FILENAME.
20.B 26.B
21.IP "\-a AUTHORITY, \-\-authority=AUTHORITY" 27.IP "\-a AUTHORITY, \-\-authority=AUTHORITY"
22Path to a PEM CA file that contains the certificate and private key of the CA to use to assert the validity of GNS names. The default port is specified in the configuration file for the gns service under "[gns-proxy]" PROXY_CACERT. 28Path to a PEM CA file that contains the certificate and private key of
29the CA to use to assert the validity of GNS names. The default port is
30specified in the configuration file for the gns service under
31"[gns-proxy]" PROXY_CACERT.
23.B 32.B
24.IP "\-p PORT, \-\-port=PORT" 33.IP "\-p PORT, \-\-port=PORT"
25The port this proxy should listen on. Default is 7777. 34The port this proxy should listen on. Default is 7777.
@@ -28,7 +37,8 @@ The port this proxy should listen on. Default is 7777.
28Print short help on options. 37Print short help on options.
29.B 38.B
30.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 39.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
31Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 40Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
41ERROR.
32.B 42.B
33.IP "\-v, \-\-version" 43.IP "\-v, \-\-version"
34Print GNUnet version number. 44Print GNUnet version number.
diff --git a/doc/man/gnunet-gns.1 b/doc/man/gnunet-gns.1
index 4d52cfa97..9466dae03 100644
--- a/doc/man/gnunet-gns.1
+++ b/doc/man/gnunet-gns.1
@@ -9,7 +9,8 @@ gnunet\-gns \- Access to GNU Name System
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-gns\fP can be used to lookup and process GNU Name Service names. 12\fBgnunet\-gns\fP can be used to lookup and process GNU Name Service
13names.
13 14
14.SH OPTIONS 15.SH OPTIONS
15.B 16.B
@@ -17,24 +18,24 @@ gnunet\-gns \- Access to GNU Name System
17Use the configuration file FILENAME. 18Use the configuration file FILENAME.
18.B 19.B
19.IP "\-r, \-\-raw" 20.IP "\-r, \-\-raw"
20No unneeded output. 21No unneeded output. This is a quiet mode where only important
21This is a quiet mode where only important information is displayed. 22information is displayed. For example a lookup for an IP address will
22For example a lookup for an IP address will only yield the IP address, no 23only yield the IP address, no descriptive text.
23descriptive text.
24.B 24.B
25.IP "\-h, \-\-help" 25.IP "\-h, \-\-help"
26Print short help on options. 26Print short help on options.
27.B 27.B
28.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 28.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
29Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 29Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
30ERROR.
30.B 31.B
31.IP "\-u NAME, \-\-lookup=NAME" 32.IP "\-u NAME, \-\-lookup=NAME"
32Name to lookup. 33Name to lookup. Resolve the specified name using the GNU Name System.
33Resolve the specified name using the GNU Name System.
34.B 34.B
35.IP "\-t TYPE, \-\-type=TYPE" 35.IP "\-t TYPE, \-\-type=TYPE"
36Resource Record Type (TYPE) to look for. 36Resource Record Type (TYPE) to look for. Supported TYPE's are: A,
37Supported TYPE's are: A, AAAA, CNAME, NS, PKEY, PSEU, TLSA, SRV, SOA, MX, LEHO, VPN, REV, PTR, TXT 37AAAA, CNAME, NS, PKEY, PSEU, TLSA, SRV, SOA, MX, LEHO, VPN, REV, PTR,
38TXT
38 39
39Defaults to "A". 40Defaults to "A".
40.B 41.B
@@ -44,8 +45,8 @@ Print GNUnet version number.
44 45
45.SH RETURN VALUE 46.SH RETURN VALUE
46 47
47gnunet\-gns will return 0 on success, 1 on internal failures, 2 on launch failures, 48gnunet\-gns will return 0 on success, 1 on internal failures, 2 on
483 if the given name is not configured to use GNS. 49launch failures, 3 if the given name is not configured to use GNS.
49 50
50 51
51.SH BUGS 52.SH BUGS
diff --git a/doc/man/gnunet-identity.1 b/doc/man/gnunet-identity.1
index 50efa74d4..37cf85f45 100644
--- a/doc/man/gnunet-identity.1
+++ b/doc/man/gnunet-identity.1
@@ -6,39 +6,50 @@ gnunet\-identity \- create, delete or list egos
6[options] 6[options]
7.SH DESCRIPTION 7.SH DESCRIPTION
8.PP 8.PP
9gnunet\-identity is a tool for managing egos. An ego is the persona that controls a namespace. It is identical to a public\-private ECC key pair. 9gnunet\-identity is a tool for managing egos. An ego is the persona
10that controls a namespace. It is identical to a public\-private ECC
11key pair.
10 12
11gnunet\-identity can be used to list all of the egos that were created locally, to create new egos, and to delete existing egos (the namespace will continue to exist, but it will be impossible to add additional data to it). 13gnunet\-identity can be used to list all of the egos that were created
14locally, to create new egos, and to delete existing egos (the
15namespace will continue to exist, but it will be impossible to add
16additional data to it).
12 17
13Creating a new ego requires using the \-C option together with an identifier (name) that is to be used for the new ego. This identifier is only used locally for this peer and not shared with other peers. 18Creating a new ego requires using the \-C option together with an
19identifier (name) that is to be used for the new ego. This identifier
20is only used locally for this peer and not shared with other peers.
14 21
15.TP 22.TP
16\fB\-C NAME\fR, \fB\-\-create=NAME\fR 23\fB\-C NAME\fR, \fB\-\-create=NAME\fR Creates a new ego with the given
17Creates a new ego with the given NAME. 24NAME.
18 25
19.TP 26.TP
20\fB\-D NAME\fR, \fB\-\-delete=NAME\fR 27\fB\-D NAME\fR, \fB\-\-delete=NAME\fR Delete the ego with the given
21Delete the ego with the given NAME. 28NAME.
22 29
23.TP 30.TP
24\fB\-e NAME\fR, \fB\-\-ego=NAME\fR 31\fB\-e NAME\fR, \fB\-\-ego=NAME\fR Perform "set" operation with the
25Perform "set" operation with the respective ego. Needs to be used together with option \-s. 32respective ego. Needs to be used together with option \-s.
26 33
27.TP 34.TP
28\fB\-h\fR, \fB\-\-help\fR 35\fB\-h\fR, \fB\-\-help\fR Print help page.
29Print help page.
30 36
31.TP 37.TP
32\fB\-d\fR, \fB\-\-display\fR 38\fB\-d\fR, \fB\-\-display\fR display all of our egos
33display all of our egos
34 39
35.TP 40.TP
36\fB\-m\fR, \fB\-\-monitor\fR 41\fB\-m\fR, \fB\-\-monitor\fR run in monitor mode, listing all ouf our
37run in monitor mode, listing all ouf our egos until CTRL-C is pressed. Each ego is listed together with a unique pointer value; if egos are renamed, that pointer value remains the same; if egos are deleted, they are listed one more time with a name of "<null>". 42egos until CTRL-C is pressed. Each ego is listed together with a
43unique pointer value; if egos are renamed, that pointer value remains
44the same; if egos are deleted, they are listed one more time with a
45name of "<null>".
38 46
39.TP 47.TP
40\fB\-s SUBSYSTEM\fR, \fB\-\-set=SUBSYSTEM\fR 48\fB\-s SUBSYSTEM\fR, \fB\-\-set=SUBSYSTEM\fR Perform "set" operation
41Perform "set" operation for the specified SUBSYSTEM with the respective ego. Needs to be used together with option \-e. After this, the given SUBSYSTEM will use the ego with the specified NAME. This will fail if NAME does not yet exist. 49for the specified SUBSYSTEM with the respective ego. Needs to be used
50together with option \-e. After this, the given SUBSYSTEM will use
51the ego with the specified NAME. This will fail if NAME does not yet
52exist.
42 53
43 54
44.SH FILES 55.SH FILES
diff --git a/doc/man/gnunet-namecache.1 b/doc/man/gnunet-namecache.1
index ec2e602b8..ffc315b32 100644
--- a/doc/man/gnunet-namecache.1
+++ b/doc/man/gnunet-namecache.1
@@ -9,7 +9,8 @@ gnunet\-namecache \- inspect namecache
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-namecache\fP can be used to inspect values in the namecache. 12\fBgnunet\-namecache\fP can be used to inspect values in the
13namecache.
13 14
14.SH OPTIONS 15.SH OPTIONS
15.B 16.B
@@ -20,7 +21,8 @@ Use the configuration file FILENAME.
20Print short help on options. 21Print short help on options.
21.B 22.B
22.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 23.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
23Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 24Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
25ERROR.
24.B 26.B
25.IP "\-n NAME, \-\-name=NAME" 27.IP "\-n NAME, \-\-name=NAME"
26Name (label) of the record to display (mandatory option) 28Name (label) of the record to display (mandatory option)
diff --git a/doc/man/gnunet-namestore-fcfsd.1 b/doc/man/gnunet-namestore-fcfsd.1
index 8039e796f..6b13c3db4 100644
--- a/doc/man/gnunet-namestore-fcfsd.1
+++ b/doc/man/gnunet-namestore-fcfsd.1
@@ -9,13 +9,28 @@ gnunet\-namestore-fcfsd \- HTTP server for GNU Name System First-Come-First-Serv
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12Most users will not want to run an FCFS\-zone and thus will not need this program. 12Most users will not want to run an FCFS\-zone and thus will not need
13 13this program.
14\fBgnunet\-gns-fcfsd\fP runs a web server where users can register names to be mapped to their GNS zone. Names are made available on a First Come First Served basis (hence fcfs). Registered names do not expire. The HTTP server is run on the port that is specified in the configuration file in section "[fcfsd]" under the name "HTTPPORT". The key of the zone in which the names are registered must be specified under the name "ZONEKEY" in the same section. It is possible to manage gnunet\-gns\-fcfsd using gnunet\-(service\-arm) by starting the daemon using "gnunet\-arm \-i fcfsd" or by setting "FORCESTART=YES" in the "fcfds" section of your configuration. 14
15 15\fBgnunet\-gns-fcfsd\fP runs a web server where users can register
16An FCFS\-zone is run at http://gnunet.org/fcfs/. GNS users are encouraged to register their zone with the gnunet.org FCFS authority. 16names to be mapped to their GNS zone. Names are made available on a
17 17First Come First Served basis (hence fcfs). Registered names do not
18If you want to run your own FCFS registrar, you need to first create a pseudonym (using "gnunet\-identity \-C NAME"), and then assign it to be used for the "fcfsd" service using "gnunet\-identity \-e NAME \-s fcfsd". After that, you can start the FCFSD service (possibly using gnunet\-arm). 18expire. The HTTP server is run on the port that is specified in the
19configuration file in section "[fcfsd]" under the name "HTTPPORT".
20The key of the zone in which the names are registered must be
21specified under the name "ZONEKEY" in the same section. It is
22possible to manage gnunet\-gns\-fcfsd using gnunet\-(service\-arm) by
23starting the daemon using "gnunet\-arm \-i fcfsd" or by setting
24"FORCESTART=YES" in the "fcfds" section of your configuration.
25
26An FCFS\-zone is run at http://gnunet.org/fcfs/. GNS users are
27encouraged to register their zone with the gnunet.org FCFS authority.
28
29If you want to run your own FCFS registrar, you need to first create a
30pseudonym (using "gnunet\-identity \-C NAME"), and then assign it to
31be used for the "fcfsd" service using "gnunet\-identity \-e NAME \-s
32fcfsd". After that, you can start the FCFSD service (possibly using
33gnunet\-arm).
19 34
20.SH OPTIONS 35.SH OPTIONS
21.B 36.B
@@ -26,7 +41,8 @@ Use the configuration file FILENAME.
26Print short help on options. 41Print short help on options.
27.B 42.B
28.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 43.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
29Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 44Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
45ERROR.
30.B 46.B
31.IP "\-v, \-\-version" 47.IP "\-v, \-\-version"
32Print GNUnet version number. 48Print GNUnet version number.
diff --git a/doc/man/gnunet-namestore.1 b/doc/man/gnunet-namestore.1
index 1811031ad..006c8593b 100644
--- a/doc/man/gnunet-namestore.1
+++ b/doc/man/gnunet-namestore.1
@@ -20,52 +20,72 @@ Desired operation is adding a record
20Use the configuration file FILENAME. 20Use the configuration file FILENAME.
21.B 21.B
22.IP "\-d, \-\-delete" 22.IP "\-d, \-\-delete"
23Desired operation is deleting records under the given name that match the specified type (\-t) and value (\-V). If type or value are not specified, it means that all types (or values) should be assumed to match (and possibly multiple or all values under the given label will be deleted). Specifying a label (\-n) is mandatory. Note that matching by expiration time or flags is (currently) not supported. 23Desired operation is deleting records under the given name that match
24the specified type (\-t) and value (\-V). If type or value are not
25specified, it means that all types (or values) should be assumed to
26match (and possibly multiple or all values under the given label will
27be deleted). Specifying a label (\-n) is mandatory. Note that
28matching by expiration time or flags is (currently) not supported.
24.B 29.B
25.IP "\-D, \-\-display" 30.IP "\-D, \-\-display"
26Desired operation is listing of matching records 31Desired operation is listing of matching records
27.B 32.B
28.IP "\-e TIME, \-\-expiration=TIME" 33.IP "\-e TIME, \-\-expiration=TIME"
29Specifies expiration time of record to add; format is relative time, i.e "1 h" or "7 d 30 m". Supported units are "ms", "s", "min" or "minutes", "h" (hours), "d" (days) and "a" (years). 34Specifies expiration time of record to add; format is relative time,
35i.e "1 h" or "7 d 30 m". Supported units are "ms", "s", "min" or
36"minutes", "h" (hours), "d" (days) and "a" (years).
30.B 37.B
31.IP "\-h, \-\-help" 38.IP "\-h, \-\-help"
32Print short help on options. 39Print short help on options.
33.B 40.B
34.IP "\-i NICKNAME, \-\-nick=NICKNAME" 41.IP "\-i NICKNAME, \-\-nick=NICKNAME"
35Set the desired NICKNAME for the zone. The nickname will be included in all (public) records and used as the suggested name for this zone. 42Set the desired NICKNAME for the zone. The nickname will be included
43in all (public) records and used as the suggested name for this zone.
36.B 44.B
37.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 45.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
38Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 46Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
47ERROR.
39.B 48.B
40.IP "\-m, \-\-monitor" 49.IP "\-m, \-\-monitor"
41Monitor changes to the zone on an ongoing basis (in contrast to \-D, which merely displays the current records) 50Monitor changes to the zone on an ongoing basis (in contrast to \-D,
51which merely displays the current records)
42.B 52.B
43.IP "\-n NAME, \-\-name=NAME" 53.IP "\-n NAME, \-\-name=NAME"
44Label or name of the record to add/delete/display 54Label or name of the record to add/delete/display
45.B 55.B
46.IP "\-p, \-\-public" 56.IP "\-p, \-\-public"
47Create a record that is public (shared with other users that know the label) 57Create a record that is public (shared with other users that know the
58label)
48.B 59.B
49.IP "\-r PKEY, \-\-reverse=PKEY" 60.IP "\-r PKEY, \-\-reverse=PKEY"
50Determine our GNS name for the given public key (reverse lookup of the PKEY) in the given zone. 61Determine our GNS name for the given public key (reverse lookup of the
62PKEY) in the given zone.
51.B 63.B
52.IP "\-s, \-\-shadow" 64.IP "\-s, \-\-shadow"
53Create a record that is a shadow record. Shadow records are only used once all other records of the same type under the same label have expired. 65Create a record that is a shadow record. Shadow records are only used
66once all other records of the same type under the same label have
67expired.
54.B 68.B
55.IP "\-t TYPE, \-\-type=TYPE" 69.IP "\-t TYPE, \-\-type=TYPE"
56Type of the record to add/delete/display (i.e. "A", "AAAA", "NS", "PKEY", "MX" etc.) 70Type of the record to add/delete/display (i.e. "A", "AAAA", "NS",
71"PKEY", "MX" etc.)
57.B 72.B
58.IP "\-u URI, \-\-uri=URI" 73.IP "\-u URI, \-\-uri=URI"
59Add PKEY record from gnunet://gns/-URI to our zone; the record type is always PKEY, if no expiration is given FOREVER is used 74Add PKEY record from gnunet://gns/-URI to our zone; the record type is
75always PKEY, if no expiration is given FOREVER is used
60.B 76.B
61.IP "\-v, \-\-version" 77.IP "\-v, \-\-version"
62Print GNUnet version number. 78Print GNUnet version number.
63.B 79.B
64.IP "\-V VALUE, \-\-value=VALUE" 80.IP "\-V VALUE, \-\-value=VALUE"
65Value to store or remove from the GNS zone. Specific format depends on the record type. A records expect a dotted decimal IPv4 address, AAAA records an IPv6 address, PKEY a public key in GNUnet's printable format, and CNAME and NS records should be a domain name. 81Value to store or remove from the GNS zone. Specific format depends
82on the record type. A records expect a dotted decimal IPv4 address,
83AAAA records an IPv6 address, PKEY a public key in GNUnet's printable
84format, and CNAME and NS records should be a domain name.
66.B 85.B
67.IP "\-z EGO, \-\-zone=EGO" 86.IP "\-z EGO, \-\-zone=EGO"
68Specifies the name of the ego controlling the private key for the zone (mandatory option) 87Specifies the name of the ego controlling the private key for the zone
88(mandatory option)
69 89
70 90
71.SH BUGS 91.SH BUGS
diff --git a/doc/man/gnunet-nat-auto.1 b/doc/man/gnunet-nat-auto.1
index 249d54da4..3a2631391 100644
--- a/doc/man/gnunet-nat-auto.1
+++ b/doc/man/gnunet-nat-auto.1
@@ -24,7 +24,8 @@ Use the configuration file FILENAME.
24 24
25.B 25.B
26.IP "\-S NAME, \-\-section=NAME" 26.IP "\-S NAME, \-\-section=NAME"
27Name of the configuration section with details about the configuration to test. For example "transport-tcp". 27Name of the configuration section with details about the configuration
28to test. For example "transport-tcp".
28 29
29.IP "\-t, \-\-tcp" 30.IP "\-t, \-\-tcp"
30Use TCP. 31Use TCP.
@@ -35,7 +36,8 @@ Use UDP.
35 36
36.B 37.B
37.IP "\-w, \-\-write" 38.IP "\-w, \-\-write"
38Write configuration to configuration file, useful in combination with autoconfiguration (\-a). 39Write configuration to configuration file, useful in combination with
40autoconfiguration (\-a).
39 41
40.SH EXAMPLES 42.SH EXAMPLES
41.PP 43.PP
diff --git a/doc/man/gnunet-nat-server.1 b/doc/man/gnunet-nat-server.1
index dcf856e1c..3d79d5bc5 100644
--- a/doc/man/gnunet-nat-server.1
+++ b/doc/man/gnunet-nat-server.1
@@ -11,15 +11,40 @@ gnunet\-nat\-server \- help GNUnet setup test network setup with NAT
11 11
12.SH DESCRIPTION 12.SH DESCRIPTION
13 13
14Normal GNUnet end-users should not concern themselves with gnunet\-nat\-server. In fact, distributions are encouraged to consider not shipping it at all. Running gnunet\-nat\-server's is similar to running hostlist servers: it is a special service to the community with special requirements and no benefit to those running the service. 14Normal GNUnet end-users should not concern themselves with
15 15gnunet\-nat\-server. In fact, distributions are encouraged to
16This program will listen on the specified PORT for incoming requests to test a peer's network connectivity. Incoming requests can ask it to connect to a given IPv4 address (and port) using TCP or UDP and to send a 2-byte test message using the specified address. The program can also be asked to send a "fake" ICMP response message to a given IPv4 address (for autonomous NAT traversal \-\-\- see the description in the respective research paper). 16consider not shipping it at all. Running gnunet\-nat\-server's is
17 17similar to running hostlist servers: it is a special service to the
18The idea is that gnunet\-nat\-server will be run on some trusted hosts with unrestricted connectivity to allow GNUnet users to test their network configuration. As written, the code allows any user on the Internet to cause the gnunet\-nat\-server to send 2-bytes of arbitrary data to any TCP or UDP port at any address. We believe that this is generally harmless. 18community with special requirements and no benefit to those running
19 19the service.
20When running gnunet\-nat\-server, make sure to use a configuration that disables most NAT options but enables 'enable_nat_client' and sets 'internal_address' to the global IP address of your local host. Also, the gnunet\-helper\-nat\-client should be installed locally and run with root privileges (SUID), otherwise the gnunet\-nat\-server will not work properly. 20
21 21This program will listen on the specified PORT for incoming requests
22Note that gnunet\-nat\-server could be run via gnunet\-arm but typically is not. Also, the name of the host and port that gnunet\-nat\-server is run on should be specified in the NATSERVER option in the [setup] section of the configuration file of hosts that are supposed to autoconfigure with this server. 22to test a peer's network connectivity. Incoming requests can ask it
23to connect to a given IPv4 address (and port) using TCP or UDP and to
24send a 2-byte test message using the specified address. The program
25can also be asked to send a "fake" ICMP response message to a given
26IPv4 address (for autonomous NAT traversal \-\-\- see the description
27in the respective research paper).
28
29The idea is that gnunet\-nat\-server will be run on some trusted hosts
30with unrestricted connectivity to allow GNUnet users to test their
31network configuration. As written, the code allows any user on the
32Internet to cause the gnunet\-nat\-server to send 2-bytes of arbitrary
33data to any TCP or UDP port at any address. We believe that this is
34generally harmless.
35
36When running gnunet\-nat\-server, make sure to use a configuration
37that disables most NAT options but enables 'enable_nat_client' and
38sets 'internal_address' to the global IP address of your local host.
39Also, the gnunet\-helper\-nat\-client should be installed locally and
40run with root privileges (SUID), otherwise the gnunet\-nat\-server
41will not work properly.
42
43Note that gnunet\-nat\-server could be run via gnunet\-arm but
44typically is not. Also, the name of the host and port that
45gnunet\-nat\-server is run on should be specified in the NATSERVER
46option in the [setup] section of the configuration file of hosts that
47are supposed to autoconfigure with this server.
23 48
24 49
25.SH OPTIONS 50.SH OPTIONS
diff --git a/doc/man/gnunet-nat.1 b/doc/man/gnunet-nat.1
index 0a9053444..fe9d8af3e 100644
--- a/doc/man/gnunet-nat.1
+++ b/doc/man/gnunet-nat.1
@@ -33,7 +33,8 @@ Assuming we are listening at ADDRESS for connection reversal requests.
33 33
34.B 34.B
35.IP "\-r ADDRESS, \-\-remote=ADDRESS" 35.IP "\-r ADDRESS, \-\-remote=ADDRESS"
36Ask the peer at ADDRESS for connection reversal, using the local address for the target address of the reversal. 36Ask the peer at ADDRESS for connection reversal, using the local
37address for the target address of the reversal.
37 38
38.B 39.B
39.IP "\-S NAME, \-\-section=NAME" 40.IP "\-S NAME, \-\-section=NAME"
@@ -41,7 +42,9 @@ Name of section in configuration file to use for additional options.
41 42
42.B 43.B
43.IP "\-s, \-\-stun" 44.IP "\-s, \-\-stun"
44Enable processing of STUN requests. Will try to read UDP packets from the bind address and handle the packets if they are STUN packets. Will only work with UDP. 45Enable processing of STUN requests. Will try to read UDP packets from
46the bind address and handle the packets if they are STUN packets. Will
47only work with UDP.
45 48
46.B 49.B
47.IP "\-t, \-\-tcp" 50.IP "\-t, \-\-tcp"
@@ -53,38 +56,46 @@ Use UDP.
53 56
54.B 57.B
55.IP "\-W, \-\-watch" 58.IP "\-W, \-\-watch"
56Watch for connection reversal requests. 59Watch for connection reversal requests.
57 60
58.SH EXAMPLES 61.SH EXAMPLES
59.PP 62.PP
60 63
61\fBBasic examples\fR 64\fBBasic examples\fR
62 65
63We are bound to "0.0.0.0:8080" on UDP and want to obtain all applicable IP addresses: 66We are bound to "0.0.0.0:8080" on UDP and want to obtain all
67applicable IP addresses:
64 68
65 # gnunet-nat -i 0.0.0.0:8080 -u 69 # gnunet-nat -i 0.0.0.0:8080 -u
66 70
67We are bound to "::0" on port 8080 on TCP and want to obtain all applicable IP addresses: 71We are bound to "::0" on port 8080 on TCP and want to obtain all
72applicable IP addresses:
68 73
69 # gnunet-nat -i '[::0]':8080 -t 74 # gnunet-nat -i '[::0]':8080 -t
70 75
71We are bound to "127.0.0.1:8080" on UDP and want to obtain all applicable IP addresses: 76We are bound to "127.0.0.1:8080" on UDP and want to obtain all
77applicable IP addresses:
72 78
73 # gnunet-nat -i 127.0.0.1:8080 -u 79 # gnunet-nat -i 127.0.0.1:8080 -u
74 80
75\fBICMP-based NAT traversal:\fR 81\fBICMP-based NAT traversal:\fR
76 82
77Watch for connection reversal request (you must be bound to NAT range or to wildcard, 0.0.0.0), only works for IPv4: 83Watch for connection reversal request (you must be bound to NAT range
84or to wildcard, 0.0.0.0), only works for IPv4:
78 85
79 # gnunet-nat -Wt -i 192.168.178.12:8080 86 # gnunet-nat -Wt -i 192.168.178.12:8080
80 87
81Initiate connection reversal request from peer at external IPv4 address 1.2.3.4, while we are running ourselves at 2.3.4.5:8080 (must use IPv4 addresses): 88Initiate connection reversal request from peer at external IPv4
89address 1.2.3.4, while we are running ourselves at 2.3.4.5:8080 (must
90use IPv4 addresses):
82 91
83 # gnunet-nat -t -r 1.2.3.4:8080 -i 2.3.4.5:8080 92 # gnunet-nat -t -r 1.2.3.4:8080 -i 2.3.4.5:8080
84 93
85Initiate connection reversal request from peer at external IPv4 address 1.2.3.4, and let the kernel fill in whatever IPv4 address we happen to have: 94Initiate connection reversal request from peer at external IPv4
95address 1.2.3.4, and let the kernel fill in whatever IPv4 address we
96happen to have:
86 97
87 # gnunet-nat -t -r 1.2.3.4:8080 -i 0.0.0.0:8080 98 # gnunet-nat -t -r 1.2.3.4:8080 -i 0.0.0.0:8080
88 99
89\fBManual hole punching:\fR 100\fBManual hole punching:\fR
90 101
diff --git a/doc/man/gnunet-peerinfo.1 b/doc/man/gnunet-peerinfo.1
index 6d89f461a..cfb34c36a 100644
--- a/doc/man/gnunet-peerinfo.1
+++ b/doc/man/gnunet-peerinfo.1
@@ -42,7 +42,9 @@ Add given HELLO uri to the database
42Do not print anything but the peer identities 42Do not print anything but the peer identities
43.B 43.B
44.IP "\-s, \-\-self" 44.IP "\-s, \-\-self"
45Print only our own identity (together with "\-q", this is the exact line that other peers would have to put in to their friends file in order to consider this peer one of their friends in F2F mode). 45Print only our own identity (together with "\-q", this is the exact
46line that other peers would have to put in to their friends file in
47order to consider this peer one of their friends in F2F mode).
46.B 48.B
47.IP "\-v, \-\-version" 49.IP "\-v, \-\-version"
48Print the version number 50Print the version number
diff --git a/doc/man/gnunet-publish.1 b/doc/man/gnunet-publish.1
index 53a8a6563..28ee163e2 100644
--- a/doc/man/gnunet-publish.1
+++ b/doc/man/gnunet-publish.1
@@ -6,108 +6,235 @@ gnunet\-publish \- a command line interface for publishing new content into GNUn
6[\fIOPTIONS\fR] FILENAME 6[\fIOPTIONS\fR] FILENAME
7.SH DESCRIPTION 7.SH DESCRIPTION
8.PP 8.PP
9In order to share files with other GNUnet users, the files must first be made available to GNUnet. GNUnet does not automatically share all files from a certain directory (however, you can do this with the gnunet\-auto\-share tool). In fact, even files that are downloaded are not automatically shared. 9In order to share files with other GNUnet users, the files must first
10be made available to GNUnet. GNUnet does not automatically share all
11files from a certain directory (however, you can do this with the
12gnunet\-auto\-share tool). In fact, even files that are downloaded
13are not automatically shared.
10.PP 14.PP
11In order to start sharing files, the files must be added either using gnunet\-publish or a graphical interface such as gnunet\-fs\-gtk. The command line tool gnunet\-publish is more useful if many files are supposed to be added. gnunet\-publish can automatically publish batches of files, recursively publish directories, create directories that can be browsed within GNUnet and publish file lists in a namespace. When run on a directory, gnunet\-publish will always recursively publish all of the files in the directory. 15In order to start sharing files, the files must be added either using
16gnunet\-publish or a graphical interface such as gnunet\-fs\-gtk. The
17command line tool gnunet\-publish is more useful if many files are
18supposed to be added. gnunet\-publish can automatically publish
19batches of files, recursively publish directories, create directories
20that can be browsed within GNUnet and publish file lists in a
21namespace. When run on a directory, gnunet\-publish will always
22recursively publish all of the files in the directory.
12.PP 23.PP
13gnunet\-publish can automatically extract keywords from the files that are shared. Users that want to download files from GNUnet use keywords to search for the appropriate content. You can disable keyword extraction with the \-D option. You can manually add keywords using the \-k option. The keywords are case\-sensitive. 24gnunet\-publish can automatically extract keywords from the files that
25are shared. Users that want to download files from GNUnet use
26keywords to search for the appropriate content. You can disable
27keyword extraction with the \-D option. You can manually add keywords
28using the \-k option. The keywords are case\-sensitive.
14.PP 29.PP
15In addition to searching for files by keyword, GNUnet allows organizing files into directories. With directories, the user only needs to find the directory in order to be able to download any of the files listed in the directory. Directories can contain pointers to other directories. 30In addition to searching for files by keyword, GNUnet allows
31organizing files into directories. With directories, the user only
32needs to find the directory in order to be able to download any of the
33files listed in the directory. Directories can contain pointers to
34other directories.
16.PP 35.PP
17With gnunet\-publish, it is easy to create new directories simultaneously when adding the files. Simply pass the name of a directory instead of a file. 36With gnunet\-publish, it is easy to create new directories
37simultaneously when adding the files. Simply pass the name of a
38directory instead of a file.
18.PP 39.PP
19Since keywords can be spammed (any user can add any content under any keyword), GNUnet supports namespaces. A namespace is a subset of the searchspace into which only the holder of a certain pseudonym can add content. Any GNUnet user can create any number of pseudonyms using \fBgnunet\-pseudonym\fR. Pseudonyms are stored in the user's GNUnet directory. While pseudonyms are locally identified with an arbitrary string that the user selects when the pseudonym is created, the namespace is globally known only under the hash of the public key of the pseudonym. Since only the owner of the pseudonym can add content to the namespace, it is impossible for other users to pollute the namespace. gnunet\-publish automatically publishes the top\-directory (or the only file if only one file is specified) into the namespace if a pseudonym is specified. 40Since keywords can be spammed (any user can add any content under any
41keyword), GNUnet supports namespaces. A namespace is a subset of the
42searchspace into which only the holder of a certain pseudonym can add
43content. Any GNUnet user can create any number of pseudonyms using
44\fBgnunet\-pseudonym\fR. Pseudonyms are stored in the user's GNUnet
45directory. While pseudonyms are locally identified with an arbitrary
46string that the user selects when the pseudonym is created, the
47namespace is globally known only under the hash of the public key of
48the pseudonym. Since only the owner of the pseudonym can add content
49to the namespace, it is impossible for other users to pollute the
50namespace. gnunet\-publish automatically publishes the top\-directory
51(or the only file if only one file is specified) into the namespace if
52a pseudonym is specified.
20.PP 53.PP
21It is possible to update content in GNUnet if that content was placed and obtained from a particular namespace. Updates are only possible for content in namespaces since this is the only way to assure that a malicious party can not supply counterfeited updates. Note that an update with GNUnet does not make the old content unavailable, GNUnet merely allows the publisher to point users to more recent versions. You can use the \-N option to specify the future identifier of an update. When using this option, a GNUnet client that finds the current (\-t) identifier will automatically begin a search for the update (\-N) identifier. If you later publish an update under the (\-N) identifier, both results will be given to the user. 54It is possible to update content in GNUnet if that content was placed
55and obtained from a particular namespace. Updates are only possible
56for content in namespaces since this is the only way to assure that a
57malicious party can not supply counterfeited updates. Note that an
58update with GNUnet does not make the old content unavailable, GNUnet
59merely allows the publisher to point users to more recent
60versions. You can use the \-N option to specify the future identifier
61of an update. When using this option, a GNUnet client that finds the
62current (\-t) identifier will automatically begin a search for the
63update (\-N) identifier. If you later publish an update under the
64(\-N) identifier, both results will be given to the user.
22.PP 65.PP
23You can use automatic meta\-data extraction (based on libextractor) or the command\-line option \-m to specify meta-data. For the \-m option you need to use the form keyword\-type:value. For example, use "\-m os:Linux" to specify that the operating system is Linux. Common meta\-data types are "author", "title" , "mimetype", "filename", "language", "subject" and "keywords". A full list can be obtained from the extract tool using the option \-\-list. The meta\-data is used to help users in searching for files on the network. The keywords are case\-sensitive. 66You can use automatic meta\-data extraction (based on libextractor) or
67the command\-line option \-m to specify meta-data. For the \-m option
68you need to use the form keyword\-type:value. For example, use "\-m
69os:Linux" to specify that the operating system is Linux. Common
70meta\-data types are "author", "title" , "mimetype", "filename",
71"language", "subject" and "keywords". A full list can be obtained
72from the extract tool using the option \-\-list. The meta\-data is
73used to help users in searching for files on the network. The
74keywords are case\-sensitive.
24.PP 75.PP
25GNUnet supports two styles of publishing files on the network. Publishing a file means that a copy of the file is made in the local (!) database of the node. Indexing a file means that an index is added to the local (!) database with symbolic links to the file itself. The links will use the SHA-512 hash of the entire file as the filename. Indexing is generally significantly more efficient and the default choice. However, indexing only works if the indexed file can be read (using the same absolute path) by gnunet-service-fs. If this is not the case, indexing will fail (and gnunet\-publish will automatically revert to publishing instead). Regardless of which method is used to publish the file, the file will be slowly (depending on how often it is requested and on how much bandwidth is available) dispersed into the network. If you publish or index a file and then leave the network, it will almost always NOT be available anymore. 76GNUnet supports two styles of publishing files on the
26 77network. Publishing a file means that a copy of the file is made in
27\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 78the local (!) database of the node. Indexing a file means that an
28Use alternate config file (if this option is not specified, the default is ~/.config/gnunet.conf). 79index is added to the local (!) database with symbolic links to the
80file itself. The links will use the SHA-512 hash of the entire file
81as the filename. Indexing is generally significantly more efficient
82and the default choice. However, indexing only works if the indexed
83file can be read (using the same absolute path) by gnunet-service-fs.
84If this is not the case, indexing will fail (and gnunet\-publish will
85automatically revert to publishing instead). Regardless of which
86method is used to publish the file, the file will be slowly (depending
87on how often it is requested and on how much bandwidth is available)
88dispersed into the network. If you publish or index a file and then
89leave the network, it will almost always NOT be available anymore.
90
91\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR Use alternate config
92file (if this option is not specified, the default is
93~/.config/gnunet.conf).
29 94
30.TP 95.TP
31\fB\-D\fR, \fB\-\-disable\-extractor\fR 96\fB\-D\fR, \fB\-\-disable\-extractor\fR Disable use of GNU
32Disable use of GNU libextractor for finding additional keywords and metadata. 97libextractor for finding additional keywords and metadata.
33 98
34.TP 99.TP
35\fB\-d\fR, \fB\-\-disable\-creation\-time\fR 100\fB\-d\fR, \fB\-\-disable\-creation\-time\fR Disable use of creation
36Disable use of creation time timestamp in metadata. Useful to make created directories deterministic and to avoid leaking information about the time at which a file was made available. 101time timestamp in metadata. Useful to make created directories
102deterministic and to avoid leaking information about the time at which
103a file was made available.
37 104
38.TP 105.TP
39\fB\-e\fR, \fB\-\-extract\fR 106\fB\-e\fR, \fB\-\-extract\fR Print the list of keywords that will be
40Print the list of keywords that will be used for each file given the current options. Do not perform any indexing or publishing. 107used for each file given the current options. Do not perform any
108indexing or publishing.
41 109
42.TP 110.TP
43\fB\-h\fR, \fB\-\-help\fR 111\fB\-h\fR, \fB\-\-help\fR Print a brief help page with all the
44Print a brief help page with all the options. 112options.
45 113
46.TP 114.TP
47\fB\-k \fIKEYWORD\fR, \fB\-\-key=KEYWORD\fR 115\fB\-k \fIKEYWORD\fR, \fB\-\-key=KEYWORD\fR additional key to index
48additional key to index the content with (to add multiple keys, specify multiple times). Each additional key is case\-sensitive. Can be specified multiple times. The keyword is only applied to the top\-level file or directory. 116the content with (to add multiple keys, specify multiple times). Each
117additional key is case\-sensitive. Can be specified multiple times.
118The keyword is only applied to the top\-level file or directory.
49 119
50.TP 120.TP
51\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=\fILOGLEVEL\fR 121\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=\fILOGLEVEL\fR Change the
52Change the loglevel. Possible values for LOGLEVEL are 122loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and
53ERROR, WARNING, INFO and DEBUG. 123DEBUG.
54 124
55.TP 125.TP
56\fB\-m \fITYPE:VALUE\fR, \fB\-\-meta=\fITYPE:VALUE\fR 126\fB\-m \fITYPE:VALUE\fR, \fB\-\-meta=\fITYPE:VALUE\fR For the main
57For the main file (or directory), set the metadata of the given TYPE to the given VALUE. Note that this will not add the respective VALUE to the set of keywords under which the file can be found. 127file (or directory), set the metadata of the given TYPE to the given
128VALUE. Note that this will not add the respective VALUE to the set of
129keywords under which the file can be found.
58 130
59.TP 131.TP
60\fB\-n\fR, \fB\-\-noindex\fR 132\fB\-n\fR, \fB\-\-noindex\fR Executive summary: You probably don't
61Executive summary: You probably don't need it. 133need it.
62 134
63Do not index, full publishing. Note that directories, information for keyword search, namespace search and indexing data are always published (even without this option). With this option, every block of the actual files is stored in encrypted form in the block database of the local peer. While this adds security if the local node is compromised (the adversary snags your machine), it is significantly less efficient compared to on\-demand encryption and is definitely not recommended for large files. 135Do not index, full publishing. Note that directories, information for
136keyword search, namespace search and indexing data are always
137published (even without this option). With this option, every block
138of the actual files is stored in encrypted form in the block database
139of the local peer. While this adds security if the local node is
140compromised (the adversary snags your machine), it is significantly
141less efficient compared to on\-demand encryption and is definitely not
142recommended for large files.
64 143
65.TP 144.TP
66\fB\-N \fIID\fR, \fB\-\-next=\fIID\fR 145\fB\-N \fIID\fR, \fB\-\-next=\fIID\fR Specifies the next identifier of
67Specifies the next identifier of a future version of the file to be published under the same pseudonym. This option is only valid together with the \-P option. This option can be used to specify what the identifier of an updated version will look like. Note that specifying \-i and \-N without \-t is not allowed. 146a future version of the file to be published under the same pseudonym.
147This option is only valid together with the \-P option. This option
148can be used to specify what the identifier of an updated version will
149look like. Note that specifying \-i and \-N without \-t is not
150allowed.
68 151
69.TP 152.TP
70\fB\-p \fIPRIORITY\fR, \fB\-\-prio=\fIPRIORITY\fR 153\fB\-p \fIPRIORITY\fR, \fB\-\-prio=\fIPRIORITY\fR Executive summary:
71Executive summary: You probably don't need it. 154You probably don't need it.
72 155
73Set the priority of the published content (default: 365). If the local database is full, GNUnet will discard the content with the lowest ranking. Note that ranks change over time depending on popularity. The default should be high enough to preserve the locally published content in favor of content that migrates from other peers. 156Set the priority of the published content (default: 365). If the
157local database is full, GNUnet will discard the content with the
158lowest ranking. Note that ranks change over time depending on
159popularity. The default should be high enough to preserve the locally
160published content in favor of content that migrates from other peers.
74 161
75.TP 162.TP
76\fB\-P \fINAME\fR, \fB\-\-pseudonym=\fINAME\fR 163\fB\-P \fINAME\fR, \fB\-\-pseudonym=\fINAME\fR For the top\-level
77For the top\-level directory or file, places the file into the namespace identified by the pseudonym NAME. NAME must be a valid pseudonym managed by gnunet\-identity. 164directory or file, places the file into the namespace identified by
165the pseudonym NAME. NAME must be a valid pseudonym managed by
166gnunet\-identity.
78 167
79.TP 168.TP
80\fB\-r \fILEVEL\fR, \fB\-\-replication=\fILEVEL\fR 169\fB\-r \fILEVEL\fR, \fB\-\-replication=\fILEVEL\fR Set the desired
81Set the desired replication level. If CONTENT_PUSHING is set to YES, GNUnet will push each block (for the file) LEVEL times to other peers before doing normal "random" replication of all content. This option can be used to push some content out into the network harder. Note that pushing content LEVEL times into the network does not guarantee that there will actually be LEVEL replicas. 170replication level. If CONTENT_PUSHING is set to YES, GNUnet will push
171each block (for the file) LEVEL times to other peers before doing
172normal "random" replication of all content. This option can be used
173to push some content out into the network harder. Note that pushing
174content LEVEL times into the network does not guarantee that there
175will actually be LEVEL replicas.
82 176
83.TP 177.TP
84\fB\-s\fR, \fB\-\-simulate-only\fR 178\fB\-s\fR, \fB\-\-simulate-only\fR When this option is used,
85When this option is used, gnunet\-publish will not actually publish the file but just simulate what would be done. This can be used to compute the GNUnet URI for a file without actually sharing it. 179gnunet\-publish will not actually publish the file but just simulate
180what would be done. This can be used to compute the GNUnet URI for a
181file without actually sharing it.
86 182
87.TP 183.TP
88\fB\-t \fIID\fR, \fB\-\-this=\fIID\fR 184\fB\-t \fIID\fR, \fB\-\-this=\fIID\fR Specifies the identifier under
89Specifies the identifier under which the file is to be published under a pseudonym. This option is only valid together with the\ \-P option. 185which the file is to be published under a pseudonym. This option is
186only valid together with the\ \-P option.
90 187
91.TP 188.TP
92\fB\-u \fIURI\fR, \fB\-\-uri=\fIURI\fR 189\fB\-u \fIURI\fR, \fB\-\-uri=\fIURI\fR This option can be used to
93This option can be used to specify the URI of a file instead of a filename (this is the only case where the otherwise mandatory filename argument must be omitted). Instead of publishing a file or directory and using the corresponding URI, gnunet\-publish will use this URI and perform the selected namespace or keyword operations. This can be used to add additional keywords to a file that has already been shared or to add files to a namespace for which the URI is known but the content is not locally available. 190specify the URI of a file instead of a filename (this is the only case
191where the otherwise mandatory filename argument must be omitted).
192Instead of publishing a file or directory and using the corresponding
193URI, gnunet\-publish will use this URI and perform the selected
194namespace or keyword operations. This can be used to add additional
195keywords to a file that has already been shared or to add files to a
196namespace for which the URI is known but the content is not locally
197available.
94 198
95.TP 199.TP
96\fB\-v\fR, \fB\-\-version\fR 200\fB\-v\fR, \fB\-\-version\fR Print the version number.
97Print the version number.
98 201
99.TP 202.TP
100\fB\-V\fR, \fB\-\-verbose\fR 203\fB\-V\fR, \fB\-\-verbose\fR Be verbose. Using this option causes
101Be verbose. Using this option causes gnunet\-publish to print progress information and at the end the file identification that can be used to download the file from GNUnet. 204gnunet\-publish to print progress information and at the end the file
205identification that can be used to download the file from GNUnet.
102 206
103 207
104.SH SETTING ANONYMITY LEVEL 208.SH SETTING ANONYMITY LEVEL
105 209
106The \fB\-a\fR option can be used to specify additional anonymity constraints. If set to 0, GNUnet will publish the file non-anonymously and in fact sign the advertisement for the file using your peer's private key. This will allow other users to download the file as fast as possible, including using non-anonymous methods (DHT, direct transfer). If you set it to 1 (default), you use the standard anonymous routing algorithm (which does not explicitly leak your identity). However, a powerful adversary may still be able to perform traffic analysis (statistics) to over time infer data about your identity. You can gain better privacy by specifying a higher level of anonymity, which increases the amount of cover traffic your own traffic will get, at the expense of performance. Note that regardless of the anonymity level you choose, peers that cache content in the network always use anonymity level 1. 210The \fB\-a\fR option can be used to specify additional anonymity
107 211constraints. If set to 0, GNUnet will publish the file non-anonymously
108The definition of the ANONYMITY LEVEL is the following. 0 means no anonymity is required. Otherwise a value of 'v' means that 1 out of v bytes of "anonymous" traffic can be from the local user, leaving 'v-1' bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n bytes of messages from foreign peers (using anonymous routing), it may originate n/(v-1) bytes of data in the same time\-period. The time\-period is twice the average delay that GNUnet defers forwarded queries. 212and in fact sign the advertisement for the file using your peer's
109 213private key. This will allow other users to download the file as fast
110The default is 1 and this should be fine for most users. Also notice that if you choose very large values, you may end up having no throughput at all, especially if many of your fellow GNUnet\-peers all do the same. 214as possible, including using non-anonymous methods (DHT, direct
215transfer). If you set it to 1 (default), you use the standard
216anonymous routing algorithm (which does not explicitly leak your
217identity). However, a powerful adversary may still be able to perform
218traffic analysis (statistics) to over time infer data about your
219identity. You can gain better privacy by specifying a higher level of
220anonymity, which increases the amount of cover traffic your own
221traffic will get, at the expense of performance. Note that regardless
222of the anonymity level you choose, peers that cache content in the
223network always use anonymity level 1.
224
225The definition of the ANONYMITY LEVEL is the following. 0 means no
226anonymity is required. Otherwise a value of 'v' means that 1 out of v
227bytes of "anonymous" traffic can be from the local user, leaving 'v-1'
228bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n
229bytes of messages from foreign peers (using anonymous routing), it may
230originate n/(v-1) bytes of data in the same time\-period. The
231time\-period is twice the average delay that GNUnet defers forwarded
232queries.
233
234The default is 1 and this should be fine for most users. Also notice
235that if you choose very large values, you may end up having no
236throughput at all, especially if many of your fellow GNUnet\-peers all
237do the same.
111 238
112 239
113.SH EXAMPLES 240.SH EXAMPLES
@@ -127,37 +254,55 @@ Index a file COPYING with the keywords \fBgpl\fR and \fBtest\fR:
127 254
128 # gnunet\-publish \-k gpl \-k test COPYING 255 # gnunet\-publish \-k gpl \-k test COPYING
129 256
130Index a file COPYING with description "GNU License", mime-type "text/plain" and keywords \fBgpl\fR and \fBtest\fR: 257Index a file COPYING with description "GNU License", mime-type
258"text/plain" and keywords \fBgpl\fR and \fBtest\fR:
131 259
132 # gnunet\-publish \-m "description:GNU License" \-k gpl \-k test \-m "mimetype:text/plain" COPYING 260 # gnunet\-publish \-m "description:GNU License" \-k gpl \-k test \-m
261 "mimetype:text/plain" COPYING
133 262
134\fBUsing directories\fR 263\fBUsing directories\fR
135 264
136Index the files COPYING and AUTHORS with keyword \fBtest\fR and build a directory containing the two files. Make the directory itself available under keyword \fBgnu\fR and disable keyword extraction using libextractor: 265Index the files COPYING and AUTHORS with keyword \fBtest\fR and build
266a directory containing the two files. Make the directory itself
267available under keyword \fBgnu\fR and disable keyword extraction using
268libextractor:
137 269
138 # mkdir gnu 270 # mkdir gnu mv COPYING AUTHORS gnu/ gnunet\-publish \-k test \-k gnu
139 # mv COPYING AUTHORS gnu/ 271 # \-D gnu/
140 # gnunet\-publish \-k test \-k gnu \-D gnu/
141 272
142Neatly publish an image gallery in \fBkittendir/\fR and its subdirs with keyword \fBkittens\fR for the directory but no keywords for the individual files or subdirs (\-n). Force description for all files: 273Neatly publish an image gallery in \fBkittendir/\fR and its subdirs
274with keyword \fBkittens\fR for the directory but no keywords for the
275individual files or subdirs (\-n). Force description for all files:
143 276
144 # gnunet\-publish \-n \-m "description:Kitten collection" \-k kittens kittendir/ 277 # gnunet\-publish \-n \-m "description:Kitten collection" \-k kittens
278 kittendir/
145 279
146\fBSecure publishing with namespaces\fR 280\fBSecure publishing with namespaces\fR
147 281
148Publish file COPYING with pseudonym RIAA-2 (\-P) and with identifier \fBgpl\fR (\-t) and no updates: 282Publish file COPYING with pseudonym RIAA-2 (\-P) and with identifier
283\fBgpl\fR (\-t) and no updates:
149 284
150 # gnunet\-publish \-P RIAA-2 \-t gpl COPYING 285 # gnunet\-publish \-P RIAA-2 \-t gpl COPYING
151 286
152Recursively index /home/ogg and build a matching directory structure. Publish the top\-level directory into the namespace under the pseudonym RIAA\-2 (\-P) under identifier 'MUSIC' (\-t) and promise to provide an update with identifier 'VIDEOS' (\-N): 287Recursively index /home/ogg and build a matching directory
288structure. Publish the top\-level directory into the namespace under
289the pseudonym RIAA\-2 (\-P) under identifier 'MUSIC' (\-t) and promise
290to provide an update with identifier 'VIDEOS' (\-N):
153 291
154 # gnunet\-publish \-P RIAA-2 \-t MUSIC \-N VIDEOS /home/ogg 292 # gnunet\-publish \-P RIAA-2 \-t MUSIC \-N VIDEOS /home/ogg
155 293
156Recursively publish (\-n) /var/lib/mysql and build a matching directory structure, but disable the use of libextractor to extract keywords (\-n). Print the file identifiers (\-V) that can be used to retrieve the files. This will store a copy of the MySQL database in GNUnet but without adding any keywords to search for it. Thus only people that have been told the secret file identifiers printed with the \-V option can retrieve the (secret?) files: 294Recursively publish (\-n) /var/lib/mysql and build a matching
295directory structure, but disable the use of libextractor to extract
296keywords (\-n). Print the file identifiers (\-V) that can be used to
297retrieve the files. This will store a copy of the MySQL database in
298GNUnet but without adding any keywords to search for it. Thus only
299people that have been told the secret file identifiers printed with
300the \-V option can retrieve the (secret?) files:
157 301
158 # gnunet\-publish \-nV /var/lib/mysql 302 # gnunet\-publish \-nV /var/lib/mysql
159 303
160Create a namespace entry 'root' in namespace MPAA-1 and announce that the next update will be called 'next': 304Create a namespace entry 'root' in namespace MPAA-1 and announce that
305the next update will be called 'next':
161 306
162 # gnunet\-publish \-P MPAA-1 \-t root \-N next noise.mp3 307 # gnunet\-publish \-P MPAA-1 \-t root \-N next noise.mp3
163 308
diff --git a/doc/man/gnunet-qr.1 b/doc/man/gnunet-qr.1
index 6c3261d02..f1baf85ac 100644
--- a/doc/man/gnunet-qr.1
+++ b/doc/man/gnunet-qr.1
@@ -9,7 +9,8 @@ gnunet\-qr \- Scan a QR code using a video device and import.
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-qr\fP is a command line tool to scan a QR code using a video device and import. 12\fBgnunet\-qr\fP is a command line tool to scan a QR code using a
13video device and import.
13 14
14.SH OPTIONS 15.SH OPTIONS
15.B 16.B
diff --git a/doc/man/gnunet-resolver.1 b/doc/man/gnunet-resolver.1
index 0c314bc66..7e16932ac 100644
--- a/doc/man/gnunet-resolver.1
+++ b/doc/man/gnunet-resolver.1
@@ -20,7 +20,8 @@ Use the configuration file FILENAME.
20Print short help on options. 20Print short help on options.
21.B 21.B
22.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 22.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
23Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 23Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
24ERROR.
24.B 25.B
25.IP "\-l LOGFILE, \-\-logfile=LOGFILE" 26.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
26Configure logging to write logs to LOGFILE. 27Configure logging to write logs to LOGFILE.
diff --git a/doc/man/gnunet-revocation.1 b/doc/man/gnunet-revocation.1
index 9043c286e..017b019fd 100644
--- a/doc/man/gnunet-revocation.1
+++ b/doc/man/gnunet-revocation.1
@@ -9,21 +9,48 @@ gnunet\-revocation \- revoke private keys (of egos) in GNUnet
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-revocation\fP can be used to verify if a key has been revoked, to create a revocation certificate for later revocation, to instantly revoke a key and to use a pre-generated revocation certificate to revoke a key. Upon successful revocation, all peers will be informed about the invalidity of the key. As this is an expensive operation, GNUnet requires the issuer of the revocation to perform an expensive proof-of-work computation before he will be allowed to perform the revocation. gnunet\-revocation will perform this computation. The computation can be performed ahead of time, with the resulting revocation certificate being stored in a file for later "instant" use. gnunet\-revocation also makes is possible to resume the pre-calculation of a revocation --- simply abort a running proof-of-work calculation with CTRL-C, and the existing revocation certificate file will contain the status of the computation. Note that performing a revocation proof-of-work is deliberately VERY expensive. Depending on your CPU, the calculation can take days or weeks. 12\fBgnunet\-revocation\fP can be used to verify if a key has been
13revoked, to create a revocation certificate for later revocation, to
14instantly revoke a key and to use a pre-generated revocation
15certificate to revoke a key. Upon successful revocation, all peers
16will be informed about the invalidity of the key. As this is an
17expensive operation, GNUnet requires the issuer of the revocation to
18perform an expensive proof-of-work computation before he will be
19allowed to perform the revocation. gnunet\-revocation will perform
20this computation. The computation can be performed ahead of time,
21with the resulting revocation certificate being stored in a file for
22later "instant" use. gnunet\-revocation also makes is possible to
23resume the pre-calculation of a revocation --- simply abort a running
24proof-of-work calculation with CTRL-C, and the existing revocation
25certificate file will contain the status of the computation. Note
26that performing a revocation proof-of-work is deliberately VERY
27expensive. Depending on your CPU, the calculation can take days or
28weeks.
13 29
14.SH OPTIONS 30.SH OPTIONS
15.B 31.B
16.IP "\-t KEY, \-\-test=KEY" 32.IP "\-t KEY, \-\-test=KEY"
17Check if the given KEY (ASCII\-encoded public key required) has been revoked. 33Check if the given KEY (ASCII\-encoded public key required) has been
34revoked.
18.B 35.B
19.IP "\-R NAME, \-\-revoke=NAME" 36.IP "\-R NAME, \-\-revoke=NAME"
20Calculate or perform revocation for the ego with the given NAME. 37Calculate or perform revocation for the ego with the given NAME.
21.B 38.B
22.IP "\-p, \-\-perform" 39.IP "\-p, \-\-perform"
23Actually perform the revocation as soon as possible (do not just generate a revocation certificate, use it). Must be supplied to actually perform the revocation. 40Actually perform the revocation as soon as possible (do not just
41generate a revocation certificate, use it). Must be supplied to
42actually perform the revocation.
24.B 43.B
25.IP "\-f NAME, \-\-filename=NAME" 44.IP "\-f NAME, \-\-filename=NAME"
26Use NAME as the name of the file that is to contain the revocation certificate. Intermediate computation results will be stored here, as well as the final revocation certificate. When used together with \-p, this file will be inspected to see if it contains a valid certificate for instant revocation, in which case the revocation can be performed instantly. If the given file contains anything (a valid certificate, with or without the completed proof-of-work) there is no need to supply the "\-R" option or to still have the private key of the ego to perform the revocation. 45Use NAME as the name of the file that is to contain the revocation
46certificate. Intermediate computation results will be stored here, as
47well as the final revocation certificate. When used together with
48\-p, this file will be inspected to see if it contains a valid
49certificate for instant revocation, in which case the revocation can
50be performed instantly. If the given file contains anything (a valid
51certificate, with or without the completed proof-of-work) there is no
52need to supply the "\-R" option or to still have the private key of
53the ego to perform the revocation.
27.B 54.B
28.IP "\-c FILENAME, \-\-config=FILENAME" 55.IP "\-c FILENAME, \-\-config=FILENAME"
29Use the configuration file FILENAME. 56Use the configuration file FILENAME.
@@ -32,7 +59,8 @@ Use the configuration file FILENAME.
32Print short help on options. 59Print short help on options.
33.B 60.B
34.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 61.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
35Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 62Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
63ERROR.
36.B 64.B
37.IP "\-v, \-\-version" 65.IP "\-v, \-\-version"
38Print GNUnet version number. 66Print GNUnet version number.
diff --git a/doc/man/gnunet-scalarproduct.1 b/doc/man/gnunet-scalarproduct.1
index 73081e2ed..0159e1eb9 100644
--- a/doc/man/gnunet-scalarproduct.1
+++ b/doc/man/gnunet-scalarproduct.1
@@ -9,7 +9,8 @@ gnunet\-vectorproduct \- compute a vectorproduct
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet-vectorproduct\fP enables you to compute a vectorproduct across two peers \fBAlice\fP and \fBBob\fP. 12\fBgnunet-vectorproduct\fP enables you to compute a vectorproduct
13across two peers \fBAlice\fP and \fBBob\fP.
13 14
14A client can issue one of two messages to its service: 15A client can issue one of two messages to its service:
15.TS 16.TS
@@ -23,30 +24,51 @@ Elements to support a peer in computing a vectorproduct (\fBBob\fP)
23T} 24T}
24.TE 25.TE
25 26
26Both requests must share the same SID, which can be an arbitrary string identifying the session. SIDs should be unique, however it is sufficient to guarantee the uniqueness of the tupel element count and session ID. 27Both requests must share the same SID, which can be an arbitrary
28string identifying the session. SIDs should be unique, however it is
29sufficient to guarantee the uniqueness of the tupel element count and
30session ID.
27 31
28\fBAlice\fP\'s client must supply the ASCII encoded peer ID of bob\'s service, it will internally be checked by the client for validity. Invalid values here result in the client or the service failing the session. 32\fBAlice\fP\'s client must supply the ASCII encoded peer ID of bob\'s
33service, it will internally be checked by the client for
34validity. Invalid values here result in the client or the service
35failing the session.
29 36
30Elements are handed over as signed decimal integers, the element count supplied by \fBAlice\fP and \fBBob\fP must match. \fBAlice\fP can also supply a mask for these values to her service, which allows partial vector products to be computed across the vector. Elements can be masked by setting their the corresponding mask element to zero, any other value means the element will not be masked. \fBAlice\fP\'s client will also mask all 0-values to avoid information leakage to \fBBob\fP. 37Elements are handed over as signed decimal integers, the element count
38supplied by \fBAlice\fP and \fBBob\fP must match. \fBAlice\fP can also
39supply a mask for these values to her service, which allows partial
40vector products to be computed across the vector. Elements can be
41masked by setting their the corresponding mask element to zero, any
42other value means the element will not be masked. \fBAlice\fP\'s
43client will also mask all 0-values to avoid information leakage to
44\fBBob\fP.
31 45
32The protocol by definition relies on \fBAlice\fP and \fBBob\fP being benign, thus \fBBob\fP can arbitrarily falsify his information. Both peers collaborate to achieve a correct result. 46The protocol by definition relies on \fBAlice\fP and \fBBob\fP being
47benign, thus \fBBob\fP can arbitrarily falsify his information. Both
48peers collaborate to achieve a correct result.
33 49
34.SH OPTIONS 50.SH OPTIONS
35.B 51.B
36.IP "\-e ELEMENTS, \-\-elements=ELEMENTS" 52.IP "\-e ELEMENTS, \-\-elements=ELEMENTS"
37The element-vector the vectorproduct should be computed over in signed decimal form, eg: \"42,1,-3,3,7\". Zero value elements will be automatically masked. 53The element-vector the vectorproduct should be computed over in signed
54decimal form, eg: \"42,1,-3,3,7\". Zero value elements will be automatically masked.
38.B 55.B
39.IP "\-m MASK, \-\-mask=MASK" 56.IP "\-m MASK, \-\-mask=MASK"
40Elements in the vector can be masked. There must be at least two elements left in the vector to compute a vectorproduct. Non-Zero values indicate an element is not maskes. 57Elements in the vector can be masked. There must be at least two
58elements left in the vector to compute a vectorproduct. Non-Zero
59values indicate an element is not maskes.
41.B 60.B
42.IP "\-k KEY, \-\-key=KEY" 61.IP "\-k KEY, \-\-key=KEY"
43The session key, a shared string of arbitrary length from which the SID will be generated 62The session key, a shared string of arbitrary length from which the
63SID will be generated
44.B 64.B
45.IP "\-c FILENAME, \-\-config=FILENAME" 65.IP "\-c FILENAME, \-\-config=FILENAME"
46Use the configuration file FILENAME. 66Use the configuration file FILENAME.
47.B 67.B
48.IP "\-p PEERID, \-\-peer=PEERID" 68.IP "\-p PEERID, \-\-peer=PEERID"
49The remote peer\'s ASCII-armored gnunet-peer ID as output by gnunet-peerinfo. If this option is not given, the peer will take the \fBBob\fP\'s role. 69The remote peer\'s ASCII-armored gnunet-peer ID as output by
70gnunet-peerinfo. If this option is not given, the peer will take the
71\fBBob\fP\'s role.
50.B 72.B
51.IP "\-h, \-\-help" 73.IP "\-h, \-\-help"
52Print short help on options. 74Print short help on options.
diff --git a/doc/man/gnunet-scrypt.1 b/doc/man/gnunet-scrypt.1
index 3b11ca52e..147b18fbe 100644
--- a/doc/man/gnunet-scrypt.1
+++ b/doc/man/gnunet-scrypt.1
@@ -9,7 +9,8 @@ gnunet\-scrypt \- Manipulate GNUnet proof of work files.
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-scrypt\fP is a command line tool to manipulate GNUnet proof of work files. 12\fBgnunet\-scrypt\fP is a command line tool to manipulate GNUnet proof
13of work files.
13 14
14.SH OPTIONS 15.SH OPTIONS
15.B 16.B
diff --git a/doc/man/gnunet-search.1 b/doc/man/gnunet-search.1
index 7f30812e0..1e0973b63 100644
--- a/doc/man/gnunet-search.1
+++ b/doc/man/gnunet-search.1
@@ -9,17 +9,49 @@ gnunet\-search \- a command line interface to search for content on GNUnet
9[\fIOPTIONS\fR] [+]\fIURI\fR 9[\fIOPTIONS\fR] [+]\fIURI\fR
10.SH DESCRIPTION 10.SH DESCRIPTION
11.PP 11.PP
12Search for content on GNUnet. The keywords are case\-sensitive. gnunet\-search can be used both for a search in the global namespace as well as for searching a private subspace. 12Search for content on GNUnet. The keywords are case\-sensitive.
13gnunet\-search can be used both for a search in the global namespace
14as well as for searching a private subspace.
13.TP 15.TP
14\fB\-a \fILEVEL\fR, \fB\-\-anonymity=\fILEVEL\fR 16\fB\-a \fILEVEL\fR, \fB\-\-anonymity=\fILEVEL\fR
15 17
16The \fB\-a\fR option can be used to specify additional anonymity constraints. If set to 0, GNUnet will try to download the file as fast as possible, including using non-anonymous methods. If you set it to 1 (default), you use the standard anonymous routing algorithm (which does not explicitly leak your identity). However, a powerful adversary may still be able to perform traffic analysis (statistics) to over time infer data about your identity. You can gain better privacy by specifying a higher level of anonymity, which increases the amount of cover traffic your own traffic will get, at the expense of performance. Note that your download performance is not only determined by your own anonymity level, but also by the anonymity level of the peers publishing the file. So even if you download with anonymity level 0, the peers publishing the data might be sharing with a higher anonymity level, which in this case will determine performance. Also, peers that cache content in the network always use anonymity level 1. 18The \fB\-a\fR option can be used to specify additional anonymity
17 19constraints. If set to 0, GNUnet will try to download the file as fast
18This option can be used to limit requests further than that. In particular, you can require GNUnet to receive certain amounts of traffic from other peers before sending your queries. This way, you can gain very high levels of anonymity \- at the expense of much more traffic and much higher latency. So set it only if you really believe you need it. 20as possible, including using non-anonymous methods. If you set it to
19 211 (default), you use the standard anonymous routing algorithm (which
20The definition of ANONYMITY\-RECEIVE is the following. 0 means no anonymity is required. Otherwise a value of 'v' means that 1 out of v bytes of "anonymous" traffic can be from the local user, leaving 'v-1' bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n bytes of messages from foreign peers (using anonymous routing), it may originate n/(v-1) bytes of queries in the same time\-period. The time\-period is twice the average delay that GNUnet defers forwarded queries. 22does not explicitly leak your identity). However, a powerful
21 23adversary may still be able to perform traffic analysis (statistics)
22The default is 1 and this should be fine for most users. Also notice that if you choose very large values, you may end up having no throughput at all, especially if many of your fellow GNUnet\-peers all do the same. 24to over time infer data about your identity. You can gain better
25privacy by specifying a higher level of anonymity, which increases the
26amount of cover traffic your own traffic will get, at the expense of
27performance. Note that your download performance is not only
28determined by your own anonymity level, but also by the anonymity
29level of the peers publishing the file. So even if you download with
30anonymity level 0, the peers publishing the data might be sharing with
31a higher anonymity level, which in this case will determine
32performance. Also, peers that cache content in the network always use
33anonymity level 1.
34
35This option can be used to limit requests further than that. In
36particular, you can require GNUnet to receive certain amounts of
37traffic from other peers before sending your queries. This way, you
38can gain very high levels of anonymity \- at the expense of much more
39traffic and much higher latency. So set it only if you really believe
40you need it.
41
42The definition of ANONYMITY\-RECEIVE is the following. 0 means no
43anonymity is required. Otherwise a value of 'v' means that 1 out of v
44bytes of "anonymous" traffic can be from the local user, leaving 'v-1'
45bytes of cover traffic per byte on the wire. Thus, if GNUnet routes n
46bytes of messages from foreign peers (using anonymous routing), it may
47originate n/(v-1) bytes of queries in the same time\-period. The
48time\-period is twice the average delay that GNUnet defers forwarded
49queries.
50
51The default is 1 and this should be fine for most users. Also notice
52that if you choose very large values, you may end up having no
53throughput at all, especially if many of your fellow GNUnet\-peers all
54do the same.
23 55
24.TP 56.TP
25\fB\-c \fIFILENAME\fR, \fB\-\-config=\fIFILENAME\fR 57\fB\-c \fIFILENAME\fR, \fB\-\-config=\fIFILENAME\fR
@@ -48,7 +80,10 @@ automatically terminate the search after receiving VALUE results.
48 80
49.TP 81.TP
50\fB\-t \fIDELAY\fR, \fB\-\-timeout=\fIDELAY\fR 82\fB\-t \fIDELAY\fR, \fB\-\-timeout=\fIDELAY\fR
51Automatically timeout search after DELAY. The value given must be a number followed by a space and a time unit, for example "500 ms". Note that the quotes are required on the shell. Otherwise the search runs until gnunet\-search is aborted with CTRL\-C. 83Automatically timeout search after DELAY. The value given must be a
84number followed by a space and a time unit, for example "500 ms".
85Note that the quotes are required on the shell. Otherwise the search
86runs until gnunet\-search is aborted with CTRL\-C.
52 87
53.TP 88.TP
54\fB\-v\fR, \fB\-\-version\fR 89\fB\-v\fR, \fB\-\-version\fR
@@ -59,9 +94,17 @@ print the version number
59print meta data from search results as well 94print meta data from search results as well
60.SH NOTES 95.SH NOTES
61 96
62You can run gnunet\-search with an URI instead of a keyword. The URI can have the format for a namespace search or for a keyword search. For a namespace search, the format is gnunet://fs/sks/NAMESPACE/IDENTIFIER. For a keyword search, use gnunet://fs/ksk/KEYWORD[+KEYWORD]*. If the format does not correspond to a GNUnet URI, GNUnet will automatically assume that keywords are supplied directly. 97You can run gnunet\-search with an URI instead of a keyword. The URI
98can have the format for a namespace search or for a keyword search.
99For a namespace search, the format is
100gnunet://fs/sks/NAMESPACE/IDENTIFIER. For a keyword search, use
101gnunet://fs/ksk/KEYWORD[+KEYWORD]*. If the format does not correspond
102to a GNUnet URI, GNUnet will automatically assume that keywords are
103supplied directly.
63 104
64If multiple keywords are passed, gnunet-search will look for content matching any of the keywords. The prefix "+" makes a keyword mandatory. 105If multiple keywords are passed, gnunet-search will look for content
106matching any of the keywords. The prefix "+" makes a keyword
107mandatory.
65 108
66# gnunet\-search "Das Kapital" 109# gnunet\-search "Das Kapital"
67 110
@@ -81,7 +124,13 @@ Search results are printed by gnunet\-search like this:
81 Mime-type: text/plain 124 Mime-type: text/plain
82.ad b 125.ad b
83 126
84The first line contains the command to run to download the file. The suggested filename in the example is COPYING. The GNUnet URI consists of the key and query hash of the file and finally the size of the file. After the command to download the file GNUnet will print meta\-data about the file as advertised in the search result, here "The GNU General Public License" and the mime\-type (see the options for gnunet\-publish on how to supply meta-data by hand). 127The first line contains the command to run to download the file. The
128suggested filename in the example is COPYING. The GNUnet URI consists
129of the key and query hash of the file and finally the size of the
130file. After the command to download the file GNUnet will print
131meta\-data about the file as advertised in the search result, here
132"The GNU General Public License" and the mime\-type (see the options
133for gnunet\-publish on how to supply meta-data by hand).
85 134
86.SH FILES 135.SH FILES
87.TP 136.TP
diff --git a/doc/man/gnunet-statistics.1 b/doc/man/gnunet-statistics.1
index e6c744f12..36f445a09 100644
--- a/doc/man/gnunet-statistics.1
+++ b/doc/man/gnunet-statistics.1
@@ -10,8 +10,11 @@ gnunet\-statistics \- Display statistics about your GNUnet system
10.br 10.br
11 11
12.SH DESCRIPTION 12.SH DESCRIPTION
13\fBgnunet\-statistics\fP is used to display detailed information about various aspect of GNUnet's operation. This tool only works if the "statistics" service is available. 13\fBgnunet\-statistics\fP is used to display detailed information about
14gnunet\-statistics can be used to set a value by giving the options \-n, \-s and also a VALUE. 14various aspect of GNUnet's operation. This tool only works if the
15"statistics" service is available.
16gnunet\-statistics can be used to set a value by giving the options
17\-n, \-s and also a VALUE.
15 18
16.SH OPTIONS 19.SH OPTIONS
17.B 20.B
@@ -25,13 +28,18 @@ Print short help on options.
25Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 28Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
26.B 29.B
27.IP "\-n NAME, \-\-name=NAME" 30.IP "\-n NAME, \-\-name=NAME"
28Each statistic has a name that is unique with in its subsystem. With this option, the output can be restricted to statistics that have a particular name. 31Each statistic has a name that is unique with in its subsystem. With
32this option, the output can be restricted to statistics that have a
33particular name.
29.B 34.B
30.IP "\-p, \-\-persistent" 35.IP "\-p, \-\-persistent"
31When setting a value, make the value persistent. If the value used to be persistent and this flag is not given, it will be marked as non\-persistent. 36When setting a value, make the value persistent. If the value used to
37be persistent and this flag is not given, it will be marked as
38non\-persistent.
32.B 39.B
33.IP "\-s SUBSYSTEM, \-\-subsystem=SUBSYSTEM" 40.IP "\-s SUBSYSTEM, \-\-subsystem=SUBSYSTEM"
34Statistics are kept for various subsystems. With this option, the output can be restricted to a particular subsystem only. 41Statistics are kept for various subsystems. With this option, the
42output can be restricted to a particular subsystem only.
35.B 43.B
36.IP "\-v, \-\-version" 44.IP "\-v, \-\-version"
37Print GNUnet version number. 45Print GNUnet version number.
diff --git a/doc/man/gnunet-testbed-profiler.1 b/doc/man/gnunet-testbed-profiler.1
index 3911085f2..bc7092e68 100644
--- a/doc/man/gnunet-testbed-profiler.1
+++ b/doc/man/gnunet-testbed-profiler.1
@@ -32,7 +32,9 @@ Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
32Configure logging to write logs to LOGFILE. 32Configure logging to write logs to LOGFILE.
33.B 33.B
34.IP "\-n, \-\-non\-interactive" 34.IP "\-n, \-\-non\-interactive"
35Run profiler in non-interactive mode where upon testbed setup the profiler does not wait for a keystroke but continues to run until a termination signal is received. 35Run profiler in non-interactive mode where upon testbed setup the
36profiler does not wait for a keystroke but continues to run until a
37termination signal is received.
36.B 38.B
37.IP "\-p COUNT, \-\-num\-peers=COUNT" 39.IP "\-p COUNT, \-\-num\-peers=COUNT"
38Create COUNT number of peers. 40Create COUNT number of peers.
diff --git a/doc/man/gnunet-testing-run-service.1 b/doc/man/gnunet-testing-run-service.1
index 7df698225..a6a29d953 100644
--- a/doc/man/gnunet-testing-run-service.1
+++ b/doc/man/gnunet-testing-run-service.1
@@ -9,11 +9,17 @@ gnunet\-testing\-run\-service \- Command line tool to start a service for testin
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-testing\-run\-service\fP is a command line tool to start a service for testing. It starts a peer, running only the service specified on the command line, outputs the path to the temporary configuration file to stdout. 12\fBgnunet\-testing\-run\-service\fP is a command line tool to start a
13service for testing. It starts a peer, running only the service
14specified on the command line, outputs the path to the temporary
15configuration file to stdout.
13 16
14The peer will run until this program is killed, or stdin is closed. When reading the character 'r' from stdin, the running service is restarted with the same configuration. 17The peer will run until this program is killed, or stdin is
18closed. When reading the character 'r' from stdin, the running service
19is restarted with the same configuration.
15 20
16This executable is intended to be used by gnunet-java, in order to reliably start and stop services for test cases. 21This executable is intended to be used by gnunet-java, in order to
22reliably start and stop services for test cases.
17 23
18.SH OPTIONS 24.SH OPTIONS
19.B 25.B
diff --git a/doc/man/gnunet-transport.1 b/doc/man/gnunet-transport.1
index 1680f9cf7..3a81c54fe 100644
--- a/doc/man/gnunet-transport.1
+++ b/doc/man/gnunet-transport.1
@@ -8,11 +8,17 @@ gnunet\-transport \- measure and control the transport subsystem
8.SH DESCRIPTION 8.SH DESCRIPTION
9.PP 9.PP
10 10
11gnunet\-transport is a tool to access various functions of GNUnet's transport subsystem from the command\-line. Most of these are not expected to be useful for end-users. gnunet\-transport can be used to evaluate the performance of the transports, force a peer to connect to another peer (if possible). Other functions should be added in the near future. 11gnunet\-transport is a tool to access various functions of GNUnet's
12transport subsystem from the command\-line. Most of these are not
13expected to be useful for end-users. gnunet\-transport can be used to
14evaluate the performance of the transports, force a peer to connect to
15another peer (if possible). Other functions should be added in the
16near future.
12 17
13.TP 18.TP
14\fB\-b\fR, \fB\-\-benchmark\fR 19\fB\-b\fR, \fB\-\-benchmark\fR
15measure how fast we are receiving data (from all connections). On exit, the data rate will be reported. Runs until aborted with CTRL-C. 20measure how fast we are receiving data (from all connections). On
21exit, the data rate will be reported. Runs until aborted with CTRL-C.
16.TP 22.TP
17\fB\-D\fR, \fB\-\-disconnect\fR 23\fB\-D\fR, \fB\-\-disconnect\fR
18force disconnection from a peer (used in conjunction with \-p). 24force disconnection from a peer (used in conjunction with \-p).
@@ -46,7 +52,10 @@ the peer identity to connect to or monitor
46monitor session state of transport plugins 52monitor session state of transport plugins
47.TP 53.TP
48\fB\-s\fR, \fB\-\-send\fR 54\fB\-s\fR, \fB\-\-send\fR
49transmit (dummy) traffic as quickly as possible to the peer specified with the \-p option. The rate will still be limited by the quota(s) determined by the peers (ATS subsystem). Will run until CTRL\-C is pressed or until the connection to the other peer is disrupted. 55transmit (dummy) traffic as quickly as possible to the peer specified
56with the \-p option. The rate will still be limited by the quota(s)
57determined by the peers (ATS subsystem). Will run until CTRL\-C is
58pressed or until the connection to the other peer is disrupted.
50.TP 59.TP
51\fB\-v\fR, \fB\-\-version\fR 60\fB\-v\fR, \fB\-\-version\fR
52print the version number 61print the version number
diff --git a/doc/man/gnunet-unindex.1 b/doc/man/gnunet-unindex.1
index b3a1de6e3..cf095cc49 100644
--- a/doc/man/gnunet-unindex.1
+++ b/doc/man/gnunet-unindex.1
@@ -25,7 +25,10 @@ print the version number
25\fB\-V\fR, \fB\-\-verbose\fR 25\fB\-V\fR, \fB\-\-verbose\fR
26be verbose 26be verbose
27.SH NOTES 27.SH NOTES
28You can only unindex files that you indexed and that you still have available locally in full. You should use gnunet\-unindex on files that you indexed (not inserted) and that you are going to delete or move locally. 28You can only unindex files that you indexed and that you still have
29available locally in full. You should use gnunet\-unindex on files
30that you indexed (not inserted) and that you are going to delete or
31move locally.
29.TP 32.TP
30.SH FILES 33.SH FILES
31.TP 34.TP
diff --git a/doc/man/gnunet-uri.1 b/doc/man/gnunet-uri.1
index 9eac68a6d..ac8ccf374 100644
--- a/doc/man/gnunet-uri.1
+++ b/doc/man/gnunet-uri.1
@@ -9,7 +9,11 @@ gnunet\-uri \- invoke default handler for GNUnet URIs
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-uri\fP can be used to invoke the correct tool to handle a GNUnet URI. GNUnet URIs have the format "gnunet://SUBSYSTEM/DETAILS" and thus the specific tool to handle the URI depends on the subsystem. gnunet\-uri will determine the correct tool (by looking for SUBSYSTEM in the configuration section "uri") and invoke it. 12\fBgnunet\-uri\fP can be used to invoke the correct tool to handle a
13GNUnet URI. GNUnet URIs have the format "gnunet://SUBSYSTEM/DETAILS"
14and thus the specific tool to handle the URI depends on the subsystem.
15gnunet\-uri will determine the correct tool (by looking for SUBSYSTEM
16in the configuration section "uri") and invoke it.
13 17
14.SH OPTIONS 18.SH OPTIONS
15.B 19.B
diff --git a/doc/man/gnunet-vpn.1 b/doc/man/gnunet-vpn.1
index 68a5905d8..6b1b11f7b 100644
--- a/doc/man/gnunet-vpn.1
+++ b/doc/man/gnunet-vpn.1
@@ -9,9 +9,20 @@ gnunet\-vpn \- manually setup a GNUnet VPN tunnel
9.br 9.br
10 10
11.SH DESCRIPTION 11.SH DESCRIPTION
12\fBgnunet\-vpn\fP can be used to manually setup a VPN tunnel via the GNUnet network. There are two main types of tunnels. Tunnels to an exit node which routes the traffic to the global Internet, and tunnels to a node that runs a service only within GNUnet. Depending on the type of tunnel, gnunet\-vpn takes different options. The "\-i" option is required for tunnels to an exit node, whereas the "\-p" and "\-s" options in conjunction with either "\-u" or "\-t" are required for tunnels to services. For exit tunnels, both UDP and TCP traffic will be redirected. For service tunnels, either UDP ("\-u") or TCP ("\-t") traffic will be redirected. 12\fBgnunet\-vpn\fP can be used to manually setup a VPN tunnel via the
13GNUnet network. There are two main types of tunnels. Tunnels to an
14exit node which routes the traffic to the global Internet, and tunnels
15to a node that runs a service only within GNUnet. Depending on the
16type of tunnel, gnunet\-vpn takes different options. The "\-i" option
17is required for tunnels to an exit node, whereas the "\-p" and "\-s"
18options in conjunction with either "\-u" or "\-t" are required for
19tunnels to services. For exit tunnels, both UDP and TCP traffic will
20be redirected. For service tunnels, either UDP ("\-u") or TCP ("\-t")
21traffic will be redirected.
13 22
14The tool will display the IP address for this end of the tunnel. The address can be displayed as soon as it has been allocated, or only after ("\-a") the tunnel has been created. 23The tool will display the IP address for this end of the tunnel. The
24address can be displayed as soon as it has been allocated, or only
25after ("\-a") the tunnel has been created.
15 26
16.SH OPTIONS 27.SH OPTIONS
17.B 28.B
@@ -25,22 +36,29 @@ Desired IP address on this end of the tunnel should be an IPv6 address.
25Use the configuration file FILENAME. 36Use the configuration file FILENAME.
26.B 37.B
27.IP "\-d TIME, \-\-duration TIME" 38.IP "\-d TIME, \-\-duration TIME"
28The mapping should be established for TIME. The value given must be a number followed by a space and a time unit, for example "500 ms". Note that the quotes are required on the shell. Default is 5 minutes. 39The mapping should be established for TIME. The value given must be a
40number followed by a space and a time unit, for example "500 ms".
41Note that the quotes are required on the shell. Default is 5 minutes.
29.B 42.B
30.IP "\-h, \-\-help" 43.IP "\-h, \-\-help"
31Print short help on options. 44Print short help on options.
32.B 45.B
33.IP "\-i IP, \-\-ip IP" 46.IP "\-i IP, \-\-ip IP"
34Tunnel should be to an exit node and connect to the given IPv4 or IPv6 IP address. Note that you can specify an IPv6 address as the target here, even in combination with "\-4" (4to6) and similarly you can specify an IPv4 address in combination with "\-6" (6to4). 47Tunnel should be to an exit node and connect to the given IPv4 or IPv6
48IP address. Note that you can specify an IPv6 address as the target
49here, even in combination with "\-4" (4to6) and similarly you can
50specify an IPv4 address in combination with "\-6" (6to4).
35.B 51.B
36.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 52.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
37Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 53Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
38.B 54.B
39.IP "\-p PEERID, \-\-peer=PEERID" 55.IP "\-p PEERID, \-\-peer=PEERID"
40Name of the peer offering the service to connect to. Cannot be used in conjunction with "\-i", requires "\-s". 56Name of the peer offering the service to connect to. Cannot be used
57in conjunction with "\-i", requires "\-s".
41.B 58.B
42.IP "\-s NAME, \-\-service=NAME" 59.IP "\-s NAME, \-\-service=NAME"
43Name of the service running on the target peer. Cannot be used in conjunction with "\-i", requires "\-p". 60Name of the service running on the target peer. Cannot be used in
61conjunction with "\-i", requires "\-p".
44.B 62.B
45.IP "\-t, \-\-tcp" 63.IP "\-t, \-\-tcp"
46Service runs TCP. Either "\-t" or "\-u" must be specified when using "\-s". 64Service runs TCP. Either "\-t" or "\-u" must be specified when using "\-s".
diff --git a/doc/man/gnunet-zoneimport.1 b/doc/man/gnunet-zoneimport.1
index 06b3a6bcf..bcfa7b734 100644
--- a/doc/man/gnunet-zoneimport.1
+++ b/doc/man/gnunet-zoneimport.1
@@ -8,17 +8,37 @@ gnunet\-zoneimport \- import DNS zone into GNS zone
8.br 8.br
9 9
10.SH DESCRIPTION 10.SH DESCRIPTION
11\fBgnunet\-zoneimport\fP reads a list of domain names (FQDN) from stdin and issues DNS queries for each of the domain names given. It then checks if a local ego with a name matching the domain exists. Specifically, if the domain name is "example.fr", it will check if an ego "fr" exists, while for a domain "example.com.fr" it will look for an ego called "com.fr"). If so, it will convert the DNS records into GNS records (in particular converting NS records and glue records to GNS2DNS records) and add them to the namestore under the label ("example" in the examples above). 11\fBgnunet\-zoneimport\fP reads a list of domain names (FQDN) from
12 12stdin and issues DNS queries for each of the domain names given. It
13The arguments given to gnunet\-zoneimport is a list of IP addresses of DNS servers to query. 13then checks if a local ego with a name matching the domain
14 14exists. Specifically, if the domain name is "example.fr", it will
15gnunet\-zoneimport will usually never terminate: it will check when DNS records expire, and re-issue requests when the old DNS records have expired so that GNS always has the latest data. 15check if an ego "fr" exists, while for a domain "example.com.fr" it
16 16will look for an ego called "com.fr"). If so, it will convert the DNS
17gnunet\-zoneimport will issue many DNS queries in parallel, but is rate-limited in various ways, so most DNS servers should easily handle the load. gnunet\-zoneimport will perform a limited number of retries if queries fail. 17records into GNS records (in particular converting NS records and glue
18 18records to GNS2DNS records) and add them to the namestore under the
19gnunet\-zoneimport operates incrementally. It will check if the namestore already has (non-expired) records stored for a given name in the respective zone and not issue those requests again. Thus, it is fine to restart gnunet\-zoneimport whenever the list of domain names changes. 19label ("example" in the examples above).
20 20
21Finally, gnunet\-zoneimport keeps information for each domain name in memory. This consumes about 200 bytes per domain name, or 1 GB for 5 million labels. 21The arguments given to gnunet\-zoneimport is a list of IP addresses of
22DNS servers to query.
23
24gnunet\-zoneimport will usually never terminate: it will check when
25DNS records expire, and re-issue requests when the old DNS records
26have expired so that GNS always has the latest data.
27
28gnunet\-zoneimport will issue many DNS queries in parallel, but is
29rate-limited in various ways, so most DNS servers should easily handle
30the load. gnunet\-zoneimport will perform a limited number of retries
31if queries fail.
32
33gnunet\-zoneimport operates incrementally. It will check if the
34namestore already has (non-expired) records stored for a given name in
35the respective zone and not issue those requests again. Thus, it is
36fine to restart gnunet\-zoneimport whenever the list of domain names
37changes.
38
39Finally, gnunet\-zoneimport keeps information for each domain name in
40memory. This consumes about 200 bytes per domain name, or 1 GB for 5
41million labels.
22 42
23.SH OPTIONS 43.SH OPTIONS
24.B 44.B
@@ -29,7 +49,13 @@ Use the configuration file FILENAME.
29Print short help on options. 49Print short help on options.
30.B 50.B
31.IP "\-s MAPSIZE, \-\-size=MAPSIZE" 51.IP "\-s MAPSIZE, \-\-size=MAPSIZE"
32Specifies the size (in number of entries) to use for the main hash map. The value provided should be at least twice the number of domain names that will be given to the tool. This option is required for very large zones where the number of records encountered is too large for the automatic growth mechanism to work (that one is limited to at most 16 MB allocations for security reasons). Do not worry about this unless you are importing millions of domain names from a zone. 52Specifies the size (in number of entries) to use for the main hash
53map. The value provided should be at least twice the number of domain
54names that will be given to the tool. This option is required for very
55large zones where the number of records encountered is too large for
56the automatic growth mechanism to work (that one is limited to at most
5716 MB allocations for security reasons). Do not worry about this
58unless you are importing millions of domain names from a zone.
33 59
34.SH NOTES 60.SH NOTES
35 61