aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am9
-rw-r--r--doc/doc.h2
-rw-r--r--doc/handbook/Makefile.am9
-rw-r--r--doc/handbook/chapters/developer.texi443
-rw-r--r--doc/handbook/chapters/installation.texi135
-rw-r--r--doc/handbook/chapters/keyconcepts.texi2
-rw-r--r--doc/handbook/chapters/preface.texi117
-rw-r--r--doc/handbook/chapters/user.texi130
-rw-r--r--doc/handbook/gnunet.texi12
-rw-r--r--doc/handbook/manual.css2
-rwxr-xr-xdoc/handbook/run-gendocs.sh2
-rw-r--r--doc/handbook/style.css2
-rw-r--r--doc/man/.gitignore4
-rw-r--r--doc/man/Makefile.am31
-rw-r--r--doc/man/README8
-rw-r--r--doc/man/gnunet-arm.1198
-rw-r--r--doc/man/gnunet-ats.1171
-rw-r--r--doc/man/gnunet-bcd.15
-rw-r--r--doc/man/gnunet-cadet.112
-rw-r--r--doc/man/gnunet-config.114
-rw-r--r--doc/man/gnunet-conversation-test.14
-rw-r--r--doc/man/gnunet-conversation.16
-rw-r--r--doc/man/gnunet-dns2gns.1108
-rw-r--r--doc/man/gnunet-ecc.18
-rw-r--r--doc/man/gnunet-gns-proxy-setup-ca.164
-rw-r--r--doc/man/gnunet-gns-proxy.16
-rw-r--r--doc/man/gnunet-gns.17
-rw-r--r--doc/man/gnunet-namecache.16
-rw-r--r--doc/man/gnunet-namestore-fcfsd.15
-rw-r--r--doc/man/gnunet-namestore.119
-rw-r--r--doc/man/gnunet-nat-auto.15
-rw-r--r--doc/man/gnunet-nat-server.11
-rw-r--r--doc/man/gnunet-nat.110
-rw-r--r--doc/man/gnunet-nse.165
-rw-r--r--doc/man/gnunet-peerinfo.111
-rw-r--r--doc/man/gnunet-publish.16
-rw-r--r--doc/man/gnunet-qr.188
-rw-r--r--doc/man/gnunet-resolver.16
-rw-r--r--doc/man/gnunet-revocation.18
-rw-r--r--doc/man/gnunet-scalarproduct.18
-rw-r--r--doc/man/gnunet-scrypt.112
-rw-r--r--doc/man/gnunet-statistics.1146
-rw-r--r--doc/man/gnunet-testbed-profiler.1110
-rw-r--r--doc/man/gnunet-testing-run-service.193
-rw-r--r--doc/man/gnunet-testing.1108
-rw-r--r--doc/man/gnunet-timeout.172
-rw-r--r--doc/man/gnunet-transport-certificate-creation.169
-rw-r--r--doc/man/gnunet-transport.1142
-rw-r--r--doc/man/gnunet-unindex.1109
-rw-r--r--doc/man/gnunet-uri.191
-rw-r--r--doc/man/gnunet-vpn.1139
-rw-r--r--doc/man/gnunet-zoneimport.1184
-rw-r--r--doc/man/gnunet.conf.5.in41
-rwxr-xr-xdoc/man/produce_html.sh14
-rwxr-xr-xdoc/man/texi2mdoc-generation.sh15
-rw-r--r--doc/tutorial/Makefile.am9
-rw-r--r--doc/tutorial/gnunet-tutorial.texi4
-rw-r--r--doc/tutorial/manual.css2
-rwxr-xr-xdoc/tutorial/run-gendocs.sh2
-rw-r--r--doc/tutorial/style.css2
60 files changed, 1721 insertions, 1392 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 4443b42f8..eb23b534b 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,9 +1,14 @@
1# This Makefile.am is in the public domain 1# This Makefile.am is in the public domain
2if DOCUMENTATION 2if DOCUMENTATION
3 SUBDIRS = man doxygen handbook tutorial 3 SUBDIRS = doxygen handbook tutorial
4endif 4endif
5
5if !DOCUMENTATION 6if !DOCUMENTATION
6 SUBDIRS = man doxygen 7 SUBDIRS = doxygen
8endif
9
10if INCLUDE_MANPAGES
11 SUBDIRS += man
7endif 12endif
8 13
9EXTRA_DIST = \ 14EXTRA_DIST = \
diff --git a/doc/doc.h b/doc/doc.h
index 7dfeb1c42..db079e94a 100644
--- a/doc/doc.h
+++ b/doc/doc.h
@@ -7,5 +7,5 @@
7 * 7 *
8 * Some additional documentation can be found under [Files](files.html), in the src/include/ directory. 8 * Some additional documentation can be found under [Files](files.html), in the src/include/ directory.
9 * 9 *
10 * See also the [handbooks](https://gnunet.org/handbooks) on installation, and for user and developer documentation. 10 * See also the [handbooks](https://docs.gnunet.org/) on installation, and for user and developer documentation.
11 */ 11 */
diff --git a/doc/handbook/Makefile.am b/doc/handbook/Makefile.am
index 57a85bd56..a50a58937 100644
--- a/doc/handbook/Makefile.am
+++ b/doc/handbook/Makefile.am
@@ -18,7 +18,7 @@ infoimagedir = $(infodir)/images
18# we use the include version which is backwards compatible 18# we use the include version which is backwards compatible
19# and upwards compatible, while the ref variant is neither. 19# and upwards compatible, while the ref variant is neither.
20 20
21AM_MAKEINFOHTMLFLAGS = --no-split --css-include=manual.css 21AM_MAKEINFOHTMLFLAGS = --no-split --css-include=style.css --css-include=manual.css
22 22
23dist_infoimage_DATA = \ 23dist_infoimage_DATA = \
24 images/gnunet-gtk-0-10-gns-a-done.png \ 24 images/gnunet-gtk-0-10-gns-a-done.png \
@@ -154,13 +154,6 @@ version.texi/replacement/revert:
154 @echo "@set VERSION GPACKAGE_VERSION" > gversion.texi 154 @echo "@set VERSION GPACKAGE_VERSION" > gversion.texi
155 @echo "@set EDITION GPACKAGE_VERSION" >> gversion.texi 155 @echo "@set EDITION GPACKAGE_VERSION" >> gversion.texi
156 156
157if TEXI2MDOC_GENERATION
158gnunet-documentation.7: version.texi/replacement
159 @echo Attempting to output an mdoc formatted section 7 document
160 @texi2mdoc -I$(pwd):$(pwd)/chapters gnunet.texi > ../man/gnunet-documentation.7
161
162# TODO: (Maybe) other outputs resulting from this.
163endif
164 157
165# FIXME: rm *.html and *.pdf 158# FIXME: rm *.html and *.pdf
166#doc-clean: 159#doc-clean:
diff --git a/doc/handbook/chapters/developer.texi b/doc/handbook/chapters/developer.texi
index cd81fcfb7..6c426ebad 100644
--- a/doc/handbook/chapters/developer.texi
+++ b/doc/handbook/chapters/developer.texi
@@ -202,7 +202,8 @@ Gtk+-based user interfaces, including:
202@item @command{gnunet-statistics-gtk} (statistics over time), 202@item @command{gnunet-statistics-gtk} (statistics over time),
203@item @command{gnunet-peerinfo-gtk} 203@item @command{gnunet-peerinfo-gtk}
204(information about current connections and known peers), 204(information about current connections and known peers),
205@item @command{gnunet-chat-gtk} (chat GUI) and 205@item @command{gnunet-namestore-gtk} (GNS record editor),
206@item @command{gnunet-conversation-gtk} (voice chat GUI) and
206@item @command{gnunet-setup} (setup tool for "everything") 207@item @command{gnunet-setup} (setup tool for "everything")
207@end itemize 208@end itemize
208 209
@@ -2176,7 +2177,7 @@ work):
2176@example 2177@example
2177export PYPI=@value{PYPI-URL} 2178export PYPI=@value{PYPI-URL}
2178wget $PYPI/z/zope.interface/zope.interface-3.8.0.tar.gz 2179wget $PYPI/z/zope.interface/zope.interface-3.8.0.tar.gz
2179tar zvfz zope.interface-3.8.0.tar.gz 2180tar xzvf zope.interface-3.8.0.tar.gz
2180cd zope.interface-3.8.0 2181cd zope.interface-3.8.0
2181sudo python setup.py install 2182sudo python setup.py install
2182@end example 2183@end example
@@ -2401,10 +2402,11 @@ the program at various levels.
2401@file{gnunet_common.h} defines several @strong{log levels}: 2402@file{gnunet_common.h} defines several @strong{log levels}:
2402@table @asis 2403@table @asis
2403 2404
2404@item ERROR for errors (really problematic situations, often leading to 2405@item ERROR for errors
2405crashes) 2406(really problematic situations, often leading to crashes)
2406@item WARNING for warnings (troubling situations that might have 2407@item WARNING for warnings
2407negative consequences, although not fatal) 2408(troubling situations that might have negative consequences, although
2409not fatal)
2408@item INFO for various information. 2410@item INFO for various information.
2409Used somewhat rarely, as GNUnet statistics is used to hold and display 2411Used somewhat rarely, as GNUnet statistics is used to hold and display
2410most of the information that users might find interesting. 2412most of the information that users might find interesting.
@@ -2830,7 +2832,7 @@ which both ensure correct alignment when sending structs over the network.
2830@c *********************************************************************** 2832@c ***********************************************************************
2831@node Client - Establish connection 2833@node Client - Establish connection
2832@subsubsection Client - Establish connection 2834@subsubsection Client - Establish connection
2833@c %**end of header 2835
2834 2836
2835 2837
2836At first, on the client side, the underlying API is employed to create a 2838At first, on the client side, the underlying API is employed to create a
@@ -2845,7 +2847,7 @@ client = GNUNET_CLIENT_connect ("transport", cfg);
2845@c *********************************************************************** 2847@c ***********************************************************************
2846@node Client - Initialize request message 2848@node Client - Initialize request message
2847@subsubsection Client - Initialize request message 2849@subsubsection Client - Initialize request message
2848@c %**end of header 2850
2849 2851
2850When the connection is ready, we initialize the message. In this step, 2852When the connection is ready, we initialize the message. In this step,
2851all the fields of the message should be properly initialized, namely the 2853all the fields of the message should be properly initialized, namely the
@@ -2878,7 +2880,7 @@ Big Endian and Little Endian.
2878@c *********************************************************************** 2880@c ***********************************************************************
2879@node Client - Send request and receive response 2881@node Client - Send request and receive response
2880@subsubsection Client - Send request and receive response 2882@subsubsection Client - Send request and receive response
2881@c %**end of header 2883
2882 2884
2883@b{FIXME: This is very outdated, see the tutorial for the current API!} 2885@b{FIXME: This is very outdated, see the tutorial for the current API!}
2884 2886
@@ -2913,7 +2915,7 @@ int main(int argc, char**argv) @{
2913@c *********************************************************************** 2915@c ***********************************************************************
2914@node Server - Add new handles for specified messages 2916@node Server - Add new handles for specified messages
2915@subsubsection Server - Add new handles for specified messages 2917@subsubsection Server - Add new handles for specified messages
2916@c %**end of header 2918
2917 2919
2918in the function above the argument @code{run} is used to initiate 2920in the function above the argument @code{run} is used to initiate
2919transport service,and defined like this: 2921transport service,and defined like this:
@@ -2971,7 +2973,7 @@ depicted as @code{@{NULL, NULL, 0, 0@}} is set in the last area.
2971@c *********************************************************************** 2973@c ***********************************************************************
2972@node Server - Process request message 2974@node Server - Process request message
2973@subsubsection Server - Process request message 2975@subsubsection Server - Process request message
2974@c %**end of header 2976
2975 2977
2976After the initialization of transport service, the request message would 2978After the initialization of transport service, the request message would
2977be processed. Before handling the main message data, the validity of this 2979be processed. Before handling the main message data, the validity of this
@@ -3022,7 +3024,7 @@ message.
3022@c *********************************************************************** 3024@c ***********************************************************************
3023@node Server - Response to client 3025@node Server - Response to client
3024@subsubsection Server - Response to client 3026@subsubsection Server - Response to client
3025@c %**end of header 3027
3026 3028
3027Once the processing of current request is done, the server should give the 3029Once the processing of current request is done, the server should give the
3028response to the client. A new @code{struct AddressLookupMessage} would be 3030response to the client. A new @code{struct AddressLookupMessage} would be
@@ -3058,7 +3060,7 @@ to send the message.
3058@c *********************************************************************** 3060@c ***********************************************************************
3059@node Server - Notification of clients 3061@node Server - Notification of clients
3060@subsubsection Server - Notification of clients 3062@subsubsection Server - Notification of clients
3061@c %**end of header 3063
3062 3064
3063Often a service needs to (repeatedly) transmit notifications to a client 3065Often a service needs to (repeatedly) transmit notifications to a client
3064or a group of clients. In these cases, the client typically has once 3066or a group of clients. In these cases, the client typically has once
@@ -3087,7 +3089,7 @@ messages to the server.
3087@node Conversion between Network Byte Order (Big Endian) and Host Byte Order 3089@node Conversion between Network Byte Order (Big Endian) and Host Byte Order
3088@subsubsection Conversion between Network Byte Order (Big Endian) and Host Byte Order 3090@subsubsection Conversion between Network Byte Order (Big Endian) and Host Byte Order
3089@c %** subsub? it's a referenced page on the ipc document. 3091@c %** subsub? it's a referenced page on the ipc document.
3090@c %**end of header 3092
3091 3093
3092Here we can simply comprehend big endian and little endian as Network Byte 3094Here we can simply comprehend big endian and little endian as Network Byte
3093Order and Host Byte Order respectively. What is the difference between 3095Order and Host Byte Order respectively. What is the difference between
@@ -3143,7 +3145,7 @@ byte order.
3143@cindex Cryptography API 3145@cindex Cryptography API
3144@node Cryptography API 3146@node Cryptography API
3145@subsection Cryptography API 3147@subsection Cryptography API
3146@c %**end of header 3148
3147 3149
3148The gnunetutil APIs provides the cryptographic primitives used in GNUnet. 3150The gnunetutil APIs provides the cryptographic primitives used in GNUnet.
3149GNUnet uses 2048 bit RSA keys for the session key exchange and for signing 3151GNUnet uses 2048 bit RSA keys for the session key exchange and for signing
@@ -3180,7 +3182,7 @@ should be considered secure for traditional applications of RSA.
3180@cindex Message Queue API 3182@cindex Message Queue API
3181@node Message Queue API 3183@node Message Queue API
3182@subsection Message Queue API 3184@subsection Message Queue API
3183@c %**end of header 3185
3184 3186
3185@strong{ Introduction }@ 3187@strong{ Introduction }@
3186Often, applications need to queue messages that 3188Often, applications need to queue messages that
@@ -3324,7 +3326,7 @@ callback. When canceling an envelope, it is not necessary@ to call
3324@cindex Service API 3326@cindex Service API
3325@node Service API 3327@node Service API
3326@subsection Service API 3328@subsection Service API
3327@c %**end of header 3329
3328 3330
3329Most GNUnet code lives in the form of services. Services are processes 3331Most GNUnet code lives in the form of services. Services are processes
3330that offer an API for other components of the system to build on. Those 3332that offer an API for other components of the system to build on. Those
@@ -3400,7 +3402,7 @@ clients to set (possibly persistent) statistic values before terminating.
3400@c *********************************************************************** 3402@c ***********************************************************************
3401@node Optimizing Memory Consumption of GNUnet's (Multi-) Hash Maps 3403@node Optimizing Memory Consumption of GNUnet's (Multi-) Hash Maps
3402@subsection Optimizing Memory Consumption of GNUnet's (Multi-) Hash Maps 3404@subsection Optimizing Memory Consumption of GNUnet's (Multi-) Hash Maps
3403@c %**end of header 3405
3404 3406
3405A commonly used data structure in GNUnet is a (multi-)hash map. It is most 3407A commonly used data structure in GNUnet is a (multi-)hash map. It is most
3406often used to map a peer identity to some data structure, but also to map 3408often used to map a peer identity to some data structure, but also to map
@@ -3424,7 +3426,7 @@ the hash map.
3424 3426
3425@node Analysis 3427@node Analysis
3426@subsubsection Analysis 3428@subsubsection Analysis
3427@c %**end of header 3429
3428 3430
3429The main reason for the "excessive" memory consumption by the hash map is 3431The main reason for the "excessive" memory consumption by the hash map is
3430that GNUnet uses 512-bit cryptographic hash codes --- and the 3432that GNUnet uses 512-bit cryptographic hash codes --- and the
@@ -3475,7 +3477,7 @@ we tend to really try to keep the entries small.
3475@c *********************************************************************** 3477@c ***********************************************************************
3476@node Solution 3478@node Solution
3477@subsubsection Solution 3479@subsubsection Solution
3478@c %**end of header 3480
3479 3481
3480The solution that has now been implemented is to @strong{optionally} 3482The solution that has now been implemented is to @strong{optionally}
3481allow the hash map to not make a (deep) copy of the hash but instead have 3483allow the hash map to not make a (deep) copy of the hash but instead have
@@ -3493,7 +3495,7 @@ pointer and undefined behavior of the (multi-)hash map API.
3493@c *********************************************************************** 3495@c ***********************************************************************
3494@node Migration 3496@node Migration
3495@subsubsection Migration 3497@subsubsection Migration
3496@c %**end of header 3498
3497 3499
3498To use the new feature, first check that the values contain the respective 3500To use the new feature, first check that the values contain the respective
3499key (and never modify it). Then, all calls to 3501key (and never modify it). Then, all calls to
@@ -3542,7 +3544,7 @@ removed from the map, undefined behavior is likely to be observed.
3542@c *********************************************************************** 3544@c ***********************************************************************
3543@node Conclusion 3545@node Conclusion
3544@subsubsection Conclusion 3546@subsubsection Conclusion
3545@c %**end of header 3547
3546 3548
3547The new optimization can is often applicable and can result in a 3549The new optimization can is often applicable and can result in a
3548reduction in memory consumption of up to 30% in practice. However, it 3550reduction in memory consumption of up to 30% in practice. However, it
@@ -3555,10 +3557,11 @@ at least until benchmarks exist).
3555@c *********************************************************************** 3557@c ***********************************************************************
3556@node Availability 3558@node Availability
3557@subsubsection Availability 3559@subsubsection Availability
3558@c %**end of header
3559 3560
3560The new multi hash map code was committed in SVN 24319 (will be in GNUnet 3561
35610.9.4). Various subsystems (transport, core, dht, file-sharing) were 3562The new multi hash map code was committed in SVN 24319 (which made its
3563way into GNUnet version 0.9.4).
3564Various subsystems (transport, core, dht, file-sharing) were
3562previously audited and modified to take advantage of the new capability. 3565previously audited and modified to take advantage of the new capability.
3563In particular, memory consumption of the file-sharing service is expected 3566In particular, memory consumption of the file-sharing service is expected
3564to drop by 20-30% due to this change. 3567to drop by 20-30% due to this change.
@@ -3567,7 +3570,7 @@ to drop by 20-30% due to this change.
3567@cindex CONTAINER_MDLL API 3570@cindex CONTAINER_MDLL API
3568@node CONTAINER_MDLL API 3571@node CONTAINER_MDLL API
3569@subsection CONTAINER_MDLL API 3572@subsection CONTAINER_MDLL API
3570@c %**end of header 3573
3571 3574
3572This text documents the GNUNET_CONTAINER_MDLL API. The 3575This text documents the GNUNET_CONTAINER_MDLL API. The
3573GNUNET_CONTAINER_MDLL API is similar to the GNUNET_CONTAINER_DLL API in 3576GNUNET_CONTAINER_MDLL API is similar to the GNUNET_CONTAINER_DLL API in
@@ -3633,7 +3636,7 @@ Iterating over the list should be done by directly accessing the
3633@cindex ARM 3636@cindex ARM
3634@node Automatic Restart Manager (ARM) 3637@node Automatic Restart Manager (ARM)
3635@section Automatic Restart Manager (ARM) 3638@section Automatic Restart Manager (ARM)
3636@c %**end of header 3639
3637 3640
3638GNUnet's Automated Restart Manager (ARM) is the GNUnet service responsible 3641GNUnet's Automated Restart Manager (ARM) is the GNUnet service responsible
3639for system initialization and service babysitting. ARM starts and halts 3642for system initialization and service babysitting. ARM starts and halts
@@ -3654,7 +3657,7 @@ about how ARM works and how to interact with it.
3654@c *********************************************************************** 3657@c ***********************************************************************
3655@node Basic functionality 3658@node Basic functionality
3656@subsection Basic functionality 3659@subsection Basic functionality
3657@c %**end of header 3660
3658 3661
3659@itemize @bullet 3662@itemize @bullet
3660@item ARM source code can be found under "src/arm".@ Service processes are 3663@item ARM source code can be found under "src/arm".@ Service processes are
@@ -3678,7 +3681,7 @@ it to start a service "resolver", stops the "resolver" then stops "ARM".
3678@c *********************************************************************** 3681@c ***********************************************************************
3679@node Key configuration options 3682@node Key configuration options
3680@subsection Key configuration options 3683@subsection Key configuration options
3681@c %**end of header 3684
3682 3685
3683Configurations for ARM and services should be available in a .conf file 3686Configurations for ARM and services should be available in a .conf file
3684(As an example, see test_arm_api_data.conf). When running ARM, the 3687(As an example, see test_arm_api_data.conf). When running ARM, the
@@ -3747,7 +3750,7 @@ services that are going to run.
3747@c *********************************************************************** 3750@c ***********************************************************************
3748@node ARM - Availability 3751@node ARM - Availability
3749@subsection ARM - Availability 3752@subsection ARM - Availability
3750@c %**end of header 3753
3751 3754
3752As mentioned before, one of the features provided by ARM is starting 3755As mentioned before, one of the features provided by ARM is starting
3753services on demand. Consider the example of one service "client" that 3756services on demand. Consider the example of one service "client" that
@@ -3835,7 +3838,7 @@ problematic service.
3835@cindex TRANSPORT Subsystem 3838@cindex TRANSPORT Subsystem
3836@node TRANSPORT Subsystem 3839@node TRANSPORT Subsystem
3837@section TRANSPORT Subsystem 3840@section TRANSPORT Subsystem
3838@c %**end of header 3841
3839 3842
3840This chapter documents how the GNUnet transport subsystem works. The 3843This chapter documents how the GNUnet transport subsystem works. The
3841GNUnet transport subsystem consists of three main components: the 3844GNUnet transport subsystem consists of three main components: the
@@ -3893,7 +3896,7 @@ transport service.
3893 3896
3894@node Address validation protocol 3897@node Address validation protocol
3895@subsection Address validation protocol 3898@subsection Address validation protocol
3896@c %**end of header 3899
3897 3900
3898This section documents how the GNUnet transport service validates 3901This section documents how the GNUnet transport service validates
3899connections with other peers. It is a high-level description of the 3902connections with other peers. It is a high-level description of the
@@ -3956,7 +3959,7 @@ implementation details).
3956@cindex NAT library 3959@cindex NAT library
3957@node NAT library 3960@node NAT library
3958@section NAT library 3961@section NAT library
3959@c %**end of header 3962
3960 3963
3961The goal of the GNUnet NAT library is to provide a general-purpose API for 3964The goal of the GNUnet NAT library is to provide a general-purpose API for
3962NAT traversal @strong{without} third-party support. So protocols that 3965NAT traversal @strong{without} third-party support. So protocols that
@@ -4003,7 +4006,7 @@ This way, it is easy to test if the current NAT configuration is valid.
4003 4006
4004@node Distance-Vector plugin 4007@node Distance-Vector plugin
4005@section Distance-Vector plugin 4008@section Distance-Vector plugin
4006@c %**end of header 4009
4007 4010
4008The Distance Vector (DV) transport is a transport mechanism that allows 4011The Distance Vector (DV) transport is a transport mechanism that allows
4009peers to act as relays for each other, thereby connecting peers that would 4012peers to act as relays for each other, thereby connecting peers that would
@@ -4072,7 +4075,8 @@ message, and delivers it to Carol as though it came directly from Alice.
4072@cindex SMTP plugin 4075@cindex SMTP plugin
4073@node SMTP plugin 4076@node SMTP plugin
4074@section SMTP plugin 4077@section SMTP plugin
4075@c %**end of header 4078
4079@c TODO: Update!
4076 4080
4077This section describes the new SMTP transport plugin for GNUnet as it 4081This section describes the new SMTP transport plugin for GNUnet as it
4078exists in the 0.7.x and 0.8.x branch. SMTP support is currently not 4082exists in the 0.7.x and 0.8.x branch. SMTP support is currently not
@@ -4080,6 +4084,9 @@ available in GNUnet 0.9.x. This page also describes the transport layer
4080abstraction (as it existed in 0.7.x and 0.8.x) in more detail and gives 4084abstraction (as it existed in 0.7.x and 0.8.x) in more detail and gives
4081some benchmarking results. The performance results presented are quite 4085some benchmarking results. The performance results presented are quite
4082old and maybe outdated at this point. 4086old and maybe outdated at this point.
4087For the readers in the year 2019, you will notice by the mention of
4088version 0.7, 0.8, and 0.9 that this section has to be taken with your
4089usual grain of salt and be updated eventually.
4083 4090
4084@itemize @bullet 4091@itemize @bullet
4085@item Why use SMTP for a peer-to-peer transport? 4092@item Why use SMTP for a peer-to-peer transport?
@@ -4101,7 +4108,7 @@ old and maybe outdated at this point.
4101 4108
4102@node Why use SMTP for a peer-to-peer transport? 4109@node Why use SMTP for a peer-to-peer transport?
4103@subsection Why use SMTP for a peer-to-peer transport? 4110@subsection Why use SMTP for a peer-to-peer transport?
4104@c %**end of header 4111
4105 4112
4106There are many reasons why one would not want to use SMTP: 4113There are many reasons why one would not want to use SMTP:
4107 4114
@@ -4136,7 +4143,7 @@ type of situation.
4136 4143
4137@node How does it work? 4144@node How does it work?
4138@subsection How does it work? 4145@subsection How does it work?
4139@c %**end of header 4146
4140 4147
4141When a GNUnet peer needs to send a message to another GNUnet peer that has 4148When a GNUnet peer needs to send a message to another GNUnet peer that has
4142advertised (only) an SMTP transport address, GNUnet base64-encodes the 4149advertised (only) an SMTP transport address, GNUnet base64-encodes the
@@ -4149,7 +4156,7 @@ GNUnet E-mail messages by searching for a generic filter.
4149 4156
4150@node How do I configure my peer? 4157@node How do I configure my peer?
4151@subsection How do I configure my peer? 4158@subsection How do I configure my peer?
4152@c %**end of header 4159
4153 4160
4154First, you need to configure @code{procmail} to filter your inbound E-mail 4161First, you need to configure @code{procmail} to filter your inbound E-mail
4155for GNUnet traffic. The GNUnet messages must be delivered into a pipe, for 4162for GNUnet traffic. The GNUnet messages must be delivered into a pipe, for
@@ -4194,7 +4201,7 @@ This should be it, but you may probably want to test it first.
4194 4201
4195@node How do I test if it works? 4202@node How do I test if it works?
4196@subsection How do I test if it works? 4203@subsection How do I test if it works?
4197@c %**end of header 4204
4198 4205
4199Any transport can be subjected to some rudimentary tests using the 4206Any transport can be subjected to some rudimentary tests using the
4200@code{gnunet-transport-check} tool. The tool sends a message to the local 4207@code{gnunet-transport-check} tool. The tool sends a message to the local
@@ -4217,7 +4224,7 @@ to send and receive messages.
4217 4224
4218@node How fast is it? 4225@node How fast is it?
4219@subsection How fast is it? 4226@subsection How fast is it?
4220@c %**end of header 4227
4221 4228
4222We have measured the performance of the UDP, TCP and SMTP transport layer 4229We have measured the performance of the UDP, TCP and SMTP transport layer
4223directly and when used from an application using the GNUnet core. 4230directly and when used from an application using the GNUnet core.
@@ -4284,7 +4291,7 @@ benchmarking results.
4284@cindex Bluetooth plugin 4291@cindex Bluetooth plugin
4285@node Bluetooth plugin 4292@node Bluetooth plugin
4286@section Bluetooth plugin 4293@section Bluetooth plugin
4287@c %**end of header 4294
4288 4295
4289This page describes the new Bluetooth transport plugin for GNUnet. The 4296This page describes the new Bluetooth transport plugin for GNUnet. The
4290plugin is still in the testing stage so don't expect it to work 4297plugin is still in the testing stage so don't expect it to work
@@ -4310,7 +4317,7 @@ ask on the IRC channel.
4310 4317
4311@node What do I need to use the Bluetooth plugin transport? 4318@node What do I need to use the Bluetooth plugin transport?
4312@subsection What do I need to use the Bluetooth plugin transport? 4319@subsection What do I need to use the Bluetooth plugin transport?
4313@c %**end of header 4320
4314 4321
4315If you are a GNU/Linux user and you want to use the Bluetooth 4322If you are a GNU/Linux user and you want to use the Bluetooth
4316transport plugin you should install the 4323transport plugin you should install the
@@ -4337,7 +4344,7 @@ protocol so we cannot turn on your device programatically!
4337@c FIXME: Change to unique title 4344@c FIXME: Change to unique title
4338@node How does it work2? 4345@node How does it work2?
4339@subsection How does it work2? 4346@subsection How does it work2?
4340@c %**end of header 4347
4341 4348
4342The Bluetooth transport plugin uses virtually the same code as the WLAN 4349The Bluetooth transport plugin uses virtually the same code as the WLAN
4343plugin and only the helper binary is different. The helper takes a single 4350plugin and only the helper binary is different. The helper takes a single
@@ -4367,7 +4374,7 @@ discovery.
4367 4374
4368@node What possible errors should I be aware of? 4375@node What possible errors should I be aware of?
4369@subsection What possible errors should I be aware of? 4376@subsection What possible errors should I be aware of?
4370@c %**end of header 4377
4371 4378
4372@emph{This section is dedicated for GNU/Linux users} 4379@emph{This section is dedicated for GNU/Linux users}
4373 4380
@@ -4406,7 +4413,7 @@ the device and to send some particular commands to it.
4406@c FIXME: A more unique name 4413@c FIXME: A more unique name
4407@node How do I configure my peer2? 4414@node How do I configure my peer2?
4408@subsection How do I configure my peer2? 4415@subsection How do I configure my peer2?
4409@c %**end of header 4416
4410 4417
4411On GNU/Linux, you just have to be sure that the interface name 4418On GNU/Linux, you just have to be sure that the interface name
4412corresponds to the one that you want to use. 4419corresponds to the one that you want to use.
@@ -4440,7 +4447,7 @@ transport service.
4440 4447
4441@node How can I test it? 4448@node How can I test it?
4442@subsection How can I test it? 4449@subsection How can I test it?
4443@c %**end of header 4450
4444 4451
4445If you have two Bluetooth devices on the same machine and you are using 4452If you have two Bluetooth devices on the same machine and you are using
4446GNU/Linux you must: 4453GNU/Linux you must:
@@ -4487,7 +4494,7 @@ transport service.
4487 4494
4488@node The implementation of the Bluetooth transport plugin 4495@node The implementation of the Bluetooth transport plugin
4489@subsection The implementation of the Bluetooth transport plugin 4496@subsection The implementation of the Bluetooth transport plugin
4490@c %**end of header 4497
4491 4498
4492This page describes the implementation of the Bluetooth transport plugin. 4499This page describes the implementation of the Bluetooth transport plugin.
4493 4500
@@ -4521,7 +4528,7 @@ platforms.
4521 4528
4522@node Linux functionality 4529@node Linux functionality
4523@subsubsection Linux functionality 4530@subsubsection Linux functionality
4524@c %**end of header 4531
4525 4532
4526In order to implement the plugin functionality on GNU/Linux I 4533In order to implement the plugin functionality on GNU/Linux I
4527used the BlueZ stack. 4534used the BlueZ stack.
@@ -4617,7 +4624,7 @@ support for @strong{broadcast messages}.}
4617 4624
4618@node Details about the broadcast implementation 4625@node Details about the broadcast implementation
4619@subsubsection Details about the broadcast implementation 4626@subsubsection Details about the broadcast implementation
4620@c %**end of header 4627
4621 4628
4622First I want to point out that the broadcast functionality for the CONTROL 4629First I want to point out that the broadcast functionality for the CONTROL
4623messages is not implemented in a conventional way. Since the inquiry scan 4630messages is not implemented in a conventional way. Since the inquiry scan
@@ -4664,7 +4671,7 @@ simply use the socket.
4664 4671
4665@node Windows functionality 4672@node Windows functionality
4666@subsubsection Windows functionality 4673@subsubsection Windows functionality
4667@c %**end of header 4674
4668 4675
4669For Windows I decided to use the Microsoft Bluetooth stack which has the 4676For Windows I decided to use the Microsoft Bluetooth stack which has the
4670advantage of coming standard from Windows XP SP2. The main disadvantage is 4677advantage of coming standard from Windows XP SP2. The main disadvantage is
@@ -4719,7 +4726,7 @@ broadcast messages. When it receives a broadcast message it will skip it.
4719 4726
4720@node Pending features 4727@node Pending features
4721@subsubsection Pending features 4728@subsubsection Pending features
4722@c %**end of header 4729
4723 4730
4724@itemize @bullet 4731@itemize @bullet
4725@item Implement the broadcast functionality on Windows @emph{(currently 4732@item Implement the broadcast functionality on Windows @emph{(currently
@@ -4735,7 +4742,7 @@ contact me.
4735 4742
4736@node WLAN plugin 4743@node WLAN plugin
4737@section WLAN plugin 4744@section WLAN plugin
4738@c %**end of header 4745
4739 4746
4740This section documents how the wlan transport plugin works. Parts which 4747This section documents how the wlan transport plugin works. Parts which
4741are not implemented yet or could be better implemented are described at 4748are not implemented yet or could be better implemented are described at
@@ -4744,7 +4751,7 @@ the end.
4744@cindex ATS Subsystem 4751@cindex ATS Subsystem
4745@node ATS Subsystem 4752@node ATS Subsystem
4746@section ATS Subsystem 4753@section ATS Subsystem
4747@c %**end of header 4754
4748 4755
4749ATS stands for "automatic transport selection", and the function of ATS in 4756ATS stands for "automatic transport selection", and the function of ATS in
4750GNUnet is to decide on which address (and thus transport plugin) should 4757GNUnet is to decide on which address (and thus transport plugin) should
@@ -4767,7 +4774,7 @@ superior.
4767@cindex CORE Subsystem 4774@cindex CORE Subsystem
4768@node CORE Subsystem 4775@node CORE Subsystem
4769@section CORE Subsystem 4776@section CORE Subsystem
4770@c %**end of header 4777
4771 4778
4772The CORE subsystem in GNUnet is responsible for securing link-layer 4779The CORE subsystem in GNUnet is responsible for securing link-layer
4773communications between nodes in the GNUnet overlay network. CORE builds 4780communications between nodes in the GNUnet overlay network. CORE builds
@@ -4811,7 +4818,7 @@ message counters and ephemeral keys)
4811@cindex core subsystem limitations 4818@cindex core subsystem limitations
4812@node Limitations 4819@node Limitations
4813@subsection Limitations 4820@subsection Limitations
4814@c %**end of header 4821
4815 4822
4816CORE does not perform 4823CORE does not perform
4817@uref{http://en.wikipedia.org/wiki/Routing, routing}; using CORE it is 4824@uref{http://en.wikipedia.org/wiki/Routing, routing}; using CORE it is
@@ -4845,7 +4852,7 @@ control is needed, applications should use the CADET service.
4845@cindex when is a peer connected 4852@cindex when is a peer connected
4846@node When is a peer "connected"? 4853@node When is a peer "connected"?
4847@subsection When is a peer "connected"? 4854@subsection When is a peer "connected"?
4848@c %**end of header 4855
4849 4856
4850In addition to the security features mentioned above, CORE also provides 4857In addition to the security features mentioned above, CORE also provides
4851one additional key feature to applications using it, and that is a 4858one additional key feature to applications using it, and that is a
@@ -4878,7 +4885,7 @@ connection.
4878@cindex libgnunetcore 4885@cindex libgnunetcore
4879@node libgnunetcore 4886@node libgnunetcore
4880@subsection libgnunetcore 4887@subsection libgnunetcore
4881@c %**end of header 4888
4882 4889
4883The CORE API (defined in @file{gnunet_core_service.h}) is the basic 4890The CORE API (defined in @file{gnunet_core_service.h}) is the basic
4884messaging API used by P2P applications built using GNUnet. It provides 4891messaging API used by P2P applications built using GNUnet. It provides
@@ -4943,7 +4950,7 @@ re-established, the applications will be receive matching connect events.
4943@cindex core clinet-service protocol 4950@cindex core clinet-service protocol
4944@node The CORE Client-Service Protocol 4951@node The CORE Client-Service Protocol
4945@subsection The CORE Client-Service Protocol 4952@subsection The CORE Client-Service Protocol
4946@c %**end of header 4953
4947 4954
4948This section describes the protocol between an application using the CORE 4955This section describes the protocol between an application using the CORE
4949service (the client) and the CORE service process itself. 4956service (the client) and the CORE service process itself.
@@ -4957,7 +4964,7 @@ service (the client) and the CORE service process itself.
4957 4964
4958@node Setup2 4965@node Setup2
4959@subsubsection Setup2 4966@subsubsection Setup2
4960@c %**end of header 4967
4961 4968
4962When a client connects to the CORE service, it first sends a 4969When a client connects to the CORE service, it first sends a
4963@code{InitMessage} which specifies options for the connection and a set of 4970@code{InitMessage} which specifies options for the connection and a set of
@@ -4986,7 +4993,7 @@ both CORE and the client can send messages.
4986 4993
4987@node Notifications 4994@node Notifications
4988@subsubsection Notifications 4995@subsubsection Notifications
4989@c %**end of header 4996
4990 4997
4991The CORE will send @code{ConnectNotifyMessage}s and 4998The CORE will send @code{ConnectNotifyMessage}s and
4992@code{DisconnectNotifyMessage}s whenever peers connect or disconnect from 4999@code{DisconnectNotifyMessage}s whenever peers connect or disconnect from
@@ -5002,7 +5009,7 @@ identity given is that of the receiver.
5002 5009
5003@node Sending 5010@node Sending
5004@subsubsection Sending 5011@subsubsection Sending
5005@c %**end of header 5012
5006 5013
5007When a client wants to transmit a message, it first requests a 5014When a client wants to transmit a message, it first requests a
5008transmission slot by sending a @code{SendMessageRequest} which specifies 5015transmission slot by sending a @code{SendMessageRequest} which specifies
@@ -5022,7 +5029,7 @@ for each request).
5022@cindex CORE Peer-to-Peer Protocol 5029@cindex CORE Peer-to-Peer Protocol
5023@node The CORE Peer-to-Peer Protocol 5030@node The CORE Peer-to-Peer Protocol
5024@subsection The CORE Peer-to-Peer Protocol 5031@subsection The CORE Peer-to-Peer Protocol
5025@c %**end of header 5032
5026 5033
5027 5034
5028@menu 5035@menu
@@ -5035,7 +5042,7 @@ for each request).
5035@cindex EphemeralKeyMessage creation 5042@cindex EphemeralKeyMessage creation
5036@node Creating the EphemeralKeyMessage 5043@node Creating the EphemeralKeyMessage
5037@subsubsection Creating the EphemeralKeyMessage 5044@subsubsection Creating the EphemeralKeyMessage
5038@c %**end of header 5045
5039 5046
5040When the CORE service starts, each peer creates a fresh ephemeral (ECC) 5047When the CORE service starts, each peer creates a fresh ephemeral (ECC)
5041public-private key pair and signs the corresponding 5048public-private key pair and signs the corresponding
@@ -5076,7 +5083,7 @@ connection using the new ephemeral key
5076 5083
5077@node Establishing a connection 5084@node Establishing a connection
5078@subsubsection Establishing a connection 5085@subsubsection Establishing a connection
5079@c %**end of header 5086
5080 5087
5081Peers begin their interaction by sending a @code{EphemeralKeyMessage} to 5088Peers begin their interaction by sending a @code{EphemeralKeyMessage} to
5082the other peer once the TRANSPORT service notifies the CORE service about 5089the other peer once the TRANSPORT service notifies the CORE service about
@@ -5094,7 +5101,7 @@ connection to @code{KX_STATE_UP}.
5094 5101
5095@node Encryption and Decryption 5102@node Encryption and Decryption
5096@subsubsection Encryption and Decryption 5103@subsubsection Encryption and Decryption
5097@c %**end of header 5104
5098 5105
5099All functions related to the key exchange and encryption/decryption of 5106All functions related to the key exchange and encryption/decryption of
5100messages can be found in @file{gnunet-service-core_kx.c} (except for the 5107messages can be found in @file{gnunet-service-core_kx.c} (except for the
@@ -5122,7 +5129,7 @@ older than 12 hours.
5122 5129
5123@node Type maps 5130@node Type maps
5124@subsubsection Type maps 5131@subsubsection Type maps
5125@c %**end of header 5132
5126 5133
5127Once an encrypted connection has been established, peers begin to exchange 5134Once an encrypted connection has been established, peers begin to exchange
5128type maps. Type maps are used to allow the CORE service to determine which 5135type maps. Type maps are used to allow the CORE service to determine which
@@ -5155,6 +5162,8 @@ receiving a type map by sending back a
5155retransmit the type map (with exponential back-off). 5162retransmit the type map (with exponential back-off).
5156 5163
5157@cindex CADET Subsystem 5164@cindex CADET Subsystem
5165@cindex CADET
5166@cindex cadet
5158@node CADET Subsystem 5167@node CADET Subsystem
5159@section CADET Subsystem 5168@section CADET Subsystem
5160 5169
@@ -5221,6 +5230,7 @@ Should a message get lost on TRANSPORT/CORE level, if a channel is
5221created with as reliable, CADET will retransmit the lost message and 5230created with as reliable, CADET will retransmit the lost message and
5222deliver it in order to the destination application. 5231deliver it in order to the destination application.
5223 5232
5233@pindex GNUNET_CADET_connect
5224To communicate with other peers using CADET, it is necessary to first 5234To communicate with other peers using CADET, it is necessary to first
5225connect to the service using @code{GNUNET_CADET_connect}. 5235connect to the service using @code{GNUNET_CADET_connect}.
5226This function takes several parameters in form of callbacks, to allow the 5236This function takes several parameters in form of callbacks, to allow the
@@ -5232,7 +5242,8 @@ CADET, even do one connection per listening port).
5232The function returns a handle which has to be used for any further 5242The function returns a handle which has to be used for any further
5233interaction with the service. 5243interaction with the service.
5234 5244
5235To connect to a remote peer a client has to call the 5245@pindex GNUNET_CADET_channel_create
5246To connect to a remote peer, a client has to call the
5236@code{GNUNET_CADET_channel_create} function. The most important parameters 5247@code{GNUNET_CADET_channel_create} function. The most important parameters
5237given are the remote peer's identity (it public key) and a port, which 5248given are the remote peer's identity (it public key) and a port, which
5238specifies which application on the remote peer to connect to, similar to 5249specifies which application on the remote peer to connect to, similar to
@@ -5242,6 +5253,7 @@ exchanges to assure and authenticated, secure and verified communication.
5242Similar to @code{GNUNET_CADET_connect},@code{GNUNET_CADET_create_channel} 5253Similar to @code{GNUNET_CADET_connect},@code{GNUNET_CADET_create_channel}
5243returns a handle to interact with the created channel. 5254returns a handle to interact with the created channel.
5244 5255
5256@pindex GNUNET_CADET_notify_transmit_ready
5245For every message the client wants to send to the remote application, 5257For every message the client wants to send to the remote application,
5246@code{GNUNET_CADET_notify_transmit_ready} must be called, indicating the 5258@code{GNUNET_CADET_notify_transmit_ready} must be called, indicating the
5247channel on which the message should be sent and the size of the message 5259channel on which the message should be sent and the size of the message
@@ -5258,6 +5270,7 @@ case. To be alerted when a channel is online, a client can call
5258means that the channel is online. The callback can give 0 bytes to CADET 5270means that the channel is online. The callback can give 0 bytes to CADET
5259if no message is to be sent, this is OK. 5271if no message is to be sent, this is OK.
5260 5272
5273@pindex GNUNET_CADET_notify_transmit_cancel
5261If a transmission was requested but before the callback fires it is no 5274If a transmission was requested but before the callback fires it is no
5262longer needed, it can be canceled with 5275longer needed, it can be canceled with
5263@code{GNUNET_CADET_notify_transmit_ready_cancel}, which uses the handle 5276@code{GNUNET_CADET_notify_transmit_ready_cancel}, which uses the handle
@@ -5266,6 +5279,7 @@ As in the case of CORE, only one message can be requested at a time: a
5266client must not call @code{GNUNET_CADET_notify_transmit_ready} again until 5279client must not call @code{GNUNET_CADET_notify_transmit_ready} again until
5267the callback is called or the request is canceled. 5280the callback is called or the request is canceled.
5268 5281
5282@pindex GNUNET_CADET_channel_destroy
5269When a channel is no longer needed, a client can call 5283When a channel is no longer needed, a client can call
5270@code{GNUNET_CADET_channel_destroy} to get rid of it. 5284@code{GNUNET_CADET_channel_destroy} to get rid of it.
5271Note that CADET will try to transmit all pending traffic before notifying 5285Note that CADET will try to transmit all pending traffic before notifying
@@ -5277,6 +5291,7 @@ on any incoming or outgoing channels are given to the client when CADET
5277executes the callbacks given to it at the time of 5291executes the callbacks given to it at the time of
5278@code{GNUNET_CADET_connect}. 5292@code{GNUNET_CADET_connect}.
5279 5293
5294@pindex GNUNET_CADET_disconnect
5280Finally, when an application no longer wants to use CADET, it should call 5295Finally, when an application no longer wants to use CADET, it should call
5281@code{GNUNET_CADET_disconnect}, but first all channels and pending 5296@code{GNUNET_CADET_disconnect}, but first all channels and pending
5282transmissions must be closed (otherwise CADET will complain). 5297transmissions must be closed (otherwise CADET will complain).
@@ -5394,7 +5409,7 @@ to all the other peers, who will calculate the estimate from it.
5394@node Target value 5409@node Target value
5395@subsubsection Target value 5410@subsubsection Target value
5396 5411
5397@c %**end of header 5412
5398 5413
5399The target value itself is generated by hashing the current time, rounded 5414The target value itself is generated by hashing the current time, rounded
5400down to an agreed value. If the rounding amount is 1h (default) and the 5415down to an agreed value. If the rounding amount is 1h (default) and the
@@ -5404,7 +5419,7 @@ Every repetition is called a round.
5404 5419
5405@node Timing 5420@node Timing
5406@subsubsection Timing 5421@subsubsection Timing
5407@c %**end of header 5422
5408 5423
5409The NSE subsystem has some timing control to avoid everybody broadcasting 5424The NSE subsystem has some timing control to avoid everybody broadcasting
5410its ID all at one. Once each peer has the target random value, it 5425its ID all at one. Once each peer has the target random value, it
@@ -5421,7 +5436,7 @@ peers closest to the target value start broadcasting their ID the first.
5421@node Controlled Flooding 5436@node Controlled Flooding
5422@subsubsection Controlled Flooding 5437@subsubsection Controlled Flooding
5423 5438
5424@c %**end of header 5439
5425 5440
5426When a peer receives a value, first it verifies that it is closer than the 5441When a peer receives a value, first it verifies that it is closer than the
5427closest value it had so far, otherwise it answers the incoming message 5442closest value it had so far, otherwise it answers the incoming message
@@ -5440,7 +5455,7 @@ to the neighbors.
5440@node Calculating the estimate 5455@node Calculating the estimate
5441@subsubsection Calculating the estimate 5456@subsubsection Calculating the estimate
5442 5457
5443@c %**end of header 5458
5444 5459
5445Once the closest ID has been spread across the network each peer gets the 5460Once the closest ID has been spread across the network each peer gets the
5446exact distance between this ID and the target value of the round and 5461exact distance between this ID and the target value of the round and
@@ -5459,7 +5474,7 @@ means a factor of two in the size estimate.
5459@node libgnunetnse 5474@node libgnunetnse
5460@subsection libgnunetnse 5475@subsection libgnunetnse
5461 5476
5462@c %**end of header 5477
5463 5478
5464The NSE subsystem has the simplest API of all services, with only two 5479The NSE subsystem has the simplest API of all services, with only two
5465calls: @code{GNUNET_NSE_connect} and @code{GNUNET_NSE_disconnect}. 5480calls: @code{GNUNET_NSE_connect} and @code{GNUNET_NSE_disconnect}.
@@ -5485,7 +5500,7 @@ is no longer called with new estimates.
5485@node Results 5500@node Results
5486@subsubsection Results 5501@subsubsection Results
5487 5502
5488@c %**end of header 5503
5489 5504
5490The callback provides two values: the average and the 5505The callback provides two values: the average and the
5491@uref{http://en.wikipedia.org/wiki/Standard_deviation, standard deviation} 5506@uref{http://en.wikipedia.org/wiki/Standard_deviation, standard deviation}
@@ -5523,7 +5538,7 @@ changing rapidly).
5523@node libgnunetnse - Examples 5538@node libgnunetnse - Examples
5524@subsubsection libgnunetnse -Examples 5539@subsubsection libgnunetnse -Examples
5525 5540
5526@c %**end of header 5541
5527 5542
5528Let's close with a couple examples. 5543Let's close with a couple examples.
5529 5544
@@ -5550,7 +5565,7 @@ case a 5 sigma minimum would be 2 million and a 6 sigma minimum,
5550@node The NSE Client-Service Protocol 5565@node The NSE Client-Service Protocol
5551@subsection The NSE Client-Service Protocol 5566@subsection The NSE Client-Service Protocol
5552 5567
5553@c %**end of header 5568
5554 5569
5555As with the API, the client-service protocol is very simple, only has 2 5570As with the API, the client-service protocol is very simple, only has 2
5556different messages, defined in @code{src/nse/nse.h}: 5571different messages, defined in @code{src/nse/nse.h}:
@@ -5571,8 +5586,8 @@ simply disconnects from the service, with no message involved.
5571@node The NSE Peer-to-Peer Protocol 5586@node The NSE Peer-to-Peer Protocol
5572@subsection The NSE Peer-to-Peer Protocol 5587@subsection The NSE Peer-to-Peer Protocol
5573 5588
5574@c %**end of header
5575 5589
5590@pindex GNUNET_MESSAGE_TYPE_NSE_P2P_FLOOD
5576The NSE subsystem only has one message in the P2P protocol, the 5591The NSE subsystem only has one message in the P2P protocol, the
5577@code{GNUNET_MESSAGE_TYPE_NSE_P2P_FLOOD} message. 5592@code{GNUNET_MESSAGE_TYPE_NSE_P2P_FLOOD} message.
5578 5593
@@ -5626,7 +5641,7 @@ traffic spikes and minimize cross-messages.
5626@node HOSTLIST Subsystem 5641@node HOSTLIST Subsystem
5627@section HOSTLIST Subsystem 5642@section HOSTLIST Subsystem
5628 5643
5629@c %**end of header 5644
5630 5645
5631Peers in the GNUnet overlay network need address information so that they 5646Peers in the GNUnet overlay network need address information so that they
5632can connect with other peers. GNUnet uses so called HELLO messages to 5647can connect with other peers. GNUnet uses so called HELLO messages to
@@ -5664,7 +5679,7 @@ manual effort or the use of a HOSTLIST to obtain HELLOs.
5664@node HELLOs 5679@node HELLOs
5665@subsection HELLOs 5680@subsection HELLOs
5666 5681
5667@c %**end of header 5682
5668 5683
5669The basic information peers require to connect to other peers are 5684The basic information peers require to connect to other peers are
5670contained in so called HELLO messages you can think of as a business card. 5685contained in so called HELLO messages you can think of as a business card.
@@ -5676,7 +5691,7 @@ contact other peers.
5676@node Overview for the HOSTLIST subsystem 5691@node Overview for the HOSTLIST subsystem
5677@subsection Overview for the HOSTLIST subsystem 5692@subsection Overview for the HOSTLIST subsystem
5678 5693
5679@c %**end of header 5694
5680 5695
5681The HOSTLIST subsystem provides a way to distribute and obtain contact 5696The HOSTLIST subsystem provides a way to distribute and obtain contact
5682information to connect to other peers using a simple HTTP GET request. 5697information to connect to other peers using a simple HTTP GET request.
@@ -5702,7 +5717,7 @@ service.
5702@node Features 5717@node Features
5703@subsubsection Features 5718@subsubsection Features
5704 5719
5705@c %**end of header 5720
5706 5721
5707The HOSTLIST daemon can: 5722The HOSTLIST daemon can:
5708 5723
@@ -5720,7 +5735,7 @@ peers
5720@node HOSTLIST - Limitations 5735@node HOSTLIST - Limitations
5721@subsubsection HOSTLIST - Limitations 5736@subsubsection HOSTLIST - Limitations
5722 5737
5723@c %**end of header 5738
5724 5739
5725The HOSTLIST daemon does not: 5740The HOSTLIST daemon does not:
5726 5741
@@ -5732,7 +5747,7 @@ The HOSTLIST daemon does not:
5732@node Interacting with the HOSTLIST daemon 5747@node Interacting with the HOSTLIST daemon
5733@subsection Interacting with the HOSTLIST daemon 5748@subsection Interacting with the HOSTLIST daemon
5734 5749
5735@c %**end of header 5750
5736 5751
5737The HOSTLIST subsystem is currently implemented as a daemon, so there is 5752The HOSTLIST subsystem is currently implemented as a daemon, so there is
5738no need for the user to interact with it and therefore there is no 5753no need for the user to interact with it and therefore there is no
@@ -5760,7 +5775,7 @@ download frequency).
5760@node Hostlist security address validation 5775@node Hostlist security address validation
5761@subsection Hostlist security address validation 5776@subsection Hostlist security address validation
5762 5777
5763@c %**end of header 5778
5764 5779
5765Since information obtained from other parties cannot be trusted without 5780Since information obtained from other parties cannot be trusted without
5766validation, we have to distinguish between @emph{validated} and 5781validation, we have to distinguish between @emph{validated} and
@@ -5781,12 +5796,13 @@ to the TRANSPORT server to validate the addresses.
5781@node The HOSTLIST daemon 5796@node The HOSTLIST daemon
5782@subsection The HOSTLIST daemon 5797@subsection The HOSTLIST daemon
5783 5798
5784@c %**end of header 5799
5785 5800
5786The hostlist daemon is the main component of the HOSTLIST subsystem. It is 5801The hostlist daemon is the main component of the HOSTLIST subsystem. It is
5787started by the ARM service and (if configured) starts the HOSTLIST client 5802started by the ARM service and (if configured) starts the HOSTLIST client
5788and server components. 5803and server components.
5789 5804
5805@pindex GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT
5790If the daemon provides a hostlist itself it can advertise it's own 5806If the daemon provides a hostlist itself it can advertise it's own
5791hostlist to other peers. To do so it sends a 5807hostlist to other peers. To do so it sends a
5792@code{GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT} message to other peers 5808@code{GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT} message to other peers
@@ -5811,7 +5827,7 @@ subsystems and disconnecting from CORE.
5811@node The HOSTLIST server 5827@node The HOSTLIST server
5812@subsection The HOSTLIST server 5828@subsection The HOSTLIST server
5813 5829
5814@c %**end of header 5830
5815 5831
5816The server provides a way for other peers to obtain HELLOs. Basically it 5832The server provides a way for other peers to obtain HELLOs. Basically it
5817is a small web server other peers can connect to and download a list of 5833is a small web server other peers can connect to and download a list of
@@ -5827,7 +5843,7 @@ to other peers connecting on CORE level.
5827@node The HTTP Server 5843@node The HTTP Server
5828@subsubsection The HTTP Server 5844@subsubsection The HTTP Server
5829 5845
5830@c %**end of header 5846
5831 5847
5832During startup, the server starts a web server listening on the port 5848During startup, the server starts a web server listening on the port
5833specified with the HTTPPORT value (default 8080). In addition it connects 5849specified with the HTTPPORT value (default 8080). In addition it connects
@@ -5853,7 +5869,7 @@ The connection will be closed immediately if no hostlist is available.
5853@node Advertising the URL 5869@node Advertising the URL
5854@subsubsection Advertising the URL 5870@subsubsection Advertising the URL
5855 5871
5856@c %**end of header 5872
5857 5873
5858The server also advertises the URL to download the hostlist to other peers 5874The server also advertises the URL to download the hostlist to other peers
5859if hostlist advertisement is enabled. 5875if hostlist advertisement is enabled.
@@ -5865,7 +5881,7 @@ peer using the CORE service.
5865@node The HOSTLIST client 5881@node The HOSTLIST client
5866@subsection The HOSTLIST client 5882@subsection The HOSTLIST client
5867 5883
5868@c %**end of header 5884
5869 5885
5870The client provides the functionality to download the list of HELLOs from 5886The client provides the functionality to download the list of HELLOs from
5871a set of URLs. 5887a set of URLs.
@@ -5889,7 +5905,7 @@ The client supports two modes of operation:
5889@node Bootstrapping 5905@node Bootstrapping
5890@subsubsection Bootstrapping 5906@subsubsection Bootstrapping
5891 5907
5892@c %**end of header 5908
5893 5909
5894For bootstrapping, it schedules a task to download the hostlist from the 5910For bootstrapping, it schedules a task to download the hostlist from the
5895set of known URLs. 5911set of known URLs.
@@ -5918,7 +5934,7 @@ quality of this URL is updated.
5918@node Learning 5934@node Learning
5919@subsubsection Learning 5935@subsubsection Learning
5920 5936
5921@c %**end of header 5937
5922 5938
5923The client also manages hostlist advertisements from other peers. The 5939The client also manages hostlist advertisements from other peers. The
5924HOSTLIST daemon forwards @code{GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT} 5940HOSTLIST daemon forwards @code{GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT}
@@ -5937,7 +5953,7 @@ never discarded.
5937@node Usage 5953@node Usage
5938@subsection Usage 5954@subsection Usage
5939 5955
5940@c %**end of header 5956
5941 5957
5942To start HOSTLIST by default, it has to be added to the DEFAULTSERVICES 5958To start HOSTLIST by default, it has to be added to the DEFAULTSERVICES
5943section for the ARM services. This is done in the default configuration. 5959section for the ARM services. This is done in the default configuration.
@@ -5951,7 +5967,7 @@ Configuring your peer to provide a hostlist
5951@node IDENTITY Subsystem 5967@node IDENTITY Subsystem
5952@section IDENTITY Subsystem 5968@section IDENTITY Subsystem
5953 5969
5954@c %**end of header 5970
5955 5971
5956Identities of "users" in GNUnet are called egos. 5972Identities of "users" in GNUnet are called egos.
5957Egos can be used as pseudonyms ("fake names") or be tied to an 5973Egos can be used as pseudonyms ("fake names") or be tied to an
@@ -6007,7 +6023,7 @@ between anonymous and pseudonymous egos.
6007@cindex libgnunetidentity 6023@cindex libgnunetidentity
6008@node libgnunetidentity 6024@node libgnunetidentity
6009@subsection libgnunetidentity 6025@subsection libgnunetidentity
6010@c %**end of header 6026
6011 6027
6012 6028
6013@menu 6029@menu
@@ -6021,7 +6037,7 @@ between anonymous and pseudonymous egos.
6021@node Connecting to the service 6037@node Connecting to the service
6022@subsubsection Connecting to the service 6038@subsubsection Connecting to the service
6023 6039
6024@c %**end of header 6040
6025 6041
6026First, typical clients connect to the identity service using 6042First, typical clients connect to the identity service using
6027@code{GNUNET_IDENTITY_connect}. This function takes a callback as a 6043@code{GNUNET_IDENTITY_connect}. This function takes a callback as a
@@ -6057,7 +6073,7 @@ ego's handle.
6057@node Operations on Egos 6073@node Operations on Egos
6058@subsubsection Operations on Egos 6074@subsubsection Operations on Egos
6059 6075
6060@c %**end of header 6076
6061 6077
6062Given an ego handle, the main operations are to get its associated private 6078Given an ego handle, the main operations are to get its associated private
6063key using @code{GNUNET_IDENTITY_ego_get_private_key} or its associated 6079key using @code{GNUNET_IDENTITY_ego_get_private_key} or its associated
@@ -6080,7 +6096,7 @@ only the continuation will no longer be called.
6080@node The anonymous Ego 6096@node The anonymous Ego
6081@subsubsection The anonymous Ego 6097@subsubsection The anonymous Ego
6082 6098
6083@c %**end of header 6099
6084 6100
6085A special way to obtain an ego handle is to call 6101A special way to obtain an ego handle is to call
6086@code{GNUNET_IDENTITY_ego_get_anonymous}, which returns an ego for the 6102@code{GNUNET_IDENTITY_ego_get_anonymous}, which returns an ego for the
@@ -6115,7 +6131,7 @@ using @code{GNUNET_IDENTITY_get}.
6115@node The IDENTITY Client-Service Protocol 6131@node The IDENTITY Client-Service Protocol
6116@subsection The IDENTITY Client-Service Protocol 6132@subsection The IDENTITY Client-Service Protocol
6117 6133
6118@c %**end of header 6134
6119 6135
6120A client connecting to the identity service first sends a message with 6136A client connecting to the identity service first sends a message with
6121type 6137type
@@ -6206,7 +6222,7 @@ private key.}
6206@node Editing Zone Information 6222@node Editing Zone Information
6207@subsubsection Editing Zone Information 6223@subsubsection Editing Zone Information
6208 6224
6209@c %**end of header 6225
6210 6226
6211NAMESTORE provides functions to lookup records stored under a label in a 6227NAMESTORE provides functions to lookup records stored under a label in a
6212zone and to store records under a label in a zone. 6228zone and to store records under a label in a zone.
@@ -6246,7 +6262,7 @@ the operation.
6246@node Iterating Zone Information 6262@node Iterating Zone Information
6247@subsubsection Iterating Zone Information 6263@subsubsection Iterating Zone Information
6248 6264
6249@c %**end of header 6265
6250 6266
6251A client can iterate over all information in a zone or all zones managed 6267A client can iterate over all information in a zone or all zones managed
6252by NAMESTORE. 6268by NAMESTORE.
@@ -6266,7 +6282,7 @@ NULL value to indicate.
6266@node Monitoring Zone Information 6282@node Monitoring Zone Information
6267@subsubsection Monitoring Zone Information 6283@subsubsection Monitoring Zone Information
6268 6284
6269@c %**end of header 6285
6270 6286
6271Clients can also monitor zones to be notified about changes. Here the 6287Clients can also monitor zones to be notified about changes. Here the
6272clients uses the @code{GNUNET_NAMESTORE_zone_monitor_start} function and 6288clients uses the @code{GNUNET_NAMESTORE_zone_monitor_start} function and
@@ -6287,7 +6303,7 @@ from the function to start the monitoring.
6287@node PEERINFO Subsystem 6303@node PEERINFO Subsystem
6288@section PEERINFO Subsystem 6304@section PEERINFO Subsystem
6289 6305
6290@c %**end of header 6306
6291 6307
6292The PEERINFO subsystem is used to store verified (validated) information 6308The PEERINFO subsystem is used to store verified (validated) information
6293about known peers in a persistent way. It obtains these addresses for 6309about known peers in a persistent way. It obtains these addresses for
@@ -6320,7 +6336,7 @@ service providing this functionality.
6320@node PEERINFO - Features 6336@node PEERINFO - Features
6321@subsection PEERINFO - Features 6337@subsection PEERINFO - Features
6322 6338
6323@c %**end of header 6339
6324 6340
6325@itemize @bullet 6341@itemize @bullet
6326@item Persistent storage 6342@item Persistent storage
@@ -6340,7 +6356,7 @@ service providing this functionality.
6340@node DeveloperPeer Information 6356@node DeveloperPeer Information
6341@subsection DeveloperPeer Information 6357@subsection DeveloperPeer Information
6342 6358
6343@c %**end of header 6359
6344 6360
6345The PEERINFO subsystem stores these information in the form of HELLO 6361The PEERINFO subsystem stores these information in the form of HELLO
6346messages you can think of as business cards. 6362messages you can think of as business cards.
@@ -6374,7 +6390,7 @@ subsystem using these information to maintain connections to other peers.
6374@node Startup 6390@node Startup
6375@subsection Startup 6391@subsection Startup
6376 6392
6377@c %**end of header 6393
6378 6394
6379During startup the PEERINFO services loads persistent HELLOs from disk. 6395During startup the PEERINFO services loads persistent HELLOs from disk.
6380First PEERINFO parses the directory configured in the HOSTS value of the 6396First PEERINFO parses the directory configured in the HOSTS value of the
@@ -6390,7 +6406,7 @@ The use of these HELLOs can be prevented by setting the
6390@node Managing Information 6406@node Managing Information
6391@subsection Managing Information 6407@subsection Managing Information
6392 6408
6393@c %**end of header 6409
6394 6410
6395The PEERINFO services stores information about known PEERS and a single 6411The PEERINFO services stores information about known PEERS and a single
6396HELLO message for every peer. 6412HELLO message for every peer.
@@ -6412,7 +6428,7 @@ from the disk.
6412@node Obtaining Information 6428@node Obtaining Information
6413@subsection Obtaining Information 6429@subsection Obtaining Information
6414 6430
6415@c %**end of header 6431
6416 6432
6417When a client requests information from PEERINFO, PEERINFO performs a 6433When a client requests information from PEERINFO, PEERINFO performs a
6418lookup for the respective peer or all peers if desired and transmits this 6434lookup for the respective peer or all peers if desired and transmits this
@@ -6429,7 +6445,7 @@ merge for example) or a new peer was added.
6429@node The PEERINFO Client-Service Protocol 6445@node The PEERINFO Client-Service Protocol
6430@subsection The PEERINFO Client-Service Protocol 6446@subsection The PEERINFO Client-Service Protocol
6431 6447
6432@c %**end of header 6448
6433 6449
6434To connect and disconnect to and from the PEERINFO Service PEERINFO 6450To connect and disconnect to and from the PEERINFO Service PEERINFO
6435utilizes the util client/server infrastructure, so no special messages 6451utilizes the util client/server infrastructure, so no special messages
@@ -6461,7 +6477,7 @@ message, it can proceed with the next request if any is pending.
6461@node libgnunetpeerinfo 6477@node libgnunetpeerinfo
6462@subsection libgnunetpeerinfo 6478@subsection libgnunetpeerinfo
6463 6479
6464@c %**end of header 6480
6465 6481
6466The PEERINFO API consists mainly of three different functionalities: 6482The PEERINFO API consists mainly of three different functionalities:
6467 6483
@@ -6480,7 +6496,7 @@ The PEERINFO API consists mainly of three different functionalities:
6480@node Connecting to the PEERINFO Service 6496@node Connecting to the PEERINFO Service
6481@subsubsection Connecting to the PEERINFO Service 6497@subsubsection Connecting to the PEERINFO Service
6482 6498
6483@c %**end of header 6499
6484 6500
6485To connect to the PEERINFO service the function 6501To connect to the PEERINFO service the function
6486@code{GNUNET_PEERINFO_connect} is used, taking a configuration handle as 6502@code{GNUNET_PEERINFO_connect} is used, taking a configuration handle as
@@ -6491,7 +6507,7 @@ handle returned from the connect function has to be called.
6491@node Adding Information to the PEERINFO Service 6507@node Adding Information to the PEERINFO Service
6492@subsubsection Adding Information to the PEERINFO Service 6508@subsubsection Adding Information to the PEERINFO Service
6493 6509
6494@c %**end of header 6510
6495 6511
6496@code{GNUNET_PEERINFO_add_peer} adds a new peer to the PEERINFO subsystem 6512@code{GNUNET_PEERINFO_add_peer} adds a new peer to the PEERINFO subsystem
6497storage. This function takes the PEERINFO handle as an argument, the HELLO 6513storage. This function takes the PEERINFO handle as an argument, the HELLO
@@ -6506,7 +6522,7 @@ can tell PEERINFO to notify if new peer information are available.
6506@node Obtaining Information from the PEERINFO Service 6522@node Obtaining Information from the PEERINFO Service
6507@subsubsection Obtaining Information from the PEERINFO Service 6523@subsubsection Obtaining Information from the PEERINFO Service
6508 6524
6509@c %**end of header 6525
6510 6526
6511To iterate over information in PEERINFO you use 6527To iterate over information in PEERINFO you use
6512@code{GNUNET_PEERINFO_iterate}. 6528@code{GNUNET_PEERINFO_iterate}.
@@ -6531,7 +6547,7 @@ with @code{GNUNET_PEERINFO_notify_cancel}.
6531@node PEERSTORE Subsystem 6547@node PEERSTORE Subsystem
6532@section PEERSTORE Subsystem 6548@section PEERSTORE Subsystem
6533 6549
6534@c %**end of header 6550
6535 6551
6536GNUnet's PEERSTORE subsystem offers persistent per-peer storage for other 6552GNUnet's PEERSTORE subsystem offers persistent per-peer storage for other
6537GNUnet subsystems. GNUnet subsystems can use PEERSTORE to persistently 6553GNUnet subsystems. GNUnet subsystems can use PEERSTORE to persistently
@@ -6555,7 +6571,7 @@ Each data record stored with PEERSTORE contains the following fields:
6555@node Functionality 6571@node Functionality
6556@subsection Functionality 6572@subsection Functionality
6557 6573
6558@c %**end of header 6574
6559 6575
6560Subsystems can store any type of value under a (subsystem, peerid, key) 6576Subsystems can store any type of value under a (subsystem, peerid, key)
6561combination. A "replace" flag set during store operations forces the 6577combination. A "replace" flag set during store operations forces the
@@ -6581,7 +6597,7 @@ request to PEERSTORE.
6581@node Architecture 6597@node Architecture
6582@subsection Architecture 6598@subsection Architecture
6583 6599
6584@c %**end of header 6600
6585 6601
6586PEERSTORE implements the following components: 6602PEERSTORE implements the following components:
6587 6603
@@ -6597,7 +6613,7 @@ only an "sqlite" plugin is implemented.
6597@node libgnunetpeerstore 6613@node libgnunetpeerstore
6598@subsection libgnunetpeerstore 6614@subsection libgnunetpeerstore
6599 6615
6600@c %**end of header 6616
6601 6617
6602libgnunetpeerstore is the library containing the PEERSTORE API. Subsystems 6618libgnunetpeerstore is the library containing the PEERSTORE API. Subsystems
6603wishing to communicate with the PEERSTORE service use this API to open a 6619wishing to communicate with the PEERSTORE service use this API to open a
@@ -6645,7 +6661,7 @@ destroyed as well.
6645@node SET Subsystem 6661@node SET Subsystem
6646@section SET Subsystem 6662@section SET Subsystem
6647 6663
6648@c %**end of header 6664
6649 6665
6650The SET service implements efficient set operations between two peers 6666The SET service implements efficient set operations between two peers
6651over a mesh tunnel. 6667over a mesh tunnel.
@@ -6668,7 +6684,7 @@ The size of an element's data is limited to around 62 KB.
6668@node Local Sets 6684@node Local Sets
6669@subsection Local Sets 6685@subsection Local Sets
6670 6686
6671@c %**end of header 6687
6672 6688
6673Sets created by a local client can be modified and reused for multiple 6689Sets created by a local client can be modified and reused for multiple
6674operations. As each set operation requires potentially expensive special 6690operations. As each set operation requires potentially expensive special
@@ -6682,7 +6698,7 @@ type.
6682@node Set Modifications 6698@node Set Modifications
6683@subsection Set Modifications 6699@subsection Set Modifications
6684 6700
6685@c %**end of header 6701
6686 6702
6687Even when set operations are active, one can add to and remove elements 6703Even when set operations are active, one can add to and remove elements
6688from a set. 6704from a set.
@@ -6695,7 +6711,7 @@ attaching @emph{generation information} to each element and operation.
6695@node Set Operations 6711@node Set Operations
6696@subsection Set Operations 6712@subsection Set Operations
6697 6713
6698@c %**end of header 6714
6699 6715
6700Set operations can be started in two ways: Either by accepting an 6716Set operations can be started in two ways: Either by accepting an
6701operation request from a remote peer, or by requesting a set operation 6717operation request from a remote peer, or by requesting a set operation
@@ -6712,7 +6728,7 @@ request (providing a local set for the operation) or reject it.
6712@node Result Elements 6728@node Result Elements
6713@subsection Result Elements 6729@subsection Result Elements
6714 6730
6715@c %**end of header 6731
6716 6732
6717The SET service has three @emph{result modes} that determine how an 6733The SET service has three @emph{result modes} that determine how an
6718operation's result set is delivered to the client: 6734operation's result set is delivered to the client:
@@ -6737,7 +6753,7 @@ actually interested in the result of the set operation.
6737@node libgnunetset 6753@node libgnunetset
6738@subsection libgnunetset 6754@subsection libgnunetset
6739 6755
6740@c %**end of header 6756
6741 6757
6742@menu 6758@menu
6743* Sets:: 6759* Sets::
@@ -6750,7 +6766,7 @@ actually interested in the result of the set operation.
6750@node Sets 6766@node Sets
6751@subsubsection Sets 6767@subsubsection Sets
6752 6768
6753@c %**end of header 6769
6754 6770
6755New sets are created with @code{GNUNET_SET_create}. Both the local peer's 6771New sets are created with @code{GNUNET_SET_create}. Both the local peer's
6756configuration (as each set has its own client connection) and the 6772configuration (as each set has its own client connection) and the
@@ -6766,7 +6782,7 @@ Elements are added and removed with @code{GNUNET_SET_add_element} and
6766@node Listeners 6782@node Listeners
6767@subsubsection Listeners 6783@subsubsection Listeners
6768 6784
6769@c %**end of header 6785
6770 6786
6771Listeners are created with @code{GNUNET_SET_listen}. Each time time a 6787Listeners are created with @code{GNUNET_SET_listen}. Each time time a
6772remote peer suggests a set operation with an application id and operation 6788remote peer suggests a set operation with an application id and operation
@@ -6779,7 +6795,7 @@ until the client calls @code{GNUNET_SET_commit}
6779@node Operations 6795@node Operations
6780@subsubsection Operations 6796@subsubsection Operations
6781 6797
6782@c %**end of header 6798
6783 6799
6784Operations to be initiated by the local peer are created with 6800Operations to be initiated by the local peer are created with
6785@code{GNUNET_SET_prepare}. Note that the operation will not be started 6801@code{GNUNET_SET_prepare}. Note that the operation will not be started
@@ -6789,7 +6805,7 @@ until the client calls @code{GNUNET_SET_commit}
6789@node Supplying a Set 6805@node Supplying a Set
6790@subsubsection Supplying a Set 6806@subsubsection Supplying a Set
6791 6807
6792@c %**end of header 6808
6793 6809
6794To create symmetry between the two ways of starting a set operation 6810To create symmetry between the two ways of starting a set operation
6795(accepting and initiating it), the operation handles returned by 6811(accepting and initiating it), the operation handles returned by
@@ -6803,7 +6819,7 @@ operation.
6803@node The Result Callback 6819@node The Result Callback
6804@subsubsection The Result Callback 6820@subsubsection The Result Callback
6805 6821
6806@c %**end of header 6822
6807 6823
6808Clients must specify both a result mode and a result callback with 6824Clients must specify both a result mode and a result callback with
6809@code{GNUNET_SET_accept} and @code{GNUNET_SET_prepare}. The result 6825@code{GNUNET_SET_accept} and @code{GNUNET_SET_prepare}. The result
@@ -6817,7 +6833,7 @@ or if it is in the difference between the original set and the final set.
6817@node The SET Client-Service Protocol 6833@node The SET Client-Service Protocol
6818@subsection The SET Client-Service Protocol 6834@subsection The SET Client-Service Protocol
6819 6835
6820@c %**end of header 6836
6821 6837
6822@menu 6838@menu
6823* Creating Sets:: 6839* Creating Sets::
@@ -6831,7 +6847,7 @@ or if it is in the difference between the original set and the final set.
6831@node Creating Sets 6847@node Creating Sets
6832@subsubsection Creating Sets 6848@subsubsection Creating Sets
6833 6849
6834@c %**end of header 6850
6835 6851
6836For each set of a client, there exists a client connection to the service. 6852For each set of a client, there exists a client connection to the service.
6837Sets are created by sending the @code{GNUNET_SERVICE_SET_CREATE} message 6853Sets are created by sending the @code{GNUNET_SERVICE_SET_CREATE} message
@@ -6842,7 +6858,7 @@ the client.
6842@node Listeners2 6858@node Listeners2
6843@subsubsection Listeners2 6859@subsubsection Listeners2
6844 6860
6845@c %**end of header 6861
6846 6862
6847Each listener also requires a seperate client connection. By sending the 6863Each listener also requires a seperate client connection. By sending the
6848@code{GNUNET_SERVICE_SET_LISTEN} message, the client notifies the service 6864@code{GNUNET_SERVICE_SET_LISTEN} message, the client notifies the service
@@ -6856,7 +6872,7 @@ is supplied for the set operation.
6856@node Initiating Operations 6872@node Initiating Operations
6857@subsubsection Initiating Operations 6873@subsubsection Initiating Operations
6858 6874
6859@c %**end of header 6875
6860 6876
6861Operations with remote peers are initiated by sending a 6877Operations with remote peers are initiated by sending a
6862@code{GNUNET_SERVICE_SET_EVALUATE} message to the service. The@ client 6878@code{GNUNET_SERVICE_SET_EVALUATE} message to the service. The@ client
@@ -6865,7 +6881,7 @@ connection that this message is sent by determines the set to use.
6865@node Modifying Sets 6881@node Modifying Sets
6866@subsubsection Modifying Sets 6882@subsubsection Modifying Sets
6867 6883
6868@c %**end of header 6884
6869 6885
6870Sets are modified with the @code{GNUNET_SERVICE_SET_ADD} and 6886Sets are modified with the @code{GNUNET_SERVICE_SET_ADD} and
6871@code{GNUNET_SERVICE_SET_REMOVE} messages. 6887@code{GNUNET_SERVICE_SET_REMOVE} messages.
@@ -6878,7 +6894,7 @@ Sets are modified with the @code{GNUNET_SERVICE_SET_ADD} and
6878 6894
6879@node Results and Operation Status 6895@node Results and Operation Status
6880@subsubsection Results and Operation Status 6896@subsubsection Results and Operation Status
6881@c %**end of header 6897
6882 6898
6883The service notifies the client of result elements and success/failure of 6899The service notifies the client of result elements and success/failure of
6884a set operation with the @code{GNUNET_SERVICE_SET_RESULT} message. 6900a set operation with the @code{GNUNET_SERVICE_SET_RESULT} message.
@@ -6886,7 +6902,7 @@ a set operation with the @code{GNUNET_SERVICE_SET_RESULT} message.
6886@node Iterating Sets 6902@node Iterating Sets
6887@subsubsection Iterating Sets 6903@subsubsection Iterating Sets
6888 6904
6889@c %**end of header 6905
6890 6906
6891All elements of a set can be requested by sending 6907All elements of a set can be requested by sending
6892@code{GNUNET_SERVICE_SET_ITER_REQUEST}. The server responds with 6908@code{GNUNET_SERVICE_SET_ITER_REQUEST}. The server responds with
@@ -6899,7 +6915,7 @@ iteration may be active for a set at any given time.
6899@node The SET Intersection Peer-to-Peer Protocol 6915@node The SET Intersection Peer-to-Peer Protocol
6900@subsection The SET Intersection Peer-to-Peer Protocol 6916@subsection The SET Intersection Peer-to-Peer Protocol
6901 6917
6902@c %**end of header 6918
6903 6919
6904The intersection protocol operates over CADET and starts with a 6920The intersection protocol operates over CADET and starts with a
6905GNUNET_MESSAGE_TYPE_SET_P2P_OPERATION_REQUEST being sent by the peer 6921GNUNET_MESSAGE_TYPE_SET_P2P_OPERATION_REQUEST being sent by the peer
@@ -6931,7 +6947,7 @@ just the initial handshake.
6931@node The Bloom filter exchange 6947@node The Bloom filter exchange
6932@subsubsection The Bloom filter exchange 6948@subsubsection The Bloom filter exchange
6933 6949
6934@c %**end of header 6950
6935 6951
6936In this phase, each peer transmits a Bloom filter over the remaining 6952In this phase, each peer transmits a Bloom filter over the remaining
6937keys of the local set to the other peer using a 6953keys of the local set to the other peer using a
@@ -6958,7 +6974,7 @@ this time as the sender.
6958@node Salt 6974@node Salt
6959@subsubsection Salt 6975@subsubsection Salt
6960 6976
6961@c %**end of header 6977
6962 6978
6963Bloomfilter operations are probabilistic: With some non-zero probability 6979Bloomfilter operations are probabilistic: With some non-zero probability
6964the test may incorrectly say an element is in the set, even though it is 6980the test may incorrectly say an element is in the set, even though it is
@@ -6978,7 +6994,7 @@ sets of the same size, and where the XOR over all keys computes the same
6978@node The SET Union Peer-to-Peer Protocol 6994@node The SET Union Peer-to-Peer Protocol
6979@subsection The SET Union Peer-to-Peer Protocol 6995@subsection The SET Union Peer-to-Peer Protocol
6980 6996
6981@c %**end of header 6997
6982 6998
6983The SET union protocol is based on Eppstein's efficient set reconciliation 6999The SET union protocol is based on Eppstein's efficient set reconciliation
6984without prior context. You should read this paper first if you want to 7000without prior context. You should read this paper first if you want to
@@ -7021,7 +7037,7 @@ succeeding if they failed due to collisions before.
7021@node STATISTICS Subsystem 7037@node STATISTICS Subsystem
7022@section STATISTICS Subsystem 7038@section STATISTICS Subsystem
7023 7039
7024@c %**end of header 7040
7025 7041
7026In GNUnet, the STATISTICS subsystem offers a central place for all 7042In GNUnet, the STATISTICS subsystem offers a central place for all
7027subsystems to publish unsigned 64-bit integer run-time statistics. 7043subsystems to publish unsigned 64-bit integer run-time statistics.
@@ -7073,7 +7089,7 @@ to STATISTICS during shutdown.
7073@node libgnunetstatistics 7089@node libgnunetstatistics
7074@subsection libgnunetstatistics 7090@subsection libgnunetstatistics
7075 7091
7076@c %**end of header 7092
7077 7093
7078@strong{libgnunetstatistics} is the library containing the API for the 7094@strong{libgnunetstatistics} is the library containing the API for the
7079STATISTICS subsystem. Any process requiring to use STATISTICS should use 7095STATISTICS subsystem. Any process requiring to use STATISTICS should use
@@ -7104,7 +7120,7 @@ functions from the API can be used.
7104@node Statistics retrieval 7120@node Statistics retrieval
7105@subsubsection Statistics retrieval 7121@subsubsection Statistics retrieval
7106 7122
7107@c %**end of header 7123
7108 7124
7109Once a connection to the statistics service is obtained, information 7125Once a connection to the statistics service is obtained, information
7110about any other system which uses statistics can be retrieved with the 7126about any other system which uses statistics can be retrieved with the
@@ -7127,7 +7143,7 @@ when we want to shutdown and cleanup everything.
7127@node Setting statistics and updating them 7143@node Setting statistics and updating them
7128@subsubsection Setting statistics and updating them 7144@subsubsection Setting statistics and updating them
7129 7145
7130@c %**end of header 7146
7131 7147
7132So far we have seen how to retrieve statistics, here we will learn how we 7148So far we have seen how to retrieve statistics, here we will learn how we
7133can set statistics and update them so that other subsystems can retrieve 7149can set statistics and update them so that other subsystems can retrieve
@@ -7157,7 +7173,7 @@ to worry about sending requests too quickly.
7157@node Watches 7173@node Watches
7158@subsubsection Watches 7174@subsubsection Watches
7159 7175
7160@c %**end of header 7176
7161 7177
7162As interesting feature of STATISTICS lies in serving notifications 7178As interesting feature of STATISTICS lies in serving notifications
7163whenever a statistic of our interest is modified. 7179whenever a statistic of our interest is modified.
@@ -7177,7 +7193,7 @@ parameters that are used for registering the watch.
7177 7193
7178@node The STATISTICS Client-Service Protocol 7194@node The STATISTICS Client-Service Protocol
7179@subsection The STATISTICS Client-Service Protocol 7195@subsection The STATISTICS Client-Service Protocol
7180@c %**end of header 7196
7181 7197
7182 7198
7183@menu 7199@menu
@@ -7189,7 +7205,7 @@ parameters that are used for registering the watch.
7189@node Statistics retrieval2 7205@node Statistics retrieval2
7190@subsubsection Statistics retrieval2 7206@subsubsection Statistics retrieval2
7191 7207
7192@c %**end of header 7208
7193 7209
7194To retrieve statistics, the client transmits a message of type 7210To retrieve statistics, the client transmits a message of type
7195@code{GNUNET_MESSAGE_TYPE_STATISTICS_GET} containing the given subsystem 7211@code{GNUNET_MESSAGE_TYPE_STATISTICS_GET} containing the given subsystem
@@ -7203,7 +7219,7 @@ type @code{GNUNET_MESSAGE_TYPE_STATISTICS_END}.
7203@node Setting and updating statistics 7219@node Setting and updating statistics
7204@subsubsection Setting and updating statistics 7220@subsubsection Setting and updating statistics
7205 7221
7206@c %**end of header 7222
7207 7223
7208The subsystem name, parameter name, its value and the persistence flag are 7224The subsystem name, parameter name, its value and the persistence flag are
7209communicated to the service through the message 7225communicated to the service through the message
@@ -7226,7 +7242,7 @@ the message should be treated as an update value.
7226@node Watching for updates 7242@node Watching for updates
7227@subsubsection Watching for updates 7243@subsubsection Watching for updates
7228 7244
7229@c %**end of header 7245
7230 7246
7231The function registers the watch at the service by sending a message of 7247The function registers the watch at the service by sending a message of
7232type @code{GNUNET_MESSAGE_TYPE_STATISTICS_WATCH}. The service then sends 7248type @code{GNUNET_MESSAGE_TYPE_STATISTICS_WATCH}. The service then sends
@@ -7239,7 +7255,7 @@ parameter's value is changed.
7239@node Distributed Hash Table (DHT) 7255@node Distributed Hash Table (DHT)
7240@section Distributed Hash Table (DHT) 7256@section Distributed Hash Table (DHT)
7241 7257
7242@c %**end of header 7258
7243 7259
7244GNUnet includes a generic distributed hash table that can be used by 7260GNUnet includes a generic distributed hash table that can be used by
7245developers building P2P applications in the framework. 7261developers building P2P applications in the framework.
@@ -7285,7 +7301,7 @@ loss of performance or quality of service is expected in this case).
7285@node Block library and plugins 7301@node Block library and plugins
7286@subsection Block library and plugins 7302@subsection Block library and plugins
7287 7303
7288@c %**end of header 7304
7289 7305
7290@menu 7306@menu
7291* What is a Block?:: 7307* What is a Block?::
@@ -7298,7 +7314,7 @@ loss of performance or quality of service is expected in this case).
7298@node What is a Block? 7314@node What is a Block?
7299@subsubsection What is a Block? 7315@subsubsection What is a Block?
7300 7316
7301@c %**end of header 7317
7302 7318
7303Blocks are small (< 63k) pieces of data stored under a key (struct 7319Blocks are small (< 63k) pieces of data stored under a key (struct
7304GNUNET_HashCode). Blocks have a type (enum GNUNET_BlockType) which defines 7320GNUNET_HashCode). Blocks have a type (enum GNUNET_BlockType) which defines
@@ -7315,7 +7331,7 @@ available for any type of block.
7315@node The API of libgnunetblock 7331@node The API of libgnunetblock
7316@subsubsection The API of libgnunetblock 7332@subsubsection The API of libgnunetblock
7317 7333
7318@c %**end of header 7334
7319 7335
7320The block library requires for each (family of) block type(s) a block 7336The block library requires for each (family of) block type(s) a block
7321plugin (implementing @file{gnunet_block_plugin.h}) that provides basic 7337plugin (implementing @file{gnunet_block_plugin.h}) that provides basic
@@ -7347,7 +7363,7 @@ If a plugin fails to do this, responses may loop in the network.
7347 7363
7348@node Queries 7364@node Queries
7349@subsubsection Queries 7365@subsubsection Queries
7350@c %**end of header 7366
7351 7367
7352The query format for any block in GNUnet consists of four main components. 7368The query format for any block in GNUnet consists of four main components.
7353First, the type of the desired block must be specified. Second, the query 7369First, the type of the desired block must be specified. Second, the query
@@ -7375,7 +7391,7 @@ Depending on the results from the plugin, the DHT will then discard the
7375@node Sample Code 7391@node Sample Code
7376@subsubsection Sample Code 7392@subsubsection Sample Code
7377 7393
7378@c %**end of header 7394
7379 7395
7380The source code in @strong{plugin_block_test.c} is a good starting point 7396The source code in @strong{plugin_block_test.c} is a good starting point
7381for new block plugins --- it does the minimal work by implementing a 7397for new block plugins --- it does the minimal work by implementing a
@@ -7386,7 +7402,7 @@ block plugin.
7386@node Conclusion2 7402@node Conclusion2
7387@subsubsection Conclusion2 7403@subsubsection Conclusion2
7388 7404
7389@c %**end of header 7405
7390 7406
7391In conclusion, GNUnet subsystems that want to use the DHT need to define a 7407In conclusion, GNUnet subsystems that want to use the DHT need to define a
7392block format and write a plugin to match queries and replies. For testing, 7408block format and write a plugin to match queries and replies. For testing,
@@ -7400,7 +7416,7 @@ of error checking that results from this primitive implementation.
7400@node libgnunetdht 7416@node libgnunetdht
7401@subsection libgnunetdht 7417@subsection libgnunetdht
7402 7418
7403@c %**end of header 7419
7404 7420
7405The DHT API itself is pretty simple and offers the usual GET and PUT 7421The DHT API itself is pretty simple and offers the usual GET and PUT
7406functions that work as expected. The specified block type refers to the 7422functions that work as expected. The specified block type refers to the
@@ -7418,7 +7434,7 @@ data stored in the network.
7418@node GET 7434@node GET
7419@subsubsection GET 7435@subsubsection GET
7420 7436
7421@c %**end of header 7437
7422 7438
7423When using GET, the main consideration for developers (other than the 7439When using GET, the main consideration for developers (other than the
7424block library) should be that after issuing a GET, the DHT will 7440block library) should be that after issuing a GET, the DHT will
@@ -7446,7 +7462,7 @@ bandwidth consumption.
7446@node PUT 7462@node PUT
7447@subsubsection PUT 7463@subsubsection PUT
7448 7464
7449@c %**end of header 7465
7450 7466
7451@c inconsistent use of ``must'' above it's written ``MUST'' 7467@c inconsistent use of ``must'' above it's written ``MUST''
7452In contrast to GET operations, developers @strong{must} manually re-run 7468In contrast to GET operations, developers @strong{must} manually re-run
@@ -7468,7 +7484,7 @@ DHT PUT operations should be repeated at least every 1-2 hours.
7468@node MONITOR 7484@node MONITOR
7469@subsubsection MONITOR 7485@subsubsection MONITOR
7470 7486
7471@c %**end of header 7487
7472 7488
7473The DHT API also allows applications to monitor messages crossing the 7489The DHT API also allows applications to monitor messages crossing the
7474local DHT service. 7490local DHT service.
@@ -7491,7 +7507,7 @@ number of workers will process the distributed workload.
7491@node DHT Routing Options 7507@node DHT Routing Options
7492@subsubsection DHT Routing Options 7508@subsubsection DHT Routing Options
7493 7509
7494@c %**end of header 7510
7495 7511
7496There are two important options for GET and PUT requests: 7512There are two important options for GET and PUT requests:
7497 7513
@@ -7521,7 +7537,7 @@ in the future offer performance improvements for clique topologies.
7521@node The DHT Client-Service Protocol 7537@node The DHT Client-Service Protocol
7522@subsection The DHT Client-Service Protocol 7538@subsection The DHT Client-Service Protocol
7523 7539
7524@c %**end of header 7540
7525 7541
7526@menu 7542@menu
7527* PUTting data into the DHT:: 7543* PUTting data into the DHT::
@@ -7532,7 +7548,7 @@ in the future offer performance improvements for clique topologies.
7532@node PUTting data into the DHT 7548@node PUTting data into the DHT
7533@subsubsection PUTting data into the DHT 7549@subsubsection PUTting data into the DHT
7534 7550
7535@c %**end of header 7551
7536 7552
7537To store (PUT) data into the DHT, the client sends a 7553To store (PUT) data into the DHT, the client sends a
7538@code{struct GNUNET_DHT_ClientPutMessage} to the service. 7554@code{struct GNUNET_DHT_ClientPutMessage} to the service.
@@ -7553,7 +7569,7 @@ in the P2P interaction.
7553@node GETting data from the DHT 7569@node GETting data from the DHT
7554@subsubsection GETting data from the DHT 7570@subsubsection GETting data from the DHT
7555 7571
7556@c %**end of header 7572
7557 7573
7558To retrieve (GET) data from the DHT, the client sends a 7574To retrieve (GET) data from the DHT, the client sends a
7559@code{struct GNUNET_DHT_ClientGetMessage} to the service. The message 7575@code{struct GNUNET_DHT_ClientGetMessage} to the service. The message
@@ -7592,7 +7608,7 @@ service --- and to stop them individually.
7592@node Monitoring the DHT 7608@node Monitoring the DHT
7593@subsubsection Monitoring the DHT 7609@subsubsection Monitoring the DHT
7594 7610
7595@c %**end of header 7611
7596 7612
7597To begin monitoring, the client sends a 7613To begin monitoring, the client sends a
7598@code{struct GNUNET_DHT_MonitorStartStop} message to the DHT service. 7614@code{struct GNUNET_DHT_MonitorStartStop} message to the DHT service.
@@ -7607,7 +7623,7 @@ these messages contains all of the information about the event.
7607 7623
7608@node The DHT Peer-to-Peer Protocol 7624@node The DHT Peer-to-Peer Protocol
7609@subsection The DHT Peer-to-Peer Protocol 7625@subsection The DHT Peer-to-Peer Protocol
7610@c %**end of header 7626
7611 7627
7612 7628
7613@menu 7629@menu
@@ -7619,7 +7635,7 @@ these messages contains all of the information about the event.
7619@node Routing GETs or PUTs 7635@node Routing GETs or PUTs
7620@subsubsection Routing GETs or PUTs 7636@subsubsection Routing GETs or PUTs
7621 7637
7622@c %**end of header 7638
7623 7639
7624When routing GETs or PUTs, the DHT service selects a suitable subset of 7640When routing GETs or PUTs, the DHT service selects a suitable subset of
7625neighbours for forwarding. The exact number of neighbours can be zero or 7641neighbours for forwarding. The exact number of neighbours can be zero or
@@ -7634,7 +7650,7 @@ traversed; those peers are also excluded from the selection.
7634@node PUTting data into the DHT2 7650@node PUTting data into the DHT2
7635@subsubsection PUTting data into the DHT2 7651@subsubsection PUTting data into the DHT2
7636 7652
7637@c %**end of header 7653
7638 7654
7639To PUT data into the DHT, the service sends a @code{struct PeerPutMessage} 7655To PUT data into the DHT, the service sends a @code{struct PeerPutMessage}
7640of type @code{GNUNET_MESSAGE_TYPE_DHT_P2P_PUT} to the respective 7656of type @code{GNUNET_MESSAGE_TYPE_DHT_P2P_PUT} to the respective
@@ -7656,7 +7672,7 @@ its own identity (this is done to reduce bandwidth).
7656@node GETting data from the DHT2 7672@node GETting data from the DHT2
7657@subsubsection GETting data from the DHT2 7673@subsubsection GETting data from the DHT2
7658 7674
7659@c %**end of header 7675
7660 7676
7661A peer can search the DHT by sending @code{struct PeerGetMessage}s of type 7677A peer can search the DHT by sending @code{struct PeerGetMessage}s of type
7662@code{GNUNET_MESSAGE_TYPE_DHT_P2P_GET} to other peers. In addition to the 7678@code{GNUNET_MESSAGE_TYPE_DHT_P2P_GET} to other peers. In addition to the
@@ -7695,7 +7711,7 @@ The DHT service may also cache forwarded results locally if the
7695@node GNU Name System (GNS) 7711@node GNU Name System (GNS)
7696@section GNU Name System (GNS) 7712@section GNU Name System (GNS)
7697 7713
7698@c %**end of header 7714
7699 7715
7700The GNU Name System (GNS) is a decentralized database that enables users 7716The GNU Name System (GNS) is a decentralized database that enables users
7701to securely resolve names to values. 7717to securely resolve names to values.
@@ -7750,7 +7766,7 @@ record types.
7750@node libgnunetgns 7766@node libgnunetgns
7751@subsection libgnunetgns 7767@subsection libgnunetgns
7752 7768
7753@c %**end of header 7769
7754 7770
7755The GNS API itself is extremely simple. Clients first connect to the 7771The GNS API itself is extremely simple. Clients first connect to the
7756GNS service using @code{GNUNET_GNS_connect}. 7772GNS service using @code{GNUNET_GNS_connect}.
@@ -7768,7 +7784,7 @@ Once finished, clients disconnect using @code{GNUNET_GNS_disconnect}.
7768@node Looking up records 7784@node Looking up records
7769@subsubsection Looking up records 7785@subsubsection Looking up records
7770 7786
7771@c %**end of header 7787
7772 7788
7773@code{GNUNET_GNS_lookup} takes a number of arguments: 7789@code{GNUNET_GNS_lookup} takes a number of arguments:
7774 7790
@@ -7810,7 +7826,7 @@ must no longer be canceled.
7810@node Accessing the records 7826@node Accessing the records
7811@subsubsection Accessing the records 7827@subsubsection Accessing the records
7812 7828
7813@c %**end of header 7829
7814 7830
7815The @code{libgnunetgnsrecord} library provides an API to manipulate the 7831The @code{libgnunetgnsrecord} library provides an API to manipulate the
7816GNS record array that is given to proc. In particular, it offers 7832GNS record array that is given to proc. In particular, it offers
@@ -7824,7 +7840,7 @@ functions for parsing (and serializing) common types of DNS records.
7824@node Creating records 7840@node Creating records
7825@subsubsection Creating records 7841@subsubsection Creating records
7826 7842
7827@c %**end of header 7843
7828 7844
7829Creating GNS records is typically done by building the respective record 7845Creating GNS records is typically done by building the respective record
7830information (possibly with the help of @code{libgnunetgnsrecord} and 7846information (possibly with the help of @code{libgnunetgnsrecord} and
@@ -7835,7 +7851,7 @@ operation.
7835@node Future work 7851@node Future work
7836@subsubsection Future work 7852@subsubsection Future work
7837 7853
7838@c %**end of header 7854
7839 7855
7840In the future, we want to expand @code{libgnunetgns} to allow 7856In the future, we want to expand @code{libgnunetgns} to allow
7841applications to observe shortening operations performed during GNS 7857applications to observe shortening operations performed during GNS
@@ -7845,7 +7861,7 @@ this happens.
7845@node libgnunetgnsrecord 7861@node libgnunetgnsrecord
7846@subsection libgnunetgnsrecord 7862@subsection libgnunetgnsrecord
7847 7863
7848@c %**end of header 7864
7849 7865
7850The @code{libgnunetgnsrecord} library is used to manipulate GNS 7866The @code{libgnunetgnsrecord} library is used to manipulate GNS
7851records (in plaintext or in their encrypted format). 7867records (in plaintext or in their encrypted format).
@@ -7871,7 +7887,7 @@ standard GNS record types.
7871@node Value handling 7887@node Value handling
7872@subsubsection Value handling 7888@subsubsection Value handling
7873 7889
7874@c %**end of header 7890
7875 7891
7876@code{GNUNET_GNSRECORD_value_to_string} can be used to convert 7892@code{GNUNET_GNSRECORD_value_to_string} can be used to convert
7877the (binary) representation of a GNS record value to a human readable, 7893the (binary) representation of a GNS record value to a human readable,
@@ -7886,7 +7902,7 @@ a GNS record value.
7886@node Type handling 7902@node Type handling
7887@subsubsection Type handling 7903@subsubsection Type handling
7888 7904
7889@c %**end of header 7905
7890 7906
7891@code{GNUNET_GNSRECORD_typename_to_number} can be used to obtain the 7907@code{GNUNET_GNSRECORD_typename_to_number} can be used to obtain the
7892numeric value associated with a given typename. For example, given the 7908numeric value associated with a given typename. For example, given the
@@ -7904,7 +7920,7 @@ typename "A".
7904@node GNS plugins 7920@node GNS plugins
7905@subsection GNS plugins 7921@subsection GNS plugins
7906 7922
7907@c %**end of header 7923
7908 7924
7909Adding a new GNS record type typically involves writing (or extending) a 7925Adding a new GNS record type typically involves writing (or extending) a
7910GNSRECORD plugin. The plugin needs to implement the 7926GNSRECORD plugin. The plugin needs to implement the
@@ -7930,7 +7946,7 @@ typenames and numbers documented in the previous subsection.
7930 7946
7931@node The GNS Client-Service Protocol 7947@node The GNS Client-Service Protocol
7932@subsection The GNS Client-Service Protocol 7948@subsection The GNS Client-Service Protocol
7933@c %**end of header 7949
7934 7950
7935The GNS client-service protocol consists of two simple messages, the 7951The GNS client-service protocol consists of two simple messages, the
7936@code{LOOKUP} message and the @code{LOOKUP_RESULT}. Each @code{LOOKUP} 7952@code{LOOKUP} message and the @code{LOOKUP_RESULT}. Each @code{LOOKUP}
@@ -7950,7 +7966,7 @@ They can thus be deserialized using
7950@node Hijacking the DNS-Traffic using gnunet-service-dns 7966@node Hijacking the DNS-Traffic using gnunet-service-dns
7951@subsection Hijacking the DNS-Traffic using gnunet-service-dns 7967@subsection Hijacking the DNS-Traffic using gnunet-service-dns
7952 7968
7953@c %**end of header 7969
7954 7970
7955This section documents how the gnunet-service-dns (and the 7971This section documents how the gnunet-service-dns (and the
7956gnunet-helper-dns) intercepts DNS queries from the local system. 7972gnunet-helper-dns) intercepts DNS queries from the local system.
@@ -7987,7 +8003,7 @@ interface with the original nameserver as source address.
7987@node Network Setup Details 8003@node Network Setup Details
7988@subsubsection Network Setup Details 8004@subsubsection Network Setup Details
7989 8005
7990@c %**end of header 8006
7991 8007
7992The DNS interceptor adds the following rules to the Linux kernel: 8008The DNS interceptor adds the following rules to the Linux kernel:
7993@example 8009@example
@@ -8008,7 +8024,7 @@ arbitrarily). The third line adds a routing policy based on this mark
8008@node Serving DNS lookups via GNS on W32 8024@node Serving DNS lookups via GNS on W32
8009@subsection Serving DNS lookups via GNS on W32 8025@subsection Serving DNS lookups via GNS on W32
8010 8026
8011@c %**end of header 8027
8012 8028
8013This section documents how the libw32nsp (and 8029This section documents how the libw32nsp (and
8014gnunet-gns-helper-service-w32) do DNS resolutions of DNS queries on the 8030gnunet-gns-helper-service-w32) do DNS resolutions of DNS queries on the
@@ -8078,10 +8094,9 @@ This includes some of well known utilities, like "ping" and "nslookup".
8078@node Importing DNS Zones into GNS 8094@node Importing DNS Zones into GNS
8079@subsection Importing DNS Zones into GNS 8095@subsection Importing DNS Zones into GNS
8080 8096
8081@c %**end of header
8082
8083This section discusses the challenges and problems faced when writing the 8097This section discusses the challenges and problems faced when writing the
8084Ascension tool. It also takes a look at possible improvements in the future. 8098Ascension tool. It also takes a look at possible improvements in the
8099future.
8085 8100
8086@menu 8101@menu
8087* Conversions between DNS and GNS:: 8102* Conversions between DNS and GNS::
@@ -8089,29 +8104,31 @@ Ascension tool. It also takes a look at possible improvements in the future.
8089* Performance:: 8104* Performance::
8090@end menu 8105@end menu
8091 8106
8107@cindex DNS Conversion
8092@node Conversions between DNS and GNS 8108@node Conversions between DNS and GNS
8093@subsubsection Conversions between DNS and GNS 8109@subsubsection Conversions between DNS and GNS
8094 8110
8095The differences between the two name systems lies in the details 8111The differences between the two name systems lies in the details
8096and is not always transparent. For instance an SRV record is converted to a 8112and is not always transparent.
8097GNS only BOX record. 8113For instance an SRV record is converted to a GNS only BOX record.
8098 8114
8099This is done by converting to a BOX record from an existing SRV record: 8115This is done by converting to a BOX record from an existing SRV record:
8100 8116
8101@example 8117@example
8102# SRV 8118# SRV
8103# _service._proto.name. TTL class SRV priority weight port target 8119# _service._proto.name. TTL class SRV priority weight port target
8104_sip._tcp.example.com. 14000 IN SRV 0 0 5060 www.example.com. 8120_sip._tcp.example.com. 14000 IN SRV 0 0 5060 www.example.com.
8105# BOX 8121# BOX
8106# TTL BOX flags port protocol recordtype priority weight port target 8122# TTL BOX flags port protocol recordtype priority weight port target
810714000 BOX n 5060 6 33 0 0 5060 www.example.com 812314000 BOX n 5060 6 33 0 0 5060 www.example.com
8108@end example 8124@end example
8109 8125
8110Other records that have such a transformation is the MX record type, as well as 8126Other records that have such a transformation is the MX record type,
8111the SOA record type. 8127as well as the SOA record type.
8128
8129Transformation of a SOA record into GNS works as described in the
8130following example. Very important to note are the rname and mname keys.
8112 8131
8113Transformation of a SOA record into GNS works as described in the following
8114example. Very important to note are the rname and mname keys.
8115@example 8132@example
8116# BIND syntax for a clean SOA record 8133# BIND syntax for a clean SOA record
8117@ IN SOA master.example.com. hostmaster.example.com. ( 8134@ IN SOA master.example.com. hostmaster.example.com. (
@@ -8235,7 +8252,7 @@ that uses the C API would be cleaner and better.
8235@node GNS Namecache 8252@node GNS Namecache
8236@section GNS Namecache 8253@section GNS Namecache
8237 8254
8238@c %**end of header 8255
8239 8256
8240The NAMECACHE subsystem is responsible for caching (encrypted) resolution 8257The NAMECACHE subsystem is responsible for caching (encrypted) resolution
8241results of the GNU Name System (GNS). GNS makes zone information available 8258results of the GNU Name System (GNS). GNS makes zone information available
@@ -8274,7 +8291,7 @@ plugin API.
8274@node libgnunetnamecache 8291@node libgnunetnamecache
8275@subsection libgnunetnamecache 8292@subsection libgnunetnamecache
8276 8293
8277@c %**end of header 8294
8278 8295
8279The NAMECACHE API consists of five simple functions. First, there is 8296The NAMECACHE API consists of five simple functions. First, there is
8280@code{GNUNET_NAMECACHE_connect} to connect to the NAMECACHE service. 8297@code{GNUNET_NAMECACHE_connect} to connect to the NAMECACHE service.
@@ -8297,7 +8314,7 @@ The maximum size of a block that can be stored in the NAMECACHE is
8297@node The NAMECACHE Client-Service Protocol 8314@node The NAMECACHE Client-Service Protocol
8298@subsection The NAMECACHE Client-Service Protocol 8315@subsection The NAMECACHE Client-Service Protocol
8299 8316
8300@c %**end of header 8317
8301 8318
8302All messages in the NAMECACHE IPC protocol start with the 8319All messages in the NAMECACHE IPC protocol start with the
8303@code{struct GNUNET_NAMECACHE_Header} which adds a request 8320@code{struct GNUNET_NAMECACHE_Header} which adds a request
@@ -8315,7 +8332,7 @@ out-of-order.
8315@node Lookup 8332@node Lookup
8316@subsubsection Lookup 8333@subsubsection Lookup
8317 8334
8318@c %**end of header 8335
8319 8336
8320The @code{struct LookupBlockMessage} is used to lookup a block stored in 8337The @code{struct LookupBlockMessage} is used to lookup a block stored in
8321the cache. 8338the cache.
@@ -8329,7 +8346,7 @@ of the block.
8329@node Store 8346@node Store
8330@subsubsection Store 8347@subsubsection Store
8331 8348
8332@c %**end of header 8349
8333 8350
8334The @code{struct BlockCacheMessage} is used to cache a block in the 8351The @code{struct BlockCacheMessage} is used to cache a block in the
8335NAMECACHE. 8352NAMECACHE.
@@ -8341,7 +8358,7 @@ message as well.
8341 8358
8342@node The NAMECACHE Plugin API 8359@node The NAMECACHE Plugin API
8343@subsection The NAMECACHE Plugin API 8360@subsection The NAMECACHE Plugin API
8344@c %**end of header 8361
8345 8362
8346The NAMECACHE plugin API consists of two functions, @code{cache_block} to 8363The NAMECACHE plugin API consists of two functions, @code{cache_block} to
8347store a block in the database, and @code{lookup_block} to lookup a block 8364store a block in the database, and @code{lookup_block} to lookup a block
@@ -8356,7 +8373,7 @@ in the database.
8356@node Lookup2 8373@node Lookup2
8357@subsubsection Lookup2 8374@subsubsection Lookup2
8358 8375
8359@c %**end of header 8376
8360 8377
8361The @code{lookup_block} function is expected to return at most one block 8378The @code{lookup_block} function is expected to return at most one block
8362to the iterator, and return @code{GNUNET_NO} if there were no non-expired 8379to the iterator, and return @code{GNUNET_NO} if there were no non-expired
@@ -8367,7 +8384,7 @@ supposed to return the result with the largest expiration time.
8367@node Store2 8384@node Store2
8368@subsubsection Store2 8385@subsubsection Store2
8369 8386
8370@c %**end of header 8387
8371 8388
8372The @code{cache_block} function is expected to try to store the block in 8389The @code{cache_block} function is expected to try to store the block in
8373the database, and return @code{GNUNET_SYSERR} if this was not possible 8390the database, and return @code{GNUNET_SYSERR} if this was not possible
@@ -8384,7 +8401,7 @@ block is more recent during the store operation.
8384@cindex REVOCATION Subsystem 8401@cindex REVOCATION Subsystem
8385@node REVOCATION Subsystem 8402@node REVOCATION Subsystem
8386@section REVOCATION Subsystem 8403@section REVOCATION Subsystem
8387@c %**end of header 8404
8388 8405
8389The REVOCATION subsystem is responsible for key revocation of Egos. 8406The REVOCATION subsystem is responsible for key revocation of Egos.
8390If a user learns that theis private key has been compromised or has lost 8407If a user learns that theis private key has been compromised or has lost
@@ -8404,7 +8421,7 @@ propagate revocation messages.
8404@node Dissemination 8421@node Dissemination
8405@subsection Dissemination 8422@subsection Dissemination
8406 8423
8407@c %**end of header 8424
8408 8425
8409When a revocation is performed, the revocation is first of all 8426When a revocation is performed, the revocation is first of all
8410disseminated by flooding the overlay network. 8427disseminated by flooding the overlay network.
@@ -8428,7 +8445,7 @@ The SET service is used to perform this operation efficiently.
8428@node Revocation Message Design Requirements 8445@node Revocation Message Design Requirements
8429@subsection Revocation Message Design Requirements 8446@subsection Revocation Message Design Requirements
8430 8447
8431@c %**end of header 8448
8432 8449
8433However, flooding is also quite costly, creating O(|E|) messages on a 8450However, flooding is also quite costly, creating O(|E|) messages on a
8434network with |E| edges. 8451network with |E| edges.
@@ -8450,7 +8467,7 @@ revocation message ahead of time and store it in a secure location.
8450@node libgnunetrevocation 8467@node libgnunetrevocation
8451@subsection libgnunetrevocation 8468@subsection libgnunetrevocation
8452 8469
8453@c %**end of header 8470
8454 8471
8455The REVOCATION API consists of two parts, to query and to issue 8472The REVOCATION API consists of two parts, to query and to issue
8456revocations. 8473revocations.
@@ -8465,7 +8482,7 @@ revocations.
8465@node Querying for revoked keys 8482@node Querying for revoked keys
8466@subsubsection Querying for revoked keys 8483@subsubsection Querying for revoked keys
8467 8484
8468@c %**end of header 8485
8469 8486
8470@code{GNUNET_REVOCATION_query} is used to check if a given ECDSA public 8487@code{GNUNET_REVOCATION_query} is used to check if a given ECDSA public
8471key has been revoked. 8488key has been revoked.
@@ -8476,7 +8493,7 @@ the return value.
8476@node Preparing revocations 8493@node Preparing revocations
8477@subsubsection Preparing revocations 8494@subsubsection Preparing revocations
8478 8495
8479@c %**end of header 8496
8480 8497
8481It is often desirable to create a revocation record ahead-of-time and 8498It is often desirable to create a revocation record ahead-of-time and
8482store it in an off-line location to be used later in an emergency. 8499store it in an off-line location to be used later in an emergency.
@@ -8544,7 +8561,7 @@ successfully.
8544@node The REVOCATION Peer-to-Peer Protocol 8561@node The REVOCATION Peer-to-Peer Protocol
8545@subsection The REVOCATION Peer-to-Peer Protocol 8562@subsection The REVOCATION Peer-to-Peer Protocol
8546 8563
8547@c %**end of header 8564
8548 8565
8549Revocation uses two disjoint ways to spread revocation information among 8566Revocation uses two disjoint ways to spread revocation information among
8550peers. 8567peers.
@@ -8579,7 +8596,7 @@ larger hashed peer identity.
8579@node File-sharing (FS) Subsystem 8596@node File-sharing (FS) Subsystem
8580@section File-sharing (FS) Subsystem 8597@section File-sharing (FS) Subsystem
8581 8598
8582@c %**end of header 8599
8583 8600
8584This chapter describes the details of how the file-sharing service works. 8601This chapter describes the details of how the file-sharing service works.
8585As with all services, it is split into an API (libgnunetfs), the service 8602As with all services, it is split into an API (libgnunetfs), the service
@@ -8617,7 +8634,7 @@ NOTE: The documentation in this chapter is quite incomplete.
8617@node Encoding for Censorship-Resistant Sharing (ECRS) 8634@node Encoding for Censorship-Resistant Sharing (ECRS)
8618@subsection Encoding for Censorship-Resistant Sharing (ECRS) 8635@subsection Encoding for Censorship-Resistant Sharing (ECRS)
8619 8636
8620@c %**end of header 8637
8621 8638
8622When GNUnet shares files, it uses a content encoding that is called ECRS, 8639When GNUnet shares files, it uses a content encoding that is called ECRS,
8623the Encoding for Censorship-Resistant Sharing. 8640the Encoding for Censorship-Resistant Sharing.
@@ -8639,7 +8656,7 @@ thus did not warrant space in the research report.
8639@node Namespace Advertisements 8656@node Namespace Advertisements
8640@subsubsection Namespace Advertisements 8657@subsubsection Namespace Advertisements
8641 8658
8642@c %**end of header 8659
8643@c %**FIXME: all zeroses -> ? 8660@c %**FIXME: all zeroses -> ?
8644 8661
8645An @code{SBlock} with identifier all zeros is a signed 8662An @code{SBlock} with identifier all zeros is a signed
@@ -8654,7 +8671,7 @@ can search for @code{SBlock}s in order to find out more about a namespace.
8654@node KSBlocks 8671@node KSBlocks
8655@subsubsection KSBlocks 8672@subsubsection KSBlocks
8656 8673
8657@c %**end of header 8674
8658 8675
8659GNUnet implements @code{KSBlocks} which are @code{KBlocks} that, instead 8676GNUnet implements @code{KSBlocks} which are @code{KBlocks} that, instead
8660of encrypting a CHK and metadata, encrypt an @code{SBlock} instead. 8677of encrypting a CHK and metadata, encrypt an @code{SBlock} instead.
@@ -8680,7 +8697,7 @@ Collections are also advertised using @code{KSBlock}s.
8680@node File-sharing persistence directory structure 8697@node File-sharing persistence directory structure
8681@subsection File-sharing persistence directory structure 8698@subsection File-sharing persistence directory structure
8682 8699
8683@c %**end of header 8700
8684 8701
8685This section documents how the file-sharing library implements 8702This section documents how the file-sharing library implements
8686persistence of file-sharing operations and specifically the resulting 8703persistence of file-sharing operations and specifically the resulting
@@ -8766,7 +8783,7 @@ Note that unindex operations cannot have associated child operations.
8766@node REGEX Subsystem 8783@node REGEX Subsystem
8767@section REGEX Subsystem 8784@section REGEX Subsystem
8768 8785
8769@c %**end of header 8786
8770 8787
8771Using the REGEX subsystem, you can discover peers that offer a particular 8788Using the REGEX subsystem, you can discover peers that offer a particular
8772service using regular expressions. 8789service using regular expressions.
@@ -8789,7 +8806,7 @@ thesis.
8789@node How to run the regex profiler 8806@node How to run the regex profiler
8790@subsection How to run the regex profiler 8807@subsection How to run the regex profiler
8791 8808
8792@c %**end of header 8809
8793 8810
8794The gnunet-regex-profiler can be used to profile the usage of mesh/regex 8811The gnunet-regex-profiler can be used to profile the usage of mesh/regex
8795for a given set of regular expressions and strings. 8812for a given set of regular expressions and strings.
@@ -8922,7 +8939,7 @@ regular expressions.
8922@node REST Subsystem 8939@node REST Subsystem
8923@section REST Subsystem 8940@section REST Subsystem
8924 8941
8925@c %**end of header 8942
8926 8943
8927Using the REST subsystem, you can expose REST-based APIs or services. 8944Using the REST subsystem, you can expose REST-based APIs or services.
8928The REST service is designed as a pluggable architecture. 8945The REST service is designed as a pluggable architecture.
diff --git a/doc/handbook/chapters/installation.texi b/doc/handbook/chapters/installation.texi
index a907a1046..ad848b4a0 100644
--- a/doc/handbook/chapters/installation.texi
+++ b/doc/handbook/chapters/installation.texi
@@ -12,9 +12,9 @@ package manager.
12* Create @code{gnunet} user and group:: 12* Create @code{gnunet} user and group::
13* Preparing and Compiling the Source Code:: 13* Preparing and Compiling the Source Code::
14* Installation:: 14* Installation::
15* MOVED FROM USER Checking the Installation:: 15* Checking the Installation::
16* MOVED FROM USER The graphical configuration interface:: 16* The graphical configuration interface::
17* MOVED FROM USER Config Leftovers:: 17* Config Leftovers::
18@end menu 18@end menu
19 19
20@c ----------------------------------------------------------------------- 20@c -----------------------------------------------------------------------
@@ -27,36 +27,54 @@ link to the project websites.
27 27
28The mandatory libraries and applications are 28The mandatory libraries and applications are
29@itemize @bullet 29@itemize @bullet
30@item libtool
31@item autoconf 2.59 or above 30@item autoconf 2.59 or above
32@item automake 1.11.1 or above 31@item automake 1.11.1 or above
33@item pkg-config 32@item gettext
33@item glibc (read below, other libcs should work)
34@item gnutls 3.2.12 or above, recommended to be linked against libunbound
35@item iptables (on Linux systems)
36@item libtool 2.2 or above
37@item libltdl (part of libtool)
34@item libgcrypt 1.6 or above 38@item libgcrypt 1.6 or above
35@item libextractor 39@item libextractor
36@item libidn 40@item libidn2 or libidn
37@item libmicrohttpd 0.9.52 or above 41@item libmicrohttpd 0.9.52 or above
38@item libnss
39@item libunistring 42@item libunistring
40@item gettext
41@item glibc
42@item libgmp 43@item libgmp
43@item gnutls 44@item libgnurl or libcurl (libcurl has to be linked to GnuTLS) 7.35.0 or above
44@item libcurl (has to be linked to GnuTLS) or libgnurl 45@item Texinfo 5.2 or above (for building the documentation)
46@item Texlive 2012 or above (for building the documentation, and for gnunet-bcd)
47@item makeinfo 4.8 or above
45@item zlib 48@item zlib
46@end itemize 49@end itemize
47 50
51Glibc is required for certain NSS features:
52
53@example
54One mechanism of integrating GNS with legacy applications via NSS is
55not available if this is disabled. But applications that don't use the
56glibc for NS resolution won't work anyway with this, so little is lost
57on BSD systems.
58GNS via direct use or via the HTTP or DNS proxies is unaffected.
59@end example
60
61Other libcs should work, the resulting builds just don't include the
62glibc NSS specific code. One example is the build against NetBSD's libc
63as detailed in @uref{https://bugs.gnunet.org/view.php?id=5605}.
64
48In addition GNUnet needs one of of these three databases 65In addition GNUnet needs one of of these three databases
49@itemize @bullet 66@itemize @bullet
50@item sqlite + libsqlite (the default, requires no further configuration) 67@item sqlite + libsqlite 3.8 or above (the default, requires no further configuration)
51@item postgres + libpq 68@item postgres + libpq
52@item mysql + libmysqlclient 69@item mysql + libmysqlclient
53@end itemize 70@end itemize
54 71
55These are the dependencies only required for certain features 72These are the dependencies only required for certain features
56@itemize @bullet 73@itemize @bullet
57@item Texinfo (for building the documentation) 74@item guile 1.6.4 for gnunet-download-manager
58@item Texlive (for building the documentation)
59@item miniupnpc (for traversing NAT boxes more reliably) 75@item miniupnpc (for traversing NAT boxes more reliably)
76@item libnss
77@item libglpk 4.45 or above for experimental code
60@item libopus (for running the GNUnet conversation telephony application) 78@item libopus (for running the GNUnet conversation telephony application)
61@item libpulse (for running the GNUnet conversation telephony application) 79@item libpulse (for running the GNUnet conversation telephony application)
62@item libogg (for running the GNUnet conversation telephony application) 80@item libogg (for running the GNUnet conversation telephony application)
@@ -65,6 +83,24 @@ These are the dependencies only required for certain features
65(for attribute-based encryption and the identity provider subsystem) 83(for attribute-based encryption and the identity provider subsystem)
66@item libgabe 84@item libgabe
67(for attribute-based encryption and the identity provider subsystem) 85(for attribute-based encryption and the identity provider subsystem)
86@item texi2mdoc (for automatic mdoc generation)
87@item perl5 for some utilities
88@end itemize
89
90These are the test suite requirements:
91@itemize @bullet
92@item python3.7
93@item gnunet (installation first)
94@item which(1)
95@item a shell (possibly Bash, maybe just POSIX sh)
96@end itemize
97
98These are runtime requirements:
99@itemize @bullet
100@item nss (the certutil binary, for gnunet-gns-proxy-setup-ca)
101@item openssl (openssl binary, for gnunet-gns-proxy-setup-ca)
102@item python2.7 for gnunet-qr (at the moment only python2.7 supported)
103@item python-zbar 0.10 or above for gnunet-qr
68@end itemize 104@end itemize
69 105
70@c ----------------------------------------------------------------------- 106@c -----------------------------------------------------------------------
@@ -82,7 +118,7 @@ The archive can be found at
82@uref{https://ftpmirror.gnu.org/gnu/gnunet/}. Extract it using a graphical 118@uref{https://ftpmirror.gnu.org/gnu/gnunet/}. Extract it using a graphical
83archive tool or @code{tar}: 119archive tool or @code{tar}:
84@example 120@example
85tar xzvf gnunet-0.11.0pre66.tar.gz 121tar xzvf gnunet-@value{VERSION}.tar.gz
86@end example 122@end example
87 123
88In the next chapter we will assume that the source code is available 124In the next chapter we will assume that the source code is available
@@ -116,17 +152,24 @@ running @code{configure} the following options can be specified to
116customize the compilation and installation process: 152customize the compilation and installation process:
117 153
118@itemize @bullet 154@itemize @bullet
119@item @code{--disable-documentation} - don't build the configuration documents 155@item @code{--disable-documentation} - don't build the documentation
120@item @code{--enable-looging=[LOGLEVEL]} - choose a loglevel (@code{debug}, @code{info}, @code{warning} or @code{error}) 156@item @code{--enable-looging=[LOGLEVEL]} - choose a loglevel (@code{debug}, @code{info}, @code{warning} or @code{error})
121@item @code{--prefix=[PATH]} - the directory where the GNUnet libraries and binaries will be installed 157@item @code{--prefix=[PATH]} - the directory where the GNUnet libraries and binaries will be installed
122@item @code{--with-extractor=[PATH]} - the path to libextractor 158@item @code{--with-extractor=[PATH]} - the path to libextractor
123@item @code{--with-libidn=[PATH]} - the path to libidn 159@item @code{--with-libidn=[PATH]} - the path to libidn
160@item @code{--with-libidn2=[PATH]} - the path to libidn2 (takes priority over libidn if both are found)
124@item @code{--with-microhttpd=[PATH]} - the path to libmicrohttpd 161@item @code{--with-microhttpd=[PATH]} - the path to libmicrohttpd
125@item @code{--with-sqlite=[PATH]} - the path to libsqlite 162@item @code{--with-sqlite=[PATH]} - the path to libsqlite
126@item @code{--with-zlib=[PATH]} - the path to zlib 163@item @code{--with-zlib=[PATH]} - the path to zlib
127@item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified) 164@item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified)
128@end itemize 165@end itemize
129 166
167Note that the list above is not always up to date and you
168should check the output of @code{./configure --help}, read
169the @file{configure.ac} or send an email asking for assistance
170if you are in doubt of any configure options or require fixes
171for your operating system.
172
130The following example configures the installation prefix 173The following example configures the installation prefix
131@code{/usr/lib} and disables building the documentation 174@code{/usr/lib} and disables building the documentation
132@example 175@example
@@ -216,9 +259,9 @@ PLUGINS = tcp
216 259
217 260
218 261
219@node MOVED FROM USER Checking the Installation 262@node Checking the Installation
220@section MOVED FROM USER Checking the Installation 263@section Checking the Installation
221@c %**end of header 264
222 265
223This section describes a quick, casual way to check if your GNUnet 266This section describes a quick, casual way to check if your GNUnet
224installation works. However, if it does not, we do not cover 267installation works. However, if it does not, we do not cover
@@ -240,7 +283,7 @@ as part of this handbook!.
240@cindex GTK user interface 283@cindex GTK user interface
241@node gnunet-gtk 284@node gnunet-gtk
242@subsection gnunet-gtk 285@subsection gnunet-gtk
243@c %**end of header 286
244 287
245The @command{gnunet-gtk} package contains several graphical 288The @command{gnunet-gtk} package contains several graphical
246user interfaces for the respective GNUnet applications. 289user interfaces for the respective GNUnet applications.
@@ -251,17 +294,24 @@ Currently these interfaces cover:
251@item Peer Information 294@item Peer Information
252@item GNU Name System 295@item GNU Name System
253@item File Sharing 296@item File Sharing
254@item Identity Management
255@item Conversation 297@item Conversation
298@item Setup
256@end itemize 299@end itemize
257 300
301Previously, many of these interfaces were combined into one application
302called @command{gnunet-gtk}, with different tabs for each interface. This
303combined application has been removed in version 0.11.0, but each of the
304interfaces is still available as a standalone application
305(@command{gnunet-statistics-gtk} for statistics, @command{gnunet-fs-gtk}
306for filesharing, etc).
307
258@node Statistics 308@node Statistics
259@subsection Statistics 309@subsection Statistics
260@c %**end of header 310
261 311
262We assume that you have started gnunet via @code{gnunet-arm} or via your 312We assume that you have started gnunet via @code{gnunet-arm} or via your
263system-provided method for starting services. 313system-provided method for starting services.
264First, you should launch GNUnet gtk. 314First, you should launch GNUnet's graphical statistics interface.
265You can do this from the command-line by typing 315You can do this from the command-line by typing
266 316
267@example 317@example
@@ -274,7 +324,7 @@ least if your peer has been running for more than a few seconds). The
274lines indicate how many other peers your peer is connected to (via 324lines indicate how many other peers your peer is connected to (via
275different mechanisms) and how large the entire overlay network is 325different mechanisms) and how large the entire overlay network is
276currently estimated to be. The X-axis represents time (in seconds 326currently estimated to be. The X-axis represents time (in seconds
277since the start of @command{gnunet-gtk}). 327since the start of @command{gnunet-statistics-gtk}).
278 328
279You can click on "Traffic" to see information about the amount of 329You can click on "Traffic" to see information about the amount of
280bandwidth your peer has consumed, and on "Storage" to check the amount 330bandwidth your peer has consumed, and on "Storage" to check the amount
@@ -290,10 +340,10 @@ whatever it is you are looking at the Gtk+ interface describes a
290 340
291@node Peer Information 341@node Peer Information
292@subsection Peer Information 342@subsection Peer Information
293@c %**end of header
294 343
295First, you should launch the graphical user interface. You can do 344
296this from the command-line by typing 345First, you should launch the peer information graphical user interface.
346You can do this from the command-line by typing
297 347
298@example 348@example
299$ gnunet-peerinfo-gtk 349$ gnunet-peerinfo-gtk
@@ -310,8 +360,8 @@ configuration.
310 360
311@c NOTE: Inserted from Installation Handbook in original ``order'': 361@c NOTE: Inserted from Installation Handbook in original ``order'':
312@c FIXME: Move this to User Handbook. 362@c FIXME: Move this to User Handbook.
313@node MOVED FROM USER The graphical configuration interface 363@node The graphical configuration interface
314@section MOVED FROM USER The graphical configuration interface 364@section The graphical configuration interface
315 365
316If you also would like to use @command{gnunet-gtk} and 366If you also would like to use @command{gnunet-gtk} and
317@command{gnunet-setup} (highly recommended for beginners), do: 367@command{gnunet-setup} (highly recommended for beginners), do:
@@ -347,7 +397,7 @@ If you also would like to use @command{gnunet-gtk} and
347* Configuring the GNUnet VPN:: 397* Configuring the GNUnet VPN::
348* Bandwidth Configuration:: 398* Bandwidth Configuration::
349* Configuring NAT:: 399* Configuring NAT::
350* Peer configuration for distributions:: 400* Peer configuration for distributors (e.g. Operating Systems)::
351@end menu 401@end menu
352 402
353@node Configuring your peer 403@node Configuring your peer
@@ -358,7 +408,7 @@ This chapter will describe the various configuration options in GNUnet.
358The easiest way to configure your peer is to use the 408The easiest way to configure your peer is to use the
359@command{gnunet-setup} tool. 409@command{gnunet-setup} tool.
360@command{gnunet-setup} is part of the @command{gnunet-gtk} 410@command{gnunet-setup} is part of the @command{gnunet-gtk}
361application. You might have to install it separately. 411package. You might have to install it separately.
362 412
363Many of the specific sections from this chapter actually are linked from 413Many of the specific sections from this chapter actually are linked from
364within @command{gnunet-setup} to help you while using the setup tool. 414within @command{gnunet-setup} to help you while using the setup tool.
@@ -837,7 +887,7 @@ a @code{gn090} table here, it probably works.
837 887
838@node Configuring the datacache 888@node Configuring the datacache
839@subsection Configuring the datacache 889@subsection Configuring the datacache
840@c %**end of header 890
841 891
842The datacache is what GNUnet uses for storing temporary data. This data is 892The datacache is what GNUnet uses for storing temporary data. This data is
843expected to be wiped completely each time GNUnet is restarted (or the 893expected to be wiped completely each time GNUnet is restarted (or the
@@ -889,7 +939,8 @@ strength of the adversary).
889@node Configuring logging 939@node Configuring logging
890@subsection Configuring logging 940@subsection Configuring logging
891 941
892Logging in GNUnet 0.9.0 is controlled via the "-L" and "-l" options. 942Since version 0.9.0, logging in GNUnet is controlled via the
943@code{-L} and @code{-l} options.
893Using @code{-L}, a log level can be specified. With log level 944Using @code{-L}, a log level can be specified. With log level
894@code{ERROR} only serious errors are logged. 945@code{ERROR} only serious errors are logged.
895The default log level is @code{WARNING} which causes anything of 946The default log level is @code{WARNING} which causes anything of
@@ -1765,7 +1816,7 @@ The other options as shown on the gnunet-setup tool are:
1765@node IPv4 address for interface 1816@node IPv4 address for interface
1766@subsubsection IPv4 address for interface 1817@subsubsection IPv4 address for interface
1767 1818
1768This is the IPv4 address the VPN interface will get. You should pick an 1819This is the IPv4 address the VPN interface will get. You should pick a
1769'private' IPv4 network that is not yet in use for you system. For example, 1820'private' IPv4 network that is not yet in use for you system. For example,
1770if you use @code{10.0.0.1/255.255.0.0} already, you might use 1821if you use @code{10.0.0.1/255.255.0.0} already, you might use
1771@code{10.1.0.1/255.255.0.0}. 1822@code{10.1.0.1/255.255.0.0}.
@@ -1920,29 +1971,29 @@ connect to NATed peers using autonomous NAT traversal, you need to check
1920the "Enable connecting to NATed peers using ICMP method" box. 1971the "Enable connecting to NATed peers using ICMP method" box.
1921 1972
1922 1973
1923@node Peer configuration for distributions 1974@node Peer configuration for distributors (e.g. Operating Systems)
1924@subsection Peer configuration for distributions 1975@subsection Peer configuration for distributors (e.g. Operating Systems)
1925 1976
1926The "GNUNET_DATA_HOME" in "[path]" in @file{/etc/gnunet.conf} should be 1977The "GNUNET_DATA_HOME" in "[path]" in @file{/etc/gnunet.conf} should be
1927manually set to "/var/lib/gnunet/data/" as the default 1978manually set to "/var/lib/gnunet/data/" as the default
1928"~/.local/share/gnunet/" is probably not that appropriate in this case. 1979"~/.local/share/gnunet/" is probably not that appropriate in this case.
1929Similarly, distributions may consider pointing "GNUNET_RUNTIME_DIR" to 1980Similarly, distributors may consider pointing "GNUNET_RUNTIME_DIR" to
1930"/var/run/gnunet/" and "GNUNET_HOME" to "/var/lib/gnunet/". Also, should a 1981"/var/run/gnunet/" and "GNUNET_HOME" to "/var/lib/gnunet/". Also, should a
1931distribution decide to override system defaults, all of these changes 1982distributor decide to override system defaults, all of these changes
1932should be done in a custom @file{/etc/gnunet.conf} and not in the files 1983should be done in a custom @file{/etc/gnunet.conf} and not in the files
1933in the @file{config.d/} directory. 1984in the @file{config.d/} directory.
1934 1985
1935Given the proposed access permissions, the "gnunet-setup" tool must be 1986Given the proposed access permissions, the "gnunet-setup" tool must be
1936run as use "gnunet" (and with option "-c /etc/gnunet.conf" so that it 1987run as use "gnunet" (and with option "-c /etc/gnunet.conf" so that it
1937modifies the system configuration). As always, gnunet-setup should be run 1988modifies the system configuration). As always, gnunet-setup should be run
1938after the GNUnet peer was stopped using "gnunet-arm -e". Distributions 1989after the GNUnet peer was stopped using "gnunet-arm -e". Distributors
1939might want to include a wrapper for gnunet-setup that allows the 1990might want to include a wrapper for gnunet-setup that allows the
1940desktop-user to "sudo" (i.e. using gtksudo) to the "gnunet" user account 1991desktop-user to "sudo" (i.e. using gtksudo) to the "gnunet" user account
1941and then runs "gnunet-arm -e", "gnunet-setup" and "gnunet-arm -s" in 1992and then runs "gnunet-arm -e", "gnunet-setup" and "gnunet-arm -s" in
1942sequence. 1993sequence.
1943 1994
1944@node MOVED FROM USER Config Leftovers 1995@node Config Leftovers
1945@section MOVED FROM USER Config Leftovers 1996@section Config Leftovers
1946 1997
1947This section describes how to start a GNUnet peer. It assumes that you 1998This section describes how to start a GNUnet peer. It assumes that you
1948have already compiled and installed GNUnet and its' dependencies. 1999have already compiled and installed GNUnet and its' dependencies.
@@ -2201,7 +2252,7 @@ However, as TCP is generally less efficient and it is rarely the case
2201that a single GNUnet peer is supposed to serve an entire local network, 2252that a single GNUnet peer is supposed to serve an entire local network,
2202the default configuration should disable TCP access to all GNUnet 2253the default configuration should disable TCP access to all GNUnet
2203services on systems with support for UNIX domain sockets. 2254services on systems with support for UNIX domain sockets.
2204As of GNUnet 0.9.2, configuration files with TCP access disabled should be 2255Since GNUnet 0.9.2, configuration files with TCP access disabled should be
2205generated by default. Users can re-enable TCP access to particular 2256generated by default. Users can re-enable TCP access to particular
2206services simply by specifying a non-zero port number in the section of 2257services simply by specifying a non-zero port number in the section of
2207the respective service. 2258the respective service.
diff --git a/doc/handbook/chapters/keyconcepts.texi b/doc/handbook/chapters/keyconcepts.texi
index 829fed82e..4b49a7ffb 100644
--- a/doc/handbook/chapters/keyconcepts.texi
+++ b/doc/handbook/chapters/keyconcepts.texi
@@ -246,7 +246,7 @@ encryption as the link-encryption between the nodes. GNUnet has
246encryption on the network layer (link encryption, confidentiality, 246encryption on the network layer (link encryption, confidentiality,
247authentication) and again on the application layer (provided 247authentication) and again on the application layer (provided
248by @command{gnunet-publish}, @command{gnunet-download}, 248by @command{gnunet-publish}, @command{gnunet-download},
249@command{gnunet-search} and @command{gnunet-gtk}). 249@command{gnunet-search} and @command{gnunet-fs-gtk}).
250 250
251Refer to the following paper for more: 251Refer to the following paper for more:
252Christian Grothoff, Krista Grothoff, Tzvetan Horozov, 252Christian Grothoff, Krista Grothoff, Tzvetan Horozov,
diff --git a/doc/handbook/chapters/preface.texi b/doc/handbook/chapters/preface.texi
index 386cefa6d..636458eeb 100644
--- a/doc/handbook/chapters/preface.texi
+++ b/doc/handbook/chapters/preface.texi
@@ -1,13 +1,17 @@
1@node Preface 1@node Preface
2@chapter Preface 2@chapter Preface
3 3
4This collection of manuals describes how to use GNUnet, a framework 4@c FIXME: Do we have to mention that this is Free Software?
5@c FIXME: where did 'Free Software' in this sentence fit before
6@c FIXME: we changed it?
7This collection of manuals describes GNUnet, a framework
5for secure peer-to-peer networking with the high-level goal to provide 8for secure peer-to-peer networking with the high-level goal to provide
6a strong foundation Free Software for a global, distributed network 9a strong foundation for a global, distributed network
7that provides security and privacy. GNUnet in that sense aims to 10that provides security and privacy.
8replace the current Internet protocol stack. Along with an 11GNUnet in that sense aims to replace the current Internet protocol stack.
9application for secure publication of files, it has grown to include 12Along with an application for secure publication of files, it has grown to
10all kinds of basic applications for the foundation of a new Internet. 13include all kinds of basic applications for the foundation of a new
14Internet.
11 15
12@menu 16@menu
13* About this book:: 17* About this book::
@@ -22,47 +26,74 @@ all kinds of basic applications for the foundation of a new Internet.
22 26
23The books (described as ``book'' or ``books'' in the following) 27The books (described as ``book'' or ``books'' in the following)
24bundled as the ``GNUnet Reference Manual'' are based on the historic 28bundled as the ``GNUnet Reference Manual'' are based on the historic
25work of all contributors to GNUnet's documentation. It is our hope 29work of all contributors to previous documentation of GNUnet.
30It is our hope
26that the content is described in a way that does not require any 31that the content is described in a way that does not require any
27academic background, although some concepts will require further 32academic background, although some concepts will require further
28reading. 33reading.
29 34
30Our (long-term) goal with these books is to keep them self-contained. If 35Our (long-term) goal with these books is to keep them
31you see references to Wikipedia and other external sources (except for 36self-contained. If you see references to Wikipedia and other external
32our academic papers) it means that we are working on a solution to 37sources (except for our academic papers) it means that we are working
33describe the explanations found there which fits our use-case and licensing. 38on a solution to describe the explanations found there which fits our
34 39use-case and licensing.
35The first chapter (``Preface'') as well as the the second 40
36chapter (``Philosophy'') give an introduction to GNUnet as a project, 41Previously the documentation was contained in Drupal books, on the
37what GNUnet tries to achieve. 42old website. This format was considered unmaintainable for the future, so
43Texinfo was chosen. You might find old and very old sections in
44here in addition to more recent content. It took a long time to
45finish the move to Texinfo (from Drupal to LaTeX to wrong Texinfo
46output dump to good Texinfo) and only recently (late 2018, early
472019) content checking started. We apologize to the reader for
48any inconvenience and hope you apply logic where bad advice from
4910 years ago can be found (pipe to sudo to install software is
50one example). Patches (contributions) to this documentation are more
51than welcome!
52
53The first chapter (``Preface'') as well as the the second chapter
54(``Philosophy'') give an introduction to GNUnet as a project, what
55GNUnet tries to achieve. ``Key Concepts'' explains the key concepts
56in GNUnet.
57These three chapters are the most complete in the documentation.
58They are followed by chapters which explain specific parts of
59GNUnet (and need more work):
60``Installing GNUnet'', ``GNUnet Contributors Handbook'' and
61``GNUnet Developer Handbook''.
38 62
39@node Contributing to this book 63@node Contributing to this book
40@section Contributing to this book 64@section Contributing to this book
41 65
66@c FIXME: There's a good amount of repetition here, we should
67@c FIXME: fix this.
42The GNUnet Reference Manual is a collective work produced by various 68The GNUnet Reference Manual is a collective work produced by various
43people throughout the years. The version you are reading is derived 69people throughout the years.
44from many individual efforts hosted on our website. This was a failed 70
45experiment, and with the conversion to Texinfo we hope to address this 71The version you are reading is derived
46in the longterm. Texinfo is the documentation language of the GNU project. 72from many individual efforts hosted on one of our old websites.
73In the end it was considered to be impractical to read by
74those who required the information.
75With the conversion to Texinfo --- the version you are reading
76right now --- we hope to address this in the longterm.
77Texinfo is the documentation language of the GNU project.
78
47While it can be intimidating at first and look scary or complicated, 79While it can be intimidating at first and look scary or complicated,
48it is just another way to express text format instructions. We encourage 80it is just another way to express text format instructions.
49you to take this opportunity and learn about Texinfo, learn about GNUnet, 81
50and one word at a time we will arrive at a book which explains GNUnet in 82We encourage you to take this opportunity and learn about Texinfo,
51the least complicated way to you. Even when you don't want or can't learn 83learn about GNUnet, and one word at a time we will arrive at a
52Texinfo, you can contribute. Send us an Email or join our IRC chat room 84book which explains GNUnet in the least complicated way to you.
53on freenode and talk with us about the documentation (the prefered way 85
54to reach out is the mailinglist, since you can communicate with us 86Even when you don't want to or can't learn Texinfo, you can contribute.
55without waiting on someone in the chatroom). One way or another you 87Send us an Email or join our IRC chat room on freenode and talk with
56can help shape the understanding of GNUnet without the ability to read 88us about the documentation (the prefered way to reach out is the
57and understand its sourcecode. 89mailinglist, since you can communicate with us without waiting on
90someone in the chatroom).
91One way or another you can help shape the understanding of GNUnet
92without the ability to read and understand its sourcecode.
58 93
59@node Introduction 94@node Introduction
60@section Introduction 95@section Introduction
61 96
62@c In less than 2 printed pages describe the history of GNUnet here,
63@c what we have now and what's still missing (could be split into
64@c subchapters).
65
66GNUnet in its current version is the result of almost 20 years of work 97GNUnet in its current version is the result of almost 20 years of work
67from many contributors. So far, most contributions were made by 98from many contributors. So far, most contributions were made by
68volunteers or people paid to do fundamental research. At this stage, 99volunteers or people paid to do fundamental research. At this stage,
@@ -109,12 +140,17 @@ social network, resulting in a significant growth of the core team.
109In 2013, we launched @uref{https://taler.net, GNU Taler} to address 140In 2013, we launched @uref{https://taler.net, GNU Taler} to address
110the challenge of convenient 141the challenge of convenient
111and privacy-preserving online payments. In 2015, the 142and privacy-preserving online payments. In 2015, the
112@c TODO: Maybe even markup for the E if it renders in most outputs. 143@c XXX: It is not correct to refer to pEp as pEp stylistic,
113@uref{https://pep.foundation/, pEp} (pretty Easy privacy) project 144@c XXX: but the correct version would lead to problems with
145@c XXX: some of our outputs and/or older versions of texinfo
146@c XXX: and devices that display versions on consoles etc.
147@c XXX: This is why we keep the pEp until proven that p(tripple bar)p
148@c XXX: does not create broken outputs.
149@uref{https://pep.foundation/, pretty Easy privacy} (pEp) project
114announced that they will use GNUnet as the technology for their 150announced that they will use GNUnet as the technology for their
115meta-data protection layer, ultimately resulting in GNUnet e.V. 151meta-data protection layer, ultimately resulting in GNUnet e.V.
116entering into a formal long-term collaboration with the pEp 152entering into a formal long-term collaboration with the pEp
117foundation. In 2016, Taler Systems SA, a first startup using GNUnet 153Foundation. In 2016, Taler Systems SA, a first startup using GNUnet
118technology, was founded with support from the community. 154technology, was founded with support from the community.
119 155
120GNUnet is not merely a technical project, but also a political 156GNUnet is not merely a technical project, but also a political
@@ -131,7 +167,7 @@ Similarly its flaws are not limited to the protocol design. Thus,
131technical excellence by itself will not suffice to create a better 167technical excellence by itself will not suffice to create a better
132network. We also need to build a community that is wise, humble and 168network. We also need to build a community that is wise, humble and
133has a sense of humor to achieve our goal to create a technical 169has a sense of humor to achieve our goal to create a technical
134foundation for a society we would like to live in. 170foundation for a society we would like to live in.
135 171
136 172
137@node Project governance 173@node Project governance
@@ -142,15 +178,12 @@ follows the governance model of a benevolent dictator. This means
142that ultimately, the GNU project appoints the GNU maintainer and can 178that ultimately, the GNU project appoints the GNU maintainer and can
143overrule decisions made by the GNUnet maintainer. Similarly, the 179overrule decisions made by the GNUnet maintainer. Similarly, the
144GNUnet maintainer can overrule any decisions made by individual 180GNUnet maintainer can overrule any decisions made by individual
145@c TODO: Should we mention if this is just about GNUnet? Other projects
146@c TODO: in GNU seem to have rare issues (GCC, the 2018 documentation
147@c TODO: discussion.
148developers. Still, in practice neither has happened in the last 20 181developers. Still, in practice neither has happened in the last 20
149years, and we hope to keep it that way. 182years for GNUnet, and we hope to keep it that way.
150 183
151@c TODO: Actually we are a Swiss association, or just a German association 184@c TODO: Actually we are a Swiss association, or just a German association
152@c TODO: with Swiss bylaws/Satzung? 185@c TODO: with Swiss bylaws/Satzung?
153@c TODO: Rewrite one of the 'GNUnet eV may also' sentences. 186@c TODO: Rewrite one of the 'GNUnet eV may also' sentences?
154The GNUnet project is supported by GNUnet e.V., a German association 187The GNUnet project is supported by GNUnet e.V., a German association
155where any developer can become a member. GNUnet e.V. serves as a 188where any developer can become a member. GNUnet e.V. serves as a
156legal entity to hold the copyrights to GNUnet. GNUnet e.V. may also 189legal entity to hold the copyrights to GNUnet. GNUnet e.V. may also
diff --git a/doc/handbook/chapters/user.texi b/doc/handbook/chapters/user.texi
index 1300b2bb6..37c5849ab 100644
--- a/doc/handbook/chapters/user.texi
+++ b/doc/handbook/chapters/user.texi
@@ -1,6 +1,6 @@
1@node Using GNUnet 1@node Using GNUnet
2@chapter Using GNUnet 2@chapter Using GNUnet
3@c %**end of header 3
4 4
5This tutorial is supposed to give a first introduction for users 5This tutorial is supposed to give a first introduction for users
6trying to do something real with GNUnet. Installation and 6trying to do something real with GNUnet. Installation and
@@ -47,7 +47,7 @@ $ gnunet-arm -e
47 47
48@node First steps - Using the GNU Name System 48@node First steps - Using the GNU Name System
49@section First steps - Using the GNU Name System 49@section First steps - Using the GNU Name System
50@c %**end of header 50
51 51
52@menu 52@menu
53* Preliminaries:: 53* Preliminaries::
@@ -65,7 +65,7 @@ $ gnunet-arm -e
65 65
66@node Preliminaries 66@node Preliminaries
67@subsection Preliminaries 67@subsection Preliminaries
68@c %**end of header 68
69 69
70``.pin'' is a default zone which points to a zone managed by gnunet.org. 70``.pin'' is a default zone which points to a zone managed by gnunet.org.
71Use @code{gnunet-config -s gns} to view the GNS configuration, including 71Use @code{gnunet-config -s gns} to view the GNS configuration, including
@@ -106,7 +106,7 @@ rules - GO0T87F9BPMF8NKD5A54L2AH1T0GRML539TPFSRMCEA98182QD30
106 106
107@node The GNS Tab 107@node The GNS Tab
108@subsection The GNS Tab 108@subsection The GNS Tab
109@c %**end of header 109
110 110
111Maintaing your zones is through the NAMESTORE service and is discussed 111Maintaing your zones is through the NAMESTORE service and is discussed
112here. You can manage your zone using @command{gnunet-identity} and 112here. You can manage your zone using @command{gnunet-identity} and
@@ -138,7 +138,7 @@ bottom of the window contains the existing entries in the selected zone.
138 138
139@node Creating a Record 139@node Creating a Record
140@subsection Creating a Record 140@subsection Creating a Record
141@c %**end of header 141
142 142
143We will begin by creating a simple record in your master zone. 143We will begin by creating a simple record in your master zone.
144To do this, click on the text "<new name>" in the table. The field is 144To do this, click on the text "<new name>" in the table. The field is
@@ -168,7 +168,7 @@ to edit it later.
168 168
169@node Resolving GNS records 169@node Resolving GNS records
170@subsection Resolving GNS records 170@subsection Resolving GNS records
171@c %**end of header 171
172 172
173Next, you should try resolving your own GNS records. The method we 173Next, you should try resolving your own GNS records. The method we
174found to be the most uncomplicated is to do this by explicitly 174found to be the most uncomplicated is to do this by explicitly
@@ -191,7 +191,7 @@ the application.
191 191
192@node Integration with Browsers 192@node Integration with Browsers
193@subsection Integration with Browsers 193@subsection Integration with Browsers
194@c %**end of header 194
195 195
196While we recommend integrating GNS using the NSS module in the 196While we recommend integrating GNS using the NSS module in the
197GNU libc Name Service Switch, you can also integrate GNS 197GNU libc Name Service Switch, you can also integrate GNS
@@ -271,7 +271,7 @@ apt-get install texlive-full
271 271
272@noindent 272@noindent
273Start creating a business card by clicking the "Copy" button 273Start creating a business card by clicking the "Copy" button
274in @command{gnunet-gtk}'s GNS tab. Next, you should start 274in @command{gnunet-namestore-gtk}. Next, you should start
275the @command{gnunet-bcd} program (in the terminal, on the command-line). 275the @command{gnunet-bcd} program (in the terminal, on the command-line).
276You do not need to pass any options, and please be not surprised if 276You do not need to pass any options, and please be not surprised if
277there is no output: 277there is no output:
@@ -286,7 +286,7 @@ where @code{gnunet-bcd} is running a Web server!
286 286
287First, you might want to fill in the "GNS Public Key" field by 287First, you might want to fill in the "GNS Public Key" field by
288right-clicking and selecting "Paste", filling in the public key 288right-clicking and selecting "Paste", filling in the public key
289from the copy you made in @command{gnunet-gtk}. 289from the copy you made in @command{gnunet-namestore-gtk}.
290Then, fill in all of the other fields, including your @b{GNS NICKname}. 290Then, fill in all of the other fields, including your @b{GNS NICKname}.
291Adding a GPG fingerprint is optional. 291Adding a GPG fingerprint is optional.
292Once finished, click "Submit Query". 292Once finished, click "Submit Query".
@@ -302,7 +302,7 @@ You can now go back to the shell running @code{gnunet-bcd} and press
302 302
303@node Be Social 303@node Be Social
304@subsection Be Social 304@subsection Be Social
305@c %**end of header 305
306 306
307Next, you should print out your business card and be social. 307Next, you should print out your business card and be social.
308Find a friend, help them install GNUnet and exchange business cards with 308Find a friend, help them install GNUnet and exchange business cards with
@@ -424,7 +424,7 @@ performed by using the @command{-p} option of @command{gnunet-revocation}.
424 424
425@node What's Next? 425@node What's Next?
426@subsection What's Next? 426@subsection What's Next?
427@c %**end of header 427
428 428
429This may seem not like much of an application yet, but you have 429This may seem not like much of an application yet, but you have
430just been one of the first to perform a decentralized secure name 430just been one of the first to perform a decentralized secure name
@@ -443,7 +443,7 @@ using this new public key infrastructure.
443@pindex gnunet-conservation-gtk 443@pindex gnunet-conservation-gtk
444@node First steps - Using GNUnet Conversation 444@node First steps - Using GNUnet Conversation
445@section First steps - Using GNUnet Conversation 445@section First steps - Using GNUnet Conversation
446@c %**end of header 446
447 447
448First, you should launch the graphical user interface. You can do 448First, you should launch the graphical user interface. You can do
449this from the command-line by typing 449this from the command-line by typing
@@ -459,7 +459,7 @@ $ gnunet-conversation-gtk
459 459
460@node Testing your Audio Equipment 460@node Testing your Audio Equipment
461@subsection Testing your Audio Equipment 461@subsection Testing your Audio Equipment
462@c %**end of header 462
463 463
464First, you should use @code{gnunet-conversation-test} to check that your 464First, you should use @code{gnunet-conversation-test} to check that your
465microphone and speaker are working correctly. You will be prompted to 465microphone and speaker are working correctly. You will be prompted to
@@ -471,7 +471,7 @@ that the correct device is being associated with GNUnet's audio tools.
471 471
472@node GNS Zones 472@node GNS Zones
473@subsection GNS Zones 473@subsection GNS Zones
474@c %**end of header 474
475 475
476@code{gnunet-conversation} uses GNS for addressing. This means that 476@code{gnunet-conversation} uses GNS for addressing. This means that
477you need to have a GNS zone created before using it. Information 477you need to have a GNS zone created before using it. Information
@@ -485,7 +485,7 @@ about how to create GNS zones can be found here.
485 485
486@node Picking an Identity 486@node Picking an Identity
487@subsubsection Picking an Identity 487@subsubsection Picking an Identity
488@c %**end of header 488
489 489
490To make a call with @code{gnunet-conversation}, you first 490To make a call with @code{gnunet-conversation}, you first
491need to choose an identity. This identity is both the caller ID 491need to choose an identity. This identity is both the caller ID
@@ -542,7 +542,7 @@ manually. Save the record.
542 542
543@node Calling somebody 543@node Calling somebody
544@subsubsection Calling somebody 544@subsubsection Calling somebody
545@c %**end of header 545
546 546
547Now you can call a buddy. Obviously, your buddy will have to have GNUnet 547Now you can call a buddy. Obviously, your buddy will have to have GNUnet
548installed and must have performed the same steps. Also, you must have 548installed and must have performed the same steps. Also, you must have
@@ -568,7 +568,7 @@ Either of you can end the call using @command{/cancel}. You can exit
568 568
569@node First steps - Using the GNUnet VPN 569@node First steps - Using the GNUnet VPN
570@section First steps - Using the GNUnet VPN 570@section First steps - Using the GNUnet VPN
571@c %**end of header 571
572 572
573 573
574@menu 574@menu
@@ -581,7 +581,7 @@ Either of you can end the call using @command{/cancel}. You can exit
581 581
582@node VPN Preliminaries 582@node VPN Preliminaries
583@subsection VPN Preliminaries 583@subsection VPN Preliminaries
584@c %**end of header 584
585 585
586To test the GNUnet VPN, we should first run a web server. 586To test the GNUnet VPN, we should first run a web server.
587The easiest way to do this is to just start @code{gnunet-bcd}, 587The easiest way to do this is to just start @code{gnunet-bcd},
@@ -622,7 +622,7 @@ to install the NSS plugins in the proper location.
622 622
623@node GNUnet-Exit configuration 623@node GNUnet-Exit configuration
624@subsection GNUnet-Exit configuration 624@subsection GNUnet-Exit configuration
625@c %**end of header 625
626 626
627Stop your peer (as user @code{gnunet}, run @command{gnunet-arm -e}) and 627Stop your peer (as user @code{gnunet}, run @command{gnunet-arm -e}) and
628run @command{gnunet-setup}. In @command{gnunet-setup}, make sure to 628run @command{gnunet-setup}. In @command{gnunet-setup}, make sure to
@@ -638,10 +638,10 @@ Now exit @command{gnunet-setup} and restart your peer
638 638
639@node GNS configuration 639@node GNS configuration
640@subsection GNS configuration 640@subsection GNS configuration
641@c %**end of header 641
642 642
643Now, using your normal user (not the @code{gnunet} system user), run 643Now, using your normal user (not the @code{gnunet} system user), run
644@command{gnunet-gtk}. Select the GNS icon and add a new label www in your 644@command{gnunet-namestore-gtk}. Add a new label www in your
645master zone. For the record type, select @code{VPN}. You should then 645master zone. For the record type, select @code{VPN}. You should then
646see the VPN dialog: 646see the VPN dialog:
647 647
@@ -654,11 +654,11 @@ identifier that we used in the Exit setup earlier, so here supply "bcd".
654If you want others to be able to use the service, you should probably make 654If you want others to be able to use the service, you should probably make
655the record public. For non-public services, you should use a passphrase 655the record public. For non-public services, you should use a passphrase
656instead of the string "bcd". Save the record and 656instead of the string "bcd". Save the record and
657exit @command{gnunet-gtk}. 657exit @command{gnunet-namestore-gtk}.
658 658
659@node Accessing the service 659@node Accessing the service
660@subsection Accessing the service 660@subsection Accessing the service
661@c %**end of header 661
662 662
663You should now be able to access your webserver. Type in: 663You should now be able to access your webserver. Type in:
664 664
@@ -681,7 +681,7 @@ your business card.
681 681
682@node Using a Browser 682@node Using a Browser
683@subsection Using a Browser 683@subsection Using a Browser
684@c %**end of header 684
685 685
686Sadly, modern browsers tend to bypass the Name Services Switch and 686Sadly, modern browsers tend to bypass the Name Services Switch and
687attempt DNS resolution directly. You can either run 687attempt DNS resolution directly. You can either run
@@ -693,7 +693,7 @@ using the HTTP proxy with Chrome does work.
693 693
694@node File-sharing 694@node File-sharing
695@section File-sharing 695@section File-sharing
696@c %**end of header 696
697 697
698This chapter documents the GNUnet file-sharing application. The original 698This chapter documents the GNUnet file-sharing application. The original
699file-sharing implementation for GNUnet was designed to provide 699file-sharing implementation for GNUnet was designed to provide
@@ -726,7 +726,7 @@ files.
726 726
727@node fs-Searching 727@node fs-Searching
728@subsection Searching 728@subsection Searching
729@c %**end of header 729
730 730
731The command @command{gnunet-search} can be used to search 731The command @command{gnunet-search} can be used to search
732for content on GNUnet. The format is: 732for content on GNUnet. The format is:
@@ -784,7 +784,7 @@ the file in bytes.
784 784
785@node fs-Downloading 785@node fs-Downloading
786@subsection Downloading 786@subsection Downloading
787@c %**end of header 787
788 788
789In order to download a file, you need the whole line returned by 789In order to download a file, you need the whole line returned by
790@command{gnunet-search}. 790@command{gnunet-search}.
@@ -823,7 +823,7 @@ current number of bytes downloaded whenever new data was received.
823 823
824@node fs-Publishing 824@node fs-Publishing
825@subsection Publishing 825@subsection Publishing
826@c %**end of header 826
827 827
828The command @command{gnunet-publish} can be used to add content 828The command @command{gnunet-publish} can be used to add content
829to the network. The basic format of the command is 829to the network. The basic format of the command is
@@ -844,7 +844,7 @@ $ gnunet-publish -m "description:GNU License" -k gpl -k test -m "mimetype:text/p
844 844
845@node Important command-line options 845@node Important command-line options
846@subsubsection Important command-line options 846@subsubsection Important command-line options
847@c %**end of header 847
848 848
849The option @code{-k} is used to specify keywords for the file that 849The option @code{-k} is used to specify keywords for the file that
850should be inserted. You can supply any number of keywords, 850should be inserted. You can supply any number of keywords,
@@ -871,7 +871,7 @@ man gnunet-publish
871 871
872@node Indexing vs. Inserting 872@node Indexing vs. Inserting
873@subsubsection Indexing vs Inserting 873@subsubsection Indexing vs Inserting
874@c %**end of header 874
875 875
876By default, GNUnet indexes a file instead of making a full copy. 876By default, GNUnet indexes a file instead of making a full copy.
877This is much more efficient, but requires the file to stay unaltered 877This is much more efficient, but requires the file to stay unaltered
@@ -907,7 +907,7 @@ able to crack the encryption (e.g. by guessing the keyword.
907 907
908@node fs-Concepts 908@node fs-Concepts
909@subsection Concepts 909@subsection Concepts
910@c %**end of header 910
911 911
912For better results with filesharing it is useful to understand the 912For better results with filesharing it is useful to understand the
913following concepts. 913following concepts.
@@ -936,7 +936,7 @@ concepts that are used to achieve these goals.
936 936
937@node Files 937@node Files
938@subsubsection Files 938@subsubsection Files
939@c %**end of header 939
940 940
941A file in GNUnet is just a sequence of bytes. Any file-format is allowed 941A file in GNUnet is just a sequence of bytes. Any file-format is allowed
942and the maximum file size is theoretically @math{2^64 - 1} bytes, except 942and the maximum file size is theoretically @math{2^64 - 1} bytes, except
@@ -946,7 +946,7 @@ using GNU libextractor to obtain keywords.
946 946
947@node Keywords 947@node Keywords
948@subsubsection Keywords 948@subsubsection Keywords
949@c %**end of header 949
950 950
951Keywords are the most simple mechanism to find files on GNUnet. 951Keywords are the most simple mechanism to find files on GNUnet.
952Keywords are @strong{case-sensitive} and the search string 952Keywords are @strong{case-sensitive} and the search string
@@ -963,7 +963,7 @@ request.
963 963
964@node Directories 964@node Directories
965@subsubsection Directories 965@subsubsection Directories
966@c %**end of header 966
967 967
968A directory in GNUnet is a list of file identifiers with meta data. 968A directory in GNUnet is a list of file identifiers with meta data.
969The file identifiers provide sufficient information about the files 969The file identifiers provide sufficient information about the files
@@ -986,7 +986,7 @@ other meta information, and possibly even the full original file
986 986
987@node Pseudonyms 987@node Pseudonyms
988@subsubsection Pseudonyms 988@subsubsection Pseudonyms
989@c %**end of header 989
990 990
991@b{Please note that the text in this subsection is outdated and needs} 991@b{Please note that the text in this subsection is outdated and needs}
992@b{to be rewritten for version 0.10!} 992@b{to be rewritten for version 0.10!}
@@ -1005,7 +1005,7 @@ to copy around).
1005 1005
1006@node Namespaces 1006@node Namespaces
1007@subsubsection Namespaces 1007@subsubsection Namespaces
1008@c %**end of header 1008
1009 1009
1010@b{Please note that the text in this subsection is outdated and needs} 1010@b{Please note that the text in this subsection is outdated and needs}
1011@b{to be rewritten for version 0.10!} 1011@b{to be rewritten for version 0.10!}
@@ -1020,7 +1020,7 @@ same entity (which does not have to be the same person).
1020 1020
1021@node Advertisements 1021@node Advertisements
1022@subsubsection Advertisements 1022@subsubsection Advertisements
1023@c %**end of header 1023
1024 1024
1025@b{Please note that the text in this subsection is outdated and needs} 1025@b{Please note that the text in this subsection is outdated and needs}
1026@b{to be rewritten for version 0.10!} 1026@b{to be rewritten for version 0.10!}
@@ -1045,7 +1045,7 @@ confusion.
1045 1045
1046@node Anonymity level 1046@node Anonymity level
1047@subsubsection Anonymity level 1047@subsubsection Anonymity level
1048@c %**end of header 1048
1049 1049
1050The anonymity level determines how hard it should be for an adversary to 1050The anonymity level determines how hard it should be for an adversary to
1051determine the identity of the publisher or the searcher/downloader. An 1051determine the identity of the publisher or the searcher/downloader. An
@@ -1059,7 +1059,7 @@ it can also significantly hurt performance.
1059 1059
1060@node Content Priority 1060@node Content Priority
1061@subsubsection Content Priority 1061@subsubsection Content Priority
1062@c %**end of header 1062
1063 1063
1064Depending on the peer's configuration, GNUnet peers migrate content 1064Depending on the peer's configuration, GNUnet peers migrate content
1065between peers. Content in this sense are individual blocks of a file, 1065between peers. Content in this sense are individual blocks of a file,
@@ -1076,7 +1076,7 @@ when the block was published initially.
1076 1076
1077@node Replication 1077@node Replication
1078@subsubsection Replication 1078@subsubsection Replication
1079@c %**end of header 1079
1080 1080
1081When peers migrate content to other systems, the replication level 1081When peers migrate content to other systems, the replication level
1082of a block is used to decide which blocks need to be migrated most 1082of a block is used to decide which blocks need to be migrated most
@@ -1088,7 +1088,7 @@ selection is simply random.
1088 1088
1089@node Namespace Management 1089@node Namespace Management
1090@subsection Namespace Management 1090@subsection Namespace Management
1091@c %**end of header 1091
1092 1092
1093@b{Please note that the text in this subsection is outdated and needs} 1093@b{Please note that the text in this subsection is outdated and needs}
1094@b{to be rewritten for version 0.10!} 1094@b{to be rewritten for version 0.10!}
@@ -1108,7 +1108,7 @@ lists all locally available pseudonyms.
1108 1108
1109@node Creating Pseudonyms 1109@node Creating Pseudonyms
1110@subsubsection Creating Pseudonyms 1110@subsubsection Creating Pseudonyms
1111@c %**end of header 1111
1112 1112
1113@b{Please note that the text in this subsection is outdated and needs} 1113@b{Please note that the text in this subsection is outdated and needs}
1114@b{to be rewritten for version 0.10!} 1114@b{to be rewritten for version 0.10!}
@@ -1123,7 +1123,7 @@ used.
1123 1123
1124@node Deleting Pseudonyms 1124@node Deleting Pseudonyms
1125@subsubsection Deleting Pseudonyms 1125@subsubsection Deleting Pseudonyms
1126@c %**end of header 1126
1127 1127
1128@b{Please note that the text in this subsection is outdated and needs} 1128@b{Please note that the text in this subsection is outdated and needs}
1129@b{to be rewritten for version 0.10!} 1129@b{to be rewritten for version 0.10!}
@@ -1137,7 +1137,7 @@ unavailable.
1137 1137
1138@node Advertising namespaces 1138@node Advertising namespaces
1139@subsubsection Advertising namespaces 1139@subsubsection Advertising namespaces
1140@c %**end of header 1140
1141 1141
1142@b{Please note that the text in this subsection is outdated and needs} 1142@b{Please note that the text in this subsection is outdated and needs}
1143@b{to be rewritten for version 0.10!} 1143@b{to be rewritten for version 0.10!}
@@ -1157,7 +1157,7 @@ the quality of the content found in it.
1157 1157
1158@node Namespace names 1158@node Namespace names
1159@subsubsection Namespace names 1159@subsubsection Namespace names
1160@c %**end of header 1160
1161 1161
1162@b{Please note that the text in this subsection is outdated and needs} 1162@b{Please note that the text in this subsection is outdated and needs}
1163@b{to be rewritten for version 0.10!} 1163@b{to be rewritten for version 0.10!}
@@ -1172,7 +1172,7 @@ to the NICKNAME to get a unique identifier.
1172 1172
1173@node Namespace root 1173@node Namespace root
1174@subsubsection Namespace root 1174@subsubsection Namespace root
1175@c %**end of header 1175
1176 1176
1177@b{Please note that the text in this subsection is outdated and needs} 1177@b{Please note that the text in this subsection is outdated and needs}
1178@b{to be rewritten for version 0.10!} 1178@b{to be rewritten for version 0.10!}
@@ -1185,7 +1185,7 @@ entry point to the content of the namespace.
1185 1185
1186@node File-Sharing URIs 1186@node File-Sharing URIs
1187@subsection File-Sharing URIs 1187@subsection File-Sharing URIs
1188@c %**end of header 1188
1189 1189
1190GNUnet (currently) uses four different types of URIs for 1190GNUnet (currently) uses four different types of URIs for
1191file-sharing. They all begin with "gnunet://fs/". 1191file-sharing. They all begin with "gnunet://fs/".
@@ -1207,7 +1207,7 @@ into two OR-ed keywords 'foo' and 'bar', not into '"foo bar"'.
1207 1207
1208@node Encoding of hash values in URIs 1208@node Encoding of hash values in URIs
1209@subsubsection Encoding of hash values in URIs 1209@subsubsection Encoding of hash values in URIs
1210@c %**end of header 1210
1211 1211
1212Most URIs include some hash values. Hashes are encoded using 1212Most URIs include some hash values. Hashes are encoded using
1213base32hex (RFC 2938). 1213base32hex (RFC 2938).
@@ -1215,7 +1215,7 @@ base32hex (RFC 2938).
1215@cindex chk-uri 1215@cindex chk-uri
1216@node Content Hash Key (chk) 1216@node Content Hash Key (chk)
1217@subsubsection Content Hash Key (chk) 1217@subsubsection Content Hash Key (chk)
1218@c %**end of header 1218
1219 1219
1220A chk-URI is used to (uniquely) identify a file or directory 1220A chk-URI is used to (uniquely) identify a file or directory
1221and to allow peers to download the file. Files are stored in 1221and to allow peers to download the file. Files are stored in
@@ -1232,7 +1232,7 @@ of the encrypted block).
1232@cindex loc-uri 1232@cindex loc-uri
1233@node Location identifiers (loc) 1233@node Location identifiers (loc)
1234@subsubsection Location identifiers (loc) 1234@subsubsection Location identifiers (loc)
1235@c %**end of header 1235
1236 1236
1237For non-anonymous file-sharing, loc-URIs are used to specify which 1237For non-anonymous file-sharing, loc-URIs are used to specify which
1238peer is offering the data (in addition to specifying all of the 1238peer is offering the data (in addition to specifying all of the
@@ -1248,7 +1248,7 @@ base32hex) and EXPTIME specifies when the signature expires
1248@cindex ksk-uri 1248@cindex ksk-uri
1249@node Keyword queries (ksk) 1249@node Keyword queries (ksk)
1250@subsubsection Keyword queries (ksk) 1250@subsubsection Keyword queries (ksk)
1251@c %**end of header 1251
1252 1252
1253A keyword-URI is used to specify that the desired operation 1253A keyword-URI is used to specify that the desired operation
1254is the search using a particular keyword. The format is simply 1254is the search using a particular keyword. The format is simply
@@ -1263,7 +1263,7 @@ Furthermore they must not contain '++'.
1263@cindex sks-uri 1263@cindex sks-uri
1264@node Namespace content (sks) 1264@node Namespace content (sks)
1265@subsubsection Namespace content (sks) 1265@subsubsection Namespace content (sks)
1266@c %**end of header 1266
1267 1267
1268@b{Please note that the text in this subsection is outdated and needs} 1268@b{Please note that the text in this subsection is outdated and needs}
1269@b{to be rewritten for version 0.10!} 1269@b{to be rewritten for version 0.10!}
@@ -1298,7 +1298,7 @@ looking for for testing, we need to begin by publishing a file.
1298 1298
1299@node gtk-Publishing 1299@node gtk-Publishing
1300@subsubsection Publishing 1300@subsubsection Publishing
1301@c %**end of header 1301
1302 1302
1303To publish a file, select "File Sharing" in the menu bar just below the 1303To publish a file, select "File Sharing" in the menu bar just below the
1304"Statistics" icon, and then select "Publish" from the menu. 1304"Statistics" icon, and then select "Publish" from the menu.
@@ -1361,7 +1361,7 @@ with progress indicators):
1361 1361
1362@node gtk-Searching 1362@node gtk-Searching
1363@subsubsection Searching 1363@subsubsection Searching
1364@c %**end of header 1364
1365 1365
1366Below the menu bar, there are four entry widges labeled "Namespace", 1366Below the menu bar, there are four entry widges labeled "Namespace",
1367"Keywords", "Anonymity" and "Mime-type" (from left to right). These 1367"Keywords", "Anonymity" and "Mime-type" (from left to right). These
@@ -1386,7 +1386,7 @@ a little area for downloading appears.
1386 1386
1387@node gtk-Downloading 1387@node gtk-Downloading
1388@subsubsection Downloading 1388@subsubsection Downloading
1389@c %**end of header 1389
1390 1390
1391In the downloading area, you can select the target directory (default is 1391In the downloading area, you can select the target directory (default is
1392"Downloads") and specify the desired filename (by default the filename it 1392"Downloads") and specify the desired filename (by default the filename it
@@ -1413,7 +1413,7 @@ That's it, you now know the basics for file-sharing with GNUnet!
1413 1413
1414@node The GNU Name System 1414@node The GNU Name System
1415@section The GNU Name System 1415@section The GNU Name System
1416@c %**end of header 1416
1417 1417
1418 1418
1419The GNU Name System (GNS) is secure and decentralized naming system. 1419The GNU Name System (GNS) is secure and decentralized naming system.
@@ -1915,8 +1915,8 @@ Ascension
1915Usage: 1915Usage:
1916 ascension <domain> [-d] [-p] 1916 ascension <domain> [-d] [-p]
1917 ascension <domain> <port> [-d] [-p] 1917 ascension <domain> <port> [-d] [-p]
1918 ascension <domain> -ns <transferns> [-d] [-p] 1918 ascension <domain> -n <transferns> [-d] [-p]
1919 ascension <domain> -ns <transferns> <port> [-d] [-p] 1919 ascension <domain> -n <transferns> <port> [-d] [-p]
1920 ascension -p | --public 1920 ascension -p | --public
1921 ascension -h | --help 1921 ascension -h | --help
1922 ascension -v | --version 1922 ascension -v | --version
@@ -1940,7 +1940,7 @@ To migrate the Syrian top level domain - one of the few top level domains that
1940still supports zone transfers - into GNS use the following command: 1940still supports zone transfers - into GNS use the following command:
1941 1941
1942@example 1942@example
1943$ ascension sy. -ns ns1.tld.sy. -p 1943$ ascension sy. -n ns1.tld.sy. -p
1944@end example 1944@end example
1945 1945
1946The -p flag will tell GNS to put these records on the DHT so that other users 1946The -p flag will tell GNS to put these records on the DHT so that other users
@@ -1982,10 +1982,14 @@ and enable the service, so that your zone is migrated automatically.
1982@section reclaimID Identity Provider 1982@section reclaimID Identity Provider
1983 1983
1984The reclaimID Identity Provider (IdP) is a decentralized IdP service. 1984The reclaimID Identity Provider (IdP) is a decentralized IdP service.
1985It allows its users to manage and authorize third parties to access their identity attributes such as email or shipping addresses. 1985It allows its users to manage and authorize third parties to access
1986 1986their identity attributes such as email or shipping addresses.
1987It basically mimics the concepts of centralized IdPs, such as those offered by Google or Facebook. 1987
1988Like other IdPs, reclaimID features an (optional) OpenID-Connect 1.0-compliant protocol layer that can be used for websites to integrate reclaimID as an Identity Provider with little effort. 1988It basically mimics the concepts of centralized IdPs, such as those
1989offered by Google or Facebook.
1990Like other IdPs, reclaimID features an (optional) OpenID-Connect
19911.0-compliant protocol layer that can be used for websites to
1992integrate reclaimID as an Identity Provider with little effort.
1989 1993
1990@menu 1994@menu
1991* Managing Attributes:: 1995* Managing Attributes::
diff --git a/doc/handbook/gnunet.texi b/doc/handbook/gnunet.texi
index a479d2059..75a9f1f2b 100644
--- a/doc/handbook/gnunet.texi
+++ b/doc/handbook/gnunet.texi
@@ -14,7 +14,7 @@
14@c @set OPENPGP-SIGNING-KEY-ID 14@c @set OPENPGP-SIGNING-KEY-ID
15 15
16@copying 16@copying
17Copyright @copyright{} 2001-2018 GNUnet e.V. 17Copyright @copyright{} 2001-2019 GNUnet e.V.
18 18
19Permission is granted to copy, distribute and/or modify this document 19Permission is granted to copy, distribute and/or modify this document
20under the terms of the GNU Free Documentation License, Version 1.3 or 20under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -72,11 +72,11 @@ This document is the Reference Manual for GNUnet version @value{VERSION}.
72 72
73@menu 73@menu
74 74
75* Preface:: Chapter 0 75* Preface:: Preface
76* Philosophy:: About GNUnet 76* Philosophy:: About GNUnet
77* Key Concepts:: Key concepts of GNUnet 77* Key Concepts:: Key concepts of GNUnet
78@c * Vocabulary:: Vocabulary 78@c * Vocabulary:: Vocabulary
79* Installing GNUnet:: Installing GNUnet 79* Installing GNUnet:: Installing GNUnet
80* Using GNUnet:: Using GNUnet 80* Using GNUnet:: Using GNUnet
81@c * Configuration Handbook:: Configuring GNUnet 81@c * Configuration Handbook:: Configuring GNUnet
82* GNUnet Contributors Handbook:: Contributing to GNUnet 82* GNUnet Contributors Handbook:: Contributing to GNUnet
@@ -122,9 +122,9 @@ Installing GNUnet
122* Create @code{gnunet} user and group:: 122* Create @code{gnunet} user and group::
123* Preparing and Compiling the Source Code:: 123* Preparing and Compiling the Source Code::
124* Installation:: 124* Installation::
125* MOVED FROM USER Checking the Installation:: 125* Checking the Installation::
126* MOVED FROM USER The graphical configuration interface:: 126* The graphical configuration interface::
127* MOVED FROM USER Config Leftovers:: 127* Config Leftovers::
128 128
129Using GNUnet 129Using GNUnet
130 130
diff --git a/doc/handbook/manual.css b/doc/handbook/manual.css
index 404525dc2..0fe08b83c 100644
--- a/doc/handbook/manual.css
+++ b/doc/handbook/manual.css
@@ -1,6 +1,6 @@
1/* Style-sheet to use for manuals (copied from Emacs) */ 1/* Style-sheet to use for manuals (copied from Emacs) */
2 2
3@import url('/style.css'); 3@import url('style.css');
4 4
5/* makeinfo 6.5 converts @quotation to <blockquote>. Highlight them. */ 5/* makeinfo 6.5 converts @quotation to <blockquote>. Highlight them. */
6blockquote { 6blockquote {
diff --git a/doc/handbook/run-gendocs.sh b/doc/handbook/run-gendocs.sh
index 5e60a2d0f..e52ae0d23 100755
--- a/doc/handbook/run-gendocs.sh
+++ b/doc/handbook/run-gendocs.sh
@@ -2,7 +2,7 @@
2 2
3make version.texi/replacement 3make version.texi/replacement
4 4
5./gendocs.sh --email gnunet-developers@gnu.org gnunet-c-tutorial "GNUnet C Tutorial" -o "manual/gnunet-c-tutorial" 5#./gendocs.sh --email gnunet-developers@gnu.org gnunet-c-tutorial "GNUnet C Tutorial" -o "manual/gnunet-c-tutorial"
6#cd manual 6#cd manual
7#mkdir gnunet-c-tutorial 7#mkdir gnunet-c-tutorial
8#mv * gnunet-c-tutorial/ 8#mv * gnunet-c-tutorial/
diff --git a/doc/handbook/style.css b/doc/handbook/style.css
index 0c4525437..e5271197b 100644
--- a/doc/handbook/style.css
+++ b/doc/handbook/style.css
@@ -1,6 +1,6 @@
1/* This stylesheet is used by manuals and a few older resources. */ 1/* This stylesheet is used by manuals and a few older resources. */
2 2
3@import url('/reset.css'); 3@import url('reset.css');
4 4
5 5
6/*** PAGE LAYOUT ***/ 6/*** PAGE LAYOUT ***/
diff --git a/doc/man/.gitignore b/doc/man/.gitignore
index ffd69e11b..38ed67872 100644
--- a/doc/man/.gitignore
+++ b/doc/man/.gitignore
@@ -1 +1,5 @@
1gnunet.conf.5 1gnunet.conf.5
2groff_lint.log
3*.html
4gnunet-c-tutorial.7
5gnunet-documentation.7
diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
index 53d97b6b9..509e33be7 100644
--- a/doc/man/Makefile.am
+++ b/doc/man/Makefile.am
@@ -5,7 +5,23 @@ do_subst = $(SED) -e 's,[@]SYSCONFDIR[@],$(sysconfdir),g'
5gnunet.conf.5: gnunet.conf.5.in Makefile 5gnunet.conf.5: gnunet.conf.5.in Makefile
6 $(do_subst) < $(srcdir)/gnunet.conf.5.in > gnunet.conf.5 6 $(do_subst) < $(srcdir)/gnunet.conf.5.in > gnunet.conf.5
7 7
8CLEANFILES = gnunet.conf.5 8if TEXI2MDOC_GENERATION
9gnunet-c-tutorial.7: Makefile gnunet-tutorial.7
10 @echo generated texi2mdoc output || true
11
12gnunet-tutorial.7: Makefile
13 $(SH) $(srcdir)/texi2mdoc-generation.sh || true
14
15endif
16
17CLEANFILES = gnunet.conf.5 *.html
18
19if TEXI2MDOC_GENERATION
20CLEANFILES += gnunet-documentation.7 gnunet-c-tutorial.7
21endif
22
23html:
24 $(SH) $(srcdir)/produce_html.sh
9 25
10man_MANS = \ 26man_MANS = \
11 gnunet.conf.5 \ 27 gnunet.conf.5 \
@@ -26,6 +42,7 @@ man_MANS = \
26 gnunet-fs.1 \ 42 gnunet-fs.1 \
27 gnunet-gns.1 \ 43 gnunet-gns.1 \
28 gnunet-gns-proxy.1 \ 44 gnunet-gns-proxy.1 \
45 gnunet-gns-proxy-setup-ca.1 \
29 gnunet-identity.1 \ 46 gnunet-identity.1 \
30 gnunet-cadet.1 \ 47 gnunet-cadet.1 \
31 gnunet-namecache.1 \ 48 gnunet-namecache.1 \
@@ -34,6 +51,7 @@ man_MANS = \
34 gnunet-nat.1 \ 51 gnunet-nat.1 \
35 gnunet-nat-auto.1 \ 52 gnunet-nat-auto.1 \
36 gnunet-nat-server.1 \ 53 gnunet-nat-server.1 \
54 gnunet-nse.1 \
37 gnunet-peerinfo.1 \ 55 gnunet-peerinfo.1 \
38 gnunet-publish.1 \ 56 gnunet-publish.1 \
39 gnunet-qr.1 \ 57 gnunet-qr.1 \
@@ -53,10 +71,15 @@ man_MANS = \
53 gnunet-vpn.1 \ 71 gnunet-vpn.1 \
54 gnunet-zoneimport.1 72 gnunet-zoneimport.1
55 73
74if TEXI2MDOC_GENERATION
75man_MANS += gnunet-c-tutorial.7 gnunet-documentation.7
76endif
77
56EXTRA_DIST = ${man_MANS} \ 78EXTRA_DIST = ${man_MANS} \
57 gnunet.conf.5.in 79 gnunet.conf.5.in \
80 texi2mdoc-generation.sh \
81 README
58 82
59if TEXI2MDOC_GENERATION 83if TEXI2MDOC_GENERATION
60EXTRA_DIST += gnunet-documentation.7 \ 84EXTRA_DIST += gnunet-documentation.7 gnunet-c-tutorial.7
61 gnunet-c-tutorial.7
62endif 85endif
diff --git a/doc/man/README b/doc/man/README
new file mode 100644
index 000000000..fb95a11f2
--- /dev/null
+++ b/doc/man/README
@@ -0,0 +1,8 @@
1Please note that new edits in files which already are in mdoc format
2should only be done in mdoc format.
3
4TODO:
5
6* incomplete pages:
7 - gnunet-timeout
8 \ No newline at end of file
diff --git a/doc/man/gnunet-arm.1 b/doc/man/gnunet-arm.1
index b17e74a73..c25b10bb5 100644
--- a/doc/man/gnunet-arm.1
+++ b/doc/man/gnunet-arm.1
@@ -1,78 +1,134 @@
1.TH GNUNET\-ARM 1 "January 4, 2012" "GNUnet" 1.\" This file is part of GNUnet.
2.SH NAME 2.\" Copyright (C) 2001-2019 GNUnet e.V.
3gnunet\-arm \- control GNUnet services 3.\"
4.SH SYNOPSIS 4.\" Permission is granted to copy, distribute and/or modify this document
5.B gnunet\-arm 5.\" under the terms of the GNU Free Documentation License, Version 1.3 or
6.RI [ options ] 6.\" any later version published by the Free Software Foundation; with no
7.SH DESCRIPTION 7.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
8\fBgnunet\-arm\fP can be used to start or stop GNUnet services, including 8.\" copy of the license is included in the file
9the ARM service itself. The ARM service is a supervisor for GNUnet's 9.\" ``FDL-1.3''.
10service processes. ARM starts services on-demand or as configured and 10.\"
11re-starts them if they crash. 11.\" A copy of the license is also available from the Free Software
12.SH OPTIONS 12.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
13.B 13.\"
14.IP "\-c FILENAME, \-\-config=FILENAME" 14.\" Alternately, this document is also available under the General
15.\" Public License, version 3 or later, as published by the Free Software
16.\" Foundation. A copy of the license is included in the file
17.\" ``GPL3''.
18.\"
19.\" A copy of the license is also available from the Free Software
20.\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
21.\"
22.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
23.\"
24.Dd January 4, 2012
25.Dt GNUNET-ARM 1
26.Os
27.Sh NAME
28.Nm gnunet-arm
29.Nd
30control GNUnet services
31.Sh SYNOPSIS
32.Nm
33.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
34.Op Fl d | \-delete
35.Op Fl e | \-end
36.Op Fl E | \-no-stderr
37.Op Fl h | \-help
38.Op Fl i Ar SERVICE | Fl \-init= Ns Ar SERVICE
39.Op Fl I | \-info
40.Op Fl k Ar SERVICE | Fl \-kill= Ns Ar SERVICE
41.Op Fl l Ar FILENAME | Fl \-logfile= Ns Ar FILENAME
42.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
43.Op Fl m | \-monitor
44.Op Fl O | \-no-stdout
45.Op Fl q | \-quiet
46.Op Fl r | \-restart
47.Op Fl s | \-start
48.Op Fl T DELAY | \-timeout= Ns Ar TIMEOUT
49.Op Fl v | \-version
50.Sh DESCRIPTION
51.Nm
52can be used to start or stop GNUnet services, including the ARM service itself.
53The ARM service is a supervisor for GNUnet's service processes.
54ARM starts services on-demand or as configured and restarts them if they crash.
55.Bl -tag -width Ds
56.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
15Use the configuration file FILENAME. 57Use the configuration file FILENAME.
16.B 58.It Fl d | \-delete
17.IP "\-e, \-\-end" 59Delete config file and directory on exit.
18Shutdown all GNUnet services (including ARM itself). Running 60.It Fl e | \-end
19"gnunet-arm \-e" is the usual way to shutdown a GNUnet peer. 61Shutdown all GNUnet services (including ARM itself).
20.B 62Running "gnunet-arm \-e" is the usual way to shutdown a GNUnet peer.
21.IP "\-h, \-\-help" 63.It Fl E | \-no-stderr
64Don't let gnunet-arm inherit standard error.
65.It Fl h | \-help
22Print short help on options. 66Print short help on options.
23.B 67.It Fl i Ar SERVICE | Fl \-init= Ns Ar SERVICE
24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 68Starts the specified SERVICE if it is not already running.
25Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 69More specifically, this makes the service behave as if it were in the default services list.
26.B 70.It Fl I | \-info
27.IP "\-i SERVICE, \-\-init=SERVICE"
28Starts the specified SERVICE if it is not already running. More specifically,
29this makes the service behave as if it were in the default services list.
30.B
31.IP "\-k SERVICE, \-\-kill=SERVICE"
32Stop the specified SERVICE if it is running. While this will kill the service
33right now, the service may be restarted immediately if other services depend
34on it (service is then started 'on-demand'). If the service used to be a 'default'
35service, its default-service status will be revoked. If the
36service was not a default service, it will just be (temporarily) stopped,
37but could be re-started on-demand at any time.
38.B
39.IP "\-m, \-\-monitor"
40Monitor service activity of ARM. In this mode, the command will not terminate
41until the user presses CTRL-C.
42.B
43.IP "\-s, \-\-start"
44Start all GNUnet default services on this system (and also ARM). Naturally,
45if a service is demanded by a default service, it will then also be started.
46Running "gnunet-arm \-s" is the usual way to start a GNUnet peer.
47.B
48.IP "\-I, \-\-info"
49List all running services. 71List all running services.
50.B 72.It Fl k Ar SERVICE | Fl \-kill= Ns Ar SERVICE
51.IP "\-v, \-\-version" 73Stop the specified SERVICE if it is running.
74While 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').
75If the service used to be a 'default' service, its default-service status will be revoked.
76If the service was not a default service, it will just be (temporarily) stopped, but could be re-started on-demand at any time.
77.It Fl l Ar FILENAME | Fl \-logfile= Ns Ar FILENAME
78Write logs to FILENAME.
79.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
80Use LOGLEVEL for logging.
81Valid values are DEBUG, INFO, WARNING and ERROR.
82.It Fl m | \-monitor
83Monitor service activity of ARM.
84In this mode, the command will not terminate until the user presses CTRL-C.
85.It Fl O | \-no-stdout
86Don't let gnunet-arm inherit standard output
87.It Fl q | \-quiet
88Don't print status messages.
89.It Fl r | \-restart
90Stop and start all GNUnet default services.
91.It Fl s | \-start
92Start all GNUnet default services on this system (and also ARM).
93Naturally, if a service is demanded by a default service, it will then also be started.
94Running "gnunet-arm \-s" is the usual way to start a GNUnet peer.
95.It Fl T DELAY | \-timeout= Ns Ar DELAY
96Exit with error status if operation does not finish after DELAY
97.It Fl v | \-version
52Print GNUnet version number. 98Print GNUnet version number.
53.SH BUGS 99.El
54Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 100.Sh EXAMPLES
55electronic mail to <gnunet\-developers@gnu.org> 101Start the gnunet-arm for the user:
56.SH SEE ALSO 102.Pp
57gnunet\-config(1), gnunet\-setup(1) 103.Dl gnunet-arm -s
58.PP 104.Pp
59The full documentation for 105Stop the gnunet-arm for the user:
60.B gnunet 106.Pp
61is maintained as a Texinfo manual. 107.Dl $ gnunet-arm -e
108.Sh SEE ALSO
109.Xr gnunet-config 1 ,
110.Xr gnunet-setup 1
111.sp
112The full documentation for gnunet is maintained as a Texinfo manual.
62If the 113If the
63.B info 114.Xr info 1
64and 115and gnunet programs are properly installed at your site, the command
65.B gnunet 116.Pp
66programs are properly installed at your site, the command 117.Dl info gnunet
67.IP 118.Pp
68.B info gnunet
69.PP
70should give you access to the complete handbook, 119should give you access to the complete handbook,
71.IP 120.Pp
72.B info gnunet-c-tutorial 121.Dl info gnunet-c-tutorial
73.PP 122.Pp
74will give you access to a tutorial for developers. 123will give you access to a tutorial for developers.
75.PP 124.sp
76Depending on your installation, this information is also 125Depending on your installation, this information is also available in
77available in 126.Xr gnunet 7 and
78\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 127.Xr gnunet-c-tutorial 7 .
128.\".Sh HISTORY
129.\".Sh AUTHORS
130.Sh BUGS
131Report bugs by using
132.Lk https://bugs.gnunet.org
133or by sending electronic mail to
134.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-ats.1 b/doc/man/gnunet-ats.1
index c098ed576..1e7b7731c 100644
--- a/doc/man/gnunet-ats.1
+++ b/doc/man/gnunet-ats.1
@@ -1,85 +1,110 @@
1.TH GNUNET\-ATS 1 "October 16, 2015" "GNUnet" 1.\" This file is part of GNUnet.
2.SH NAME 2.\" Copyright (C) 2001-2019 GNUnet e.V.
3gnunet\-ats \- display information about transport resource allocation 3.\"
4.SH SYNOPSIS 4.\" Permission is granted to copy, distribute and/or modify this document
5.B gnunet\-ats 5.\" under the terms of the GNU Free Documentation License, Version 1.3 or
6.RI [ options ] 6.\" any later version published by the Free Software Foundation; with no
7.br 7.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
8.SH DESCRIPTION 8.\" copy of the license is included in the file
9\fBgnunet\-ats\fP can be used to display information about the GNUnet's 9.\" ``FDL-1.3''.
10transport selection mechanism. It shows information about the 10.\"
11addresses and the assigned input and output bandwidth. 11.\" A copy of the license is also available from the Free Software
12.SH OPTIONS 12.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
13.B 13.\"
14.IP "\-a, \-\-aa" 14.\" Alternately, this document is also available under the General
15.\" Public License, version 3 or later, as published by the Free Software
16.\" Foundation. A copy of the license is included in the file
17.\" ``GPL3''.
18.\"
19.\" A copy of the license is also available from the Free Software
20.\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
21.\"
22.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
23.\"
24.Dd October 16, 2015
25.Dt GNUNET-ATS 1
26.Os
27.Sh NAME
28.Nm gnunet-ats
29.Nd
30display information about transport resource allocation
31.Sh SYNOPSIS
32.Nm
33.Op Fl a | \-all
34.Op Fl C Ar PEERID | Fl \-connect= Ns Ar PEERID
35.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
36.Op Fl h | \-help
37.Op Fl i Ar PEERID | Fl \-id= Ns Ar PEERID
38.Op Fl k Ar VALUE | Fl \-value= Ns Ar VALUE
39.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
40.Op Fl m | \-monitor
41.Op Fl n | \-numeric
42.Op Fl p Ar PREFERENCE | Fl \-preference= Ns Ar PREFERENCE
43.Op Fl q | \-quotas
44.Op Fl t Ar TYPE | Fl \-type= Ns Ar TYPE
45.Op Fl u | \-used
46.Op Fl V | \-verbose
47.Op Fl v | \-version
48.Sh DESCRIPTION
49.Nm
50can be used to display information about the GNUnet's transport selection mechanism.
51It shows information about the addresses and the assigned input and output bandwidth.
52.Sh OPTIONS
53.Bl -tag -width Ds
54.It Fl a | \-all
15List all addresses currently known to ats. 55List all addresses currently known to ats.
16.B 56.It Fl C Ar PEERID | Fl \-connect= Ns Ar PEERID
17.IP "\-c FILENAME, \-\-config=FILENAME" 57Ask ATS to suggest an address for PEERID to transport to establish a connection.
58Note that you can use the gnunet-transport commandline tool to force disconnects.
59.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
18Use the configuration file FILENAME. 60Use the configuration file FILENAME.
19.B 61.It Fl h | \-help
20.IP "\-C, \-\-connect=PEERID"
21Ask ATS to suggest an address for PEERID to transport to establish a
22connection.
23Note that you can use the gnunet\-transport command\-line tool to
24force disconnects.
25.B
26.IP "\-h, \-\-help"
27Print short help on options. 62Print short help on options.
28.B 63.It Fl i Ar PEERID | Fl \-id= Ns Ar PEERID
29.IP "\-i, \-\-id=PEERID" 64Print information for a specific peer identity only.
30Print information for a specific peer identity only 65.It Fl k Ar VALUE | Fl \-value= Ns Ar VALUE
31.B 66Value to set for when changing preference values.
32.IP "\-k, \-\-value=VALUE" 67.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
33Value to set for when changing preference values
34.B
35.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
36Use LOGLEVEL for logging. 68Use LOGLEVEL for logging.
37Valid values are DEBUG, INFO, WARNING and ERROR. 69Valid values are DEBUG, INFO, WARNING and ERROR.
38.B 70.It Fl m | \-monitor
39.IP "\-m, \-\-monitor" 71Monitor changes to the bandwidth assignments continuously.
40Monitor changes to the bandwidth assignments continuously 72.It Fl n | \-numeric
41.B 73Do not resolve IP addresses to hostnames.
42.IP "\-n, \-\-numeric" 74.It Fl p Ar PREFERENCE | Fl \-preference= Ns Ar PREFERENCE
43Do not resolve IP addresses to hostnames 75Set preference values, -i, -k and -t required.
44.B 76.It Fl q | \-quotas
45.IP "\-k, \-\-preference=E"
46Set preference values, \-i, \-k and \-t required
47.B
48.IP "\-q, \-\-quotas"
49Print quotas for all network types 77Print quotas for all network types
50.B 78.It Fl t Ar TYPE | Fl \-type= Ns Ar TYPE
51.IP "\-t, \-\-type=VALUE"
52Preference type to change: latency | bandwidth 79Preference type to change: latency | bandwidth
53.B 80.It Fl u | \-used
54.IP "\-u, \-\-used"
55Print addresses actively used only 81Print addresses actively used only
56.B 82.It Fl V | \-verbose
57.IP "\-V, \-\-verbose"
58Print verbose output (include ATS address properties) 83Print verbose output (include ATS address properties)
59.B 84.It v | \-version
60.IP "\-v, \-\-version"
61Print GNUnet version number. 85Print GNUnet version number.
62.SH BUGS 86.El
63Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 87.Sh SEE ALSO
64electronic mail to <bug\-gnunet@gnu.org> 88.Xr gnunet-transport 1
65.SH SEE ALSO 89.sp
66gnunet\-transport(1) 90The full documentation for gnunet is maintained as a Texinfo manual.
67The full documentation for 91If the
68.B gnunet 92.Xr info 1
69is maintained as a Texinfo manual. If the 93and gnunet programs are properly installed at your site, the command
70.B info 94.Pp
71and 95.Dl info gnunet
72.B gnunet 96.Pp
73programs are properly installed at your site, the command
74.IP
75.B info gnunet
76.PP
77should give you access to the complete handbook, 97should give you access to the complete handbook,
78.IP 98.Pp
79.B info gnunet-c-tutorial 99.Dl info gnunet-c-tutorial
80.PP 100.Pp
81will give you access to a tutorial for developers. 101will give you access to a tutorial for developers.
82.PP 102.Pp
83Depending on your installation, this information is also 103Depending on your installation, this information is also available in
84available in 104.Xr gnunet 7 and
85\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 105.Xr gnunet-c-tutorial 7 .
106.Sh BUGS
107Report bugs by using
108.Lk https://bugs.gnunet.org
109or by sending electronic mail to
110.Aq Mt bug-gnunet@gnu.org .
diff --git a/doc/man/gnunet-bcd.1 b/doc/man/gnunet-bcd.1
index 02b4397de..9b37a097b 100644
--- a/doc/man/gnunet-bcd.1
+++ b/doc/man/gnunet-bcd.1
@@ -13,19 +13,14 @@ installed. If it does not work for you, try installing the full
13TeXLive distribution first, for example using the package\-manager 13TeXLive distribution first, for example using the package\-manager
14apt: "apt-get install texlive-full". 14apt: "apt-get install texlive-full".
15.SH OPTIONS 15.SH OPTIONS
16.B
17.IP "\-p PORT, \-\-port=PORT" 16.IP "\-p PORT, \-\-port=PORT"
18Run the HTTP server on port PORT. 17Run the HTTP server on port PORT.
19.B
20.IP "\-c FILENAME, \-\-config=FILENAME" 18.IP "\-c FILENAME, \-\-config=FILENAME"
21Use the configuration file FILENAME. 19Use the configuration file FILENAME.
22.B
23.IP "\-h, \-\-help" 20.IP "\-h, \-\-help"
24Print short help on options. 21Print short help on options.
25.B
26.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 22.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
27Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 23Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
28.B
29.IP "\-v, \-\-version" 24.IP "\-v, \-\-version"
30Print GNUnet version number. 25Print GNUnet version number.
31.SH BUGS 26.SH BUGS
diff --git a/doc/man/gnunet-cadet.1 b/doc/man/gnunet-cadet.1
index 8404f085c..44d7fffca 100644
--- a/doc/man/gnunet-cadet.1
+++ b/doc/man/gnunet-cadet.1
@@ -21,42 +21,30 @@ For one\-to\-many communication \fBgnunet\-social\fP may be better
21suited, however. 21suited, however.
22 22
23.SH SPECIFIC OPTIONS 23.SH SPECIFIC OPTIONS
24.B
25.IP "\-C CONNECTION_ID, \-\-connection=CONNECTION_ID" 24.IP "\-C CONNECTION_ID, \-\-connection=CONNECTION_ID"
26Provide information about a particular connection. 25Provide information about a particular connection.
27.B
28.IP "\-d, \-\-dump" 26.IP "\-d, \-\-dump"
29Dump debug information to STDERR. 27Dump debug information to STDERR.
30.B
31.IP "\-e, \-\-echo" 28.IP "\-e, \-\-echo"
32Activate echo mode. 29Activate echo mode.
33.B
34.IP "\-o SHARED_SECRET, \-\-open-port=SHARED_SECRET" 30.IP "\-o SHARED_SECRET, \-\-open-port=SHARED_SECRET"
35Listen for connections using a shared secret among sender and recipient. 31Listen for connections using a shared secret among sender and recipient.
36.B
37.IP "\-p PEER_ID, \-\-peer=PEER_ID" 32.IP "\-p PEER_ID, \-\-peer=PEER_ID"
38Provide information about a patricular peer. 33Provide information about a patricular peer.
39.B
40.IP "\-P, \-\-peers" 34.IP "\-P, \-\-peers"
41Provide information about all peers. 35Provide information about all peers.
42.B
43.IP "\-T, \-\-tunnels" 36.IP "\-T, \-\-tunnels"
44Provide information about all tunnels. 37Provide information about all tunnels.
45 38
46.SH STANDARD OPTIONS 39.SH STANDARD OPTIONS
47.B
48.IP "\-c FILENAME, \-\-config=FILENAME" 40.IP "\-c FILENAME, \-\-config=FILENAME"
49Use the configuration file FILENAME. 41Use the configuration file FILENAME.
50.B
51.IP "\-h, \-\-help" 42.IP "\-h, \-\-help"
52Print short help on options. 43Print short help on options.
53.B
54.IP "\-l LOGFILE, \-\-logfile=LOGFILE" 44.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
55Configure logging to write logs to LOGFILE. 45Configure logging to write logs to LOGFILE.
56.B
57.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 46.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
58Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 47Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
59.B
60.IP "\-v, \-\-version" 48.IP "\-v, \-\-version"
61Print GNUnet version number. 49Print GNUnet version number.
62 50
diff --git a/doc/man/gnunet-config.1 b/doc/man/gnunet-config.1
index f1443283f..8eca8de10 100644
--- a/doc/man/gnunet-config.1
+++ b/doc/man/gnunet-config.1
@@ -7,38 +7,28 @@ gnunet\-config \- manipulate GNUnet configuration files
7.SH DESCRIPTION 7.SH DESCRIPTION
8\fBgnunet\-config\fP can be used to read or modify GNUnet configuration files. 8\fBgnunet\-config\fP can be used to read or modify GNUnet configuration files.
9.SH OPTIONS 9.SH OPTIONS
10.B
11.IP "\-f, \-\-filename" 10.IP "\-f, \-\-filename"
12When accessing a specific option using \-s and \-o, perform expansions as if the 11Try to perform expansions as if the option values represent filenames (will
13value represents a filename. 12also be applied even if the option is not really a filename).
14.B
15.IP "\-s SECTION, \-\-section=SECTION" 13.IP "\-s SECTION, \-\-section=SECTION"
16Which configuration section should be accessed or edited. Required option. 14Which configuration section should be accessed or edited. Required option.
17.B
18.IP "\-S, \-\-list\-sections" 15.IP "\-S, \-\-list\-sections"
19List available configuration sections for use with \-\-section. 16List available configuration sections for use with \-\-section.
20.B
21.IP "\-W, \-\-rewrite" 17.IP "\-W, \-\-rewrite"
22Consider differences to defaults only. 18Consider differences to defaults only.
23.B
24.IP "\-o OPTION, \-\-option=OPTION" 19.IP "\-o OPTION, \-\-option=OPTION"
25Which configuration option should be accessed or edited. Required to set a value. 20Which configuration option should be accessed or edited. Required to set a value.
26If not given, all values of a given section will be printed in the 21If not given, all values of a given section will be printed in the
27format "OPTION = VALUE". 22format "OPTION = VALUE".
28.B
29.IP "\-V VALUE, \-\-value VALUE" 23.IP "\-V VALUE, \-\-value VALUE"
30Configuration value to store in the given section under the given option. 24Configuration value to store in the given section under the given option.
31Must only be given together with \-s and \-o options. 25Must only be given together with \-s and \-o options.
32.B
33.IP "\-c FILENAME, \-\-config=FILENAME" 26.IP "\-c FILENAME, \-\-config=FILENAME"
34Use the configuration file FILENAME. 27Use the configuration file FILENAME.
35.B
36.IP "\-h, \-\-help" 28.IP "\-h, \-\-help"
37Print short help on options. 29Print short help on options.
38.B
39.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 30.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
40Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 31Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
41.B
42.IP "\-v, \-\-version" 32.IP "\-v, \-\-version"
43Print GNUnet version number. 33Print GNUnet version number.
44.SH BUGS 34.SH BUGS
diff --git a/doc/man/gnunet-conversation-test.1 b/doc/man/gnunet-conversation-test.1
index 5c08d3dab..477da5042 100644
--- a/doc/man/gnunet-conversation-test.1
+++ b/doc/man/gnunet-conversation-test.1
@@ -17,17 +17,13 @@ known to your computer).
17You can use gnunet\-conversation\-test without having a peer running 17You can use gnunet\-conversation\-test without having a peer running
18on your computer. 18on your computer.
19.SH OPTIONS 19.SH OPTIONS
20.B
21.IP "\-c FILENAME, \-\-config=FILENAME" 20.IP "\-c FILENAME, \-\-config=FILENAME"
22Use the configuration file FILENAME. 21Use the configuration file FILENAME.
23.B
24.IP "\-h, \-\-help" 22.IP "\-h, \-\-help"
25Print short help on options. 23Print short help on options.
26.B
27.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
28Use LOGLEVEL for logging. 25Use LOGLEVEL for logging.
29Valid values are DEBUG, INFO, WARNING and ERROR. 26Valid values are DEBUG, INFO, WARNING and ERROR.
30.B
31.IP "\-v, \-\-version" 27.IP "\-v, \-\-version"
32Print GNUnet version number. 28Print GNUnet version number.
33.SH BUGS 29.SH BUGS
diff --git a/doc/man/gnunet-conversation.1 b/doc/man/gnunet-conversation.1
index 5925871da..3815b3887 100644
--- a/doc/man/gnunet-conversation.1
+++ b/doc/man/gnunet-conversation.1
@@ -15,25 +15,19 @@ your zone in the GNU Name System (using gnunet\-namestore).
15gnunet\-conversation has an interactive help system via the /help 15gnunet\-conversation has an interactive help system via the /help
16command. 16command.
17.SH OPTIONS 17.SH OPTIONS
18.B
19.IP "\-c FILENAME, \-\-config=FILENAME" 18.IP "\-c FILENAME, \-\-config=FILENAME"
20Use the configuration file FILENAME. 19Use the configuration file FILENAME.
21.B
22.IP "\-e NAME, \-\-ego=NAME" 20.IP "\-e NAME, \-\-ego=NAME"
23Specifies the NAME of the ego to use (for caller ID). 21Specifies the NAME of the ego to use (for caller ID).
24.B
25.IP "\-h, \-\-help" 22.IP "\-h, \-\-help"
26Print short help on options. 23Print short help on options.
27.B
28.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
29Use LOGLEVEL for logging. 25Use LOGLEVEL for logging.
30Valid values are DEBUG, INFO, WARNING and ERROR. 26Valid values are DEBUG, INFO, WARNING and ERROR.
31.B
32.IP "\-p LINE, \-\-phone=LINE" 27.IP "\-p LINE, \-\-phone=LINE"
33Optional argument that can be used to specify the phone LINE to be used with 28Optional argument that can be used to specify the phone LINE to be used with
34the conversation service. 29the conversation service.
35The default LINE is zero, which should be fine for most users. 30The default LINE is zero, which should be fine for most users.
36.B
37.IP "\-v, \-\-version" 31.IP "\-v, \-\-version"
38Print GNUnet version number. 32Print GNUnet version number.
39.SH BUGS 33.SH BUGS
diff --git a/doc/man/gnunet-dns2gns.1 b/doc/man/gnunet-dns2gns.1
index 552df25b6..f61a0a8b3 100644
--- a/doc/man/gnunet-dns2gns.1
+++ b/doc/man/gnunet-dns2gns.1
@@ -1,60 +1,60 @@
1.TH GNUNET\-DNS2GNS 1 "March 5, 2018" "GNUnet" 1.Dd March 5, 2018
2 2.Dt GNUNET-DNS2GNS 1
3.SH NAME 3.Os
4gnunet\-dns2gns \- run a DNS-to-GNS proxy 4.Sh NAME
5 5.Nm gnunet-dns2gns
6.SH SYNOPSIS 6.Nd
7.B gnunet\-dns2gns 7run a DNS-to-GNS proxy
8.RI [ options ] 8.Sh SYNOPSIS
9.br 9.Nm
10 10.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
11.SH DESCRIPTION 11.Op Fl d Ar IP | Fl \-dns= Ns Ar IP
12Most users will not want to run an DNS to GNS proxy/gateway and thus will not 12.Op Fl h | \-help
13need this program. 13.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
14 14.Op Fl v | \-version
15\fBgnunet\-dns2gns\fP runs a DNS resolver which delegates requests GNS if 15.Sh DESCRIPTION
16the TLD matches one configured for GNS. All other requests are forwarded 16.Nm
17to DNS. This DNS proxy is useful for enabling non-personalized 17runs a DNS resolver which delegates requests GNS if the TLD matches one configured for GNS.
18GNS\-resolution to an entire network or to offer GNS\-resolution to DNS users. 18All other requests are forwarded to DNS.
19 19This DNS proxy is useful for enabling non-personalized GNS\-resolution to an entire network or to offer GNS\-resolution to DNS users.
20.SH OPTIONS 20.Bl -tag -width Ds
21.B 21.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
22.IP "\-c FILENAME, \-\-config=FILENAME"
23Use the configuration file FILENAME. 22Use the configuration file FILENAME.
24.B 23.It Fl d Ar IP | Fl \-dns= Ns Ar IP
25.IP "\-d IP, \-\-dns=IP"
26IP address of a recursive DNS resolver that should be used for non-GADS hostnames. 24IP address of a recursive DNS resolver that should be used for non-GADS hostnames.
27.B 25.It Fl h | \-help
28.IP "\-h, \-\-help"
29Print short help on options. 26Print short help on options.
30.B 27.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
31.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 28Use LOGLEVEL for logging.
32Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 29Valid values are DEBUG, INFO, WARNING and ERROR.
33.B 30.It Fl v | \-version
34.IP "\-v, \-\-version"
35Print GNUnet version number. 31Print GNUnet version number.
36 32.El
37.SH BUGS 33.Sh SEE ALSO
38Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 34.Xr gnunet-gns-fcfs 1 ,
39electronic mail to <bug\-gnunet@gnu.org> 35.Xr gnunet-gns 1 ,
40.SH SEE ALSO 36.Xr gnunet-identity 1
41gnunet\-gns\-fcfs(1), gnunet\-gns(1), gnunet\-identity(1) 37.sp
42The full documentation for 38The full documentation for gnunet is maintained as a Texinfo manual.
43.B gnunet 39If the
44is maintained as a Texinfo manual. If the 40.Xr info 1
45.B info 41and gnunet programs are properly installed at your site, the command
46and 42.Pp
47.B gnunet 43.Dl info gnunet
48programs are properly installed at your site, the command 44.Pp
49.IP
50.B info gnunet
51.PP
52should give you access to the complete handbook, 45should give you access to the complete handbook,
53.IP 46.Pp
54.B info gnunet-c-tutorial 47.Dl info gnunet-c-tutorial
55.PP 48.Pp
56will give you access to a tutorial for developers. 49will give you access to a tutorial for developers.
57.PP 50.sp
58Depending on your installation, this information is also 51Depending on your installation, this information is also available in
59available in 52.Xr gnunet 7 and
60\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 53.Xr gnunet-c-tutorial 7 .
54.\".Sh HISTORY
55.\".Sh AUTHORS
56.Sh BUGS
57Report bugs by using
58.Lk https://bugs.gnunet.org
59or by sending electronic mail to
60.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-ecc.1 b/doc/man/gnunet-ecc.1
index aedc0bc49..2aa7743b2 100644
--- a/doc/man/gnunet-ecc.1
+++ b/doc/man/gnunet-ecc.1
@@ -17,33 +17,25 @@ take a while. If the option \-p is given, the corresponding public
17key will be printed to the console. 17key will be printed to the console.
18 18
19.SH OPTIONS 19.SH OPTIONS
20.B
21.IP "\-g COUNT, \-\-generate-keys=COUNT" 20.IP "\-g COUNT, \-\-generate-keys=COUNT"
22Create COUNT public-private key pairs and write them to FILENAME. 21Create COUNT public-private key pairs and write them to FILENAME.
23Used for creating a file for testing. 22Used for creating a file for testing.
24.B
25.IP "\-p, \-\-print-public-key" 23.IP "\-p, \-\-print-public-key"
26Print the corresponding public key to stdout. This is the value used 24Print the corresponding public key to stdout. This is the value used
27for PKEY records in GNS. 25for PKEY records in GNS.
28.B
29.IP "\-P, \-\-print-private-key" 26.IP "\-P, \-\-print-private-key"
30Print the corresponding private key to stdout. This is the value used 27Print the corresponding private key to stdout. This is the value used
31for PKEY records in GNS. 28for PKEY records in GNS.
32.B
33.IP "\-x, \-\-print-hex" 29.IP "\-x, \-\-print-hex"
34Print the corresponding public key to stdout in HEX format. Useful 30Print the corresponding public key to stdout in HEX format. Useful
35for comparing to Ed25519 keys in X.509 tools. 31for comparing to Ed25519 keys in X.509 tools.
36.B
37.IP "\-c FILENAME, \-\-config=FILENAME" 32.IP "\-c FILENAME, \-\-config=FILENAME"
38Use the configuration file FILENAME. 33Use the configuration file FILENAME.
39.B
40.IP "\-h, \-\-help" 34.IP "\-h, \-\-help"
41Print short help on options. 35Print short help on options.
42.B
43.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 36.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
44Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 37Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
45ERROR. 38ERROR.
46.B
47.IP "\-v, \-\-version" 39.IP "\-v, \-\-version"
48Print GNUnet version number. 40Print GNUnet version number.
49 41
diff --git a/doc/man/gnunet-gns-proxy-setup-ca.1 b/doc/man/gnunet-gns-proxy-setup-ca.1
new file mode 100644
index 000000000..54df856eb
--- /dev/null
+++ b/doc/man/gnunet-gns-proxy-setup-ca.1
@@ -0,0 +1,64 @@
1.Dd March 6, 2019
2.Dt GNUNET-GNS-PROXY-SETUP-CA 1
3.Os
4.Sh NAME
5.Nm gnunet-gns-proxy-setup-ca
6.Nd generate an X509 certificate for gnunet-gns-proxy and install it
7.Sh SYNOPSIS
8.Nm
9.Op Fl c Ar FILE
10.\".Op Fl f Ar FILE
11.Op Fl h
12.Op Fl v
13.Op Fl V
14.Sh DESCRIPTION
15.Nm
16is a shell script to generate X509 certificates for your gnunet-gns-proxy and to install it for both GNUnet and your web browser.
17It currently supports Firefox and Chrome based browsers through the help of external helpers: certutil (nss) is used for the import into webbrowsers, openssl is used to generated the CA.
18.Bl -tag -width Ds
19.It Fl c Ar FILE
20Use the configuration file FILE.
21.\" .It Fl f
22.\" Perform expansions of the variables used in the config value of gns-proxy.
23.\" This will usually expand $GNUNET_DATA_HOME to represents its path.
24.It Fl h
25Print short help on options
26.It Fl v
27Print the version
28.It Fl V
29be verbose
30.El
31.Sh FILES
32.Pa gnunet.conf
33.Sh SEE ALSO
34.Xr gnunet-gns 1 ,
35.Xr gnunet-gns-proxy 1 ,
36.Xr gnunet.conf 5
37.sp
38The full documentation for gnunet is maintained as a Texinfo manual.
39If the
40.Xr info 1
41and gnunet programs are properly installed at your site, the command
42.Bd -literal -offset indent -compact
43 info gnunet
44.Ed
45should give you access to the complete handbook,
46.Bd -literal -offset indent -compact
47 info gnunet-c-tutorial
48.Ed
49will give you access to a tutorial for developers.
50.sp
51Depending on your installation, this information is also
52available in
53.Xr gnunet 7 and
54.Xr gnunet-c-tutorial 7 .
55.Sh HISTORY
56This man page first appeared in GNUnet 0.11.1.
57.Sh AUTHORS
58This page was written by
59.An ng0 Aq Mt ng0@gnunet.org .
60.Sh BUGS
61Report bugs by using
62.Lk https://bugs.gnunet.org
63or by sending electronic mail to
64.Aq Mt bug-gnunet@gnu.org .
diff --git a/doc/man/gnunet-gns-proxy.1 b/doc/man/gnunet-gns-proxy.1
index 6c12e2c09..603c5a28c 100644
--- a/doc/man/gnunet-gns-proxy.1
+++ b/doc/man/gnunet-gns-proxy.1
@@ -15,26 +15,20 @@ CA certificate has to be generated that is used by the proxy. Thus
15of this proxy or the \-\-authority switch is used to specify an 15of this proxy or the \-\-authority switch is used to specify an
16appropriate CA certificate that is already trusted by the browser. 16appropriate CA certificate that is already trusted by the browser.
17.SH OPTIONS 17.SH OPTIONS
18.B
19.IP "\-c FILENAME, \-\-config=FILENAME" 18.IP "\-c FILENAME, \-\-config=FILENAME"
20Use the configuration file FILENAME. 19Use the configuration file FILENAME.
21.B
22.IP "\-a AUTHORITY, \-\-authority=AUTHORITY" 20.IP "\-a AUTHORITY, \-\-authority=AUTHORITY"
23Path to a PEM CA file that contains the certificate and private key of 21Path to a PEM CA file that contains the certificate and private key of
24the CA to use to assert the validity of GNS names. The default port is 22the CA to use to assert the validity of GNS names. The default port is
25specified in the configuration file for the gns service under 23specified in the configuration file for the gns service under
26"[gns-proxy]" PROXY_CACERT. 24"[gns-proxy]" PROXY_CACERT.
27.B
28.IP "\-p PORT, \-\-port=PORT" 25.IP "\-p PORT, \-\-port=PORT"
29The port this proxy should listen on. Default is 7777. 26The port this proxy should listen on. Default is 7777.
30.B
31.IP "\-h, \-\-help" 27.IP "\-h, \-\-help"
32Print short help on options. 28Print short help on options.
33.B
34.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 29.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
35Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 30Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
36ERROR. 31ERROR.
37.B
38.IP "\-v, \-\-version" 32.IP "\-v, \-\-version"
39Print GNUnet version number. 33Print GNUnet version number.
40.SH BUGS 34.SH BUGS
diff --git a/doc/man/gnunet-gns.1 b/doc/man/gnunet-gns.1
index 597297629..750c72d95 100644
--- a/doc/man/gnunet-gns.1
+++ b/doc/man/gnunet-gns.1
@@ -8,33 +8,26 @@ gnunet\-gns \- Access to GNU Name System
8\fBgnunet\-gns\fP can be used to lookup and process GNU Name Service 8\fBgnunet\-gns\fP can be used to lookup and process GNU Name Service
9names. 9names.
10.SH OPTIONS 10.SH OPTIONS
11.B
12.IP "\-c FILENAME, \-\-config=FILENAME" 11.IP "\-c FILENAME, \-\-config=FILENAME"
13Use the configuration file FILENAME. 12Use the configuration file FILENAME.
14.B
15.IP "\-r, \-\-raw" 13.IP "\-r, \-\-raw"
16No unneeded output. 14No unneeded output.
17This is a quiet mode where only important information is displayed. 15This is a quiet mode where only important information is displayed.
18For example a lookup for an IP address will only yield the IP address, 16For example a lookup for an IP address will only yield the IP address,
19no descriptive text. 17no descriptive text.
20.B
21.IP "\-h, \-\-help" 18.IP "\-h, \-\-help"
22Print short help on options. 19Print short help on options.
23.B
24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 20.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
25Use LOGLEVEL for logging. 21Use LOGLEVEL for logging.
26Valid values are DEBUG, INFO, WARNING and ERROR. 22Valid values are DEBUG, INFO, WARNING and ERROR.
27.B
28.IP "\-u NAME, \-\-lookup=NAME" 23.IP "\-u NAME, \-\-lookup=NAME"
29Name to lookup. 24Name to lookup.
30Resolve the specified name using the GNU Name System. 25Resolve the specified name using the GNU Name System.
31.B
32.IP "\-t TYPE, \-\-type=TYPE" 26.IP "\-t TYPE, \-\-type=TYPE"
33Resource Record Type (TYPE) to look for. 27Resource Record Type (TYPE) to look for.
34Supported TYPE's are: A, AAAA, CNAME, NS, PKEY, PSEU, TLSA, SRV, SOA, 28Supported TYPE's are: A, AAAA, CNAME, NS, PKEY, PSEU, TLSA, SRV, SOA,
35MX, LEHO, VPN, REV, PTR, TXT. 29MX, LEHO, VPN, REV, PTR, TXT.
36Defaults to "A". 30Defaults to "A".
37.B
38.IP "\-v, \-\-version" 31.IP "\-v, \-\-version"
39Print GNUnet version number. 32Print GNUnet version number.
40.SH RETURN VALUE 33.SH RETURN VALUE
diff --git a/doc/man/gnunet-namecache.1 b/doc/man/gnunet-namecache.1
index 78acb017b..06946e387 100644
--- a/doc/man/gnunet-namecache.1
+++ b/doc/man/gnunet-namecache.1
@@ -13,23 +13,17 @@ gnunet\-namecache \- inspect namecache
13namecache. 13namecache.
14 14
15.SH OPTIONS 15.SH OPTIONS
16.B
17.IP "\-c FILENAME, \-\-config=FILENAME" 16.IP "\-c FILENAME, \-\-config=FILENAME"
18Use the configuration file FILENAME. 17Use the configuration file FILENAME.
19.B
20.IP "\-h, \-\-help" 18.IP "\-h, \-\-help"
21Print short help on options. 19Print short help on options.
22.B
23.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 20.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
24Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 21Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
25ERROR. 22ERROR.
26.B
27.IP "\-n NAME, \-\-name=NAME" 23.IP "\-n NAME, \-\-name=NAME"
28Name (label) of the record to display (mandatory option) 24Name (label) of the record to display (mandatory option)
29.B
30.IP "\-v, \-\-version" 25.IP "\-v, \-\-version"
31Print GNUnet version number. 26Print GNUnet version number.
32.B
33.IP "\-z PKEY, \-\-zone=PKEY" 27.IP "\-z PKEY, \-\-zone=PKEY"
34Specifies the public key of the zone to inspect (mandatory option) 28Specifies the public key of the zone to inspect (mandatory option)
35 29
diff --git a/doc/man/gnunet-namestore-fcfsd.1 b/doc/man/gnunet-namestore-fcfsd.1
index a6c9d2b32..c1eca224f 100644
--- a/doc/man/gnunet-namestore-fcfsd.1
+++ b/doc/man/gnunet-namestore-fcfsd.1
@@ -27,20 +27,15 @@ pseudonym (using "gnunet\-identity \-C NAME"), and use it with the
27"-z" option. After that, you can start the FCFSD service (possibly using 27"-z" option. After that, you can start the FCFSD service (possibly using
28gnunet\-arm). 28gnunet\-arm).
29.SH OPTIONS 29.SH OPTIONS
30.B
31.IP "\-c FILENAME, \-\-config=FILENAME" 30.IP "\-c FILENAME, \-\-config=FILENAME"
32Use the configuration file FILENAME. 31Use the configuration file FILENAME.
33.B
34.IP "\-h, \-\-help" 32.IP "\-h, \-\-help"
35Print short help on options. 33Print short help on options.
36.B
37.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 34.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
38Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 35Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
39ERROR. 36ERROR.
40.B
41.IP "\-v, \-\-version" 37.IP "\-v, \-\-version"
42Print GNUnet version number. 38Print GNUnet version number.
43.B
44.IP "\-z EGO, \-\-zone=EGO" 39.IP "\-z EGO, \-\-zone=EGO"
45Specifies for which EGO should FCFSD manage the zone. 40Specifies for which EGO should FCFSD manage the zone.
46.SH BUGS 41.SH BUGS
diff --git a/doc/man/gnunet-namestore.1 b/doc/man/gnunet-namestore.1
index 7517a4f5e..6a824cc47 100644
--- a/doc/man/gnunet-namestore.1
+++ b/doc/man/gnunet-namestore.1
@@ -12,13 +12,10 @@ gnunet\-namestore \- manipulate GNU Name System (GNS) zone data
12\fBgnunet\-namestore\fP can be used to manipulate records in a GNS zone. 12\fBgnunet\-namestore\fP can be used to manipulate records in a GNS zone.
13 13
14.SH OPTIONS 14.SH OPTIONS
15.B
16.IP "\-a, \-\-add" 15.IP "\-a, \-\-add"
17Desired operation is adding a record 16Desired operation is adding a record
18.B
19.IP "\-c FILENAME, \-\-config=FILENAME" 17.IP "\-c FILENAME, \-\-config=FILENAME"
20Use the configuration file FILENAME. 18Use the configuration file FILENAME.
21.B
22.IP "\-d, \-\-delete" 19.IP "\-d, \-\-delete"
23Desired operation is deleting records under the given name that match 20Desired operation is deleting records under the given name that match
24the specified type (\-t) and value (\-V). If type or value are not 21the specified type (\-t) and value (\-V). If type or value are not
@@ -26,41 +23,31 @@ specified, it means that all types (or values) should be assumed to
26match (and possibly multiple or all values under the given label will 23match (and possibly multiple or all values under the given label will
27be deleted). Specifying a label (\-n) is mandatory. Note that 24be deleted). Specifying a label (\-n) is mandatory. Note that
28matching by expiration time or flags is (currently) not supported. 25matching by expiration time or flags is (currently) not supported.
29.B
30.IP "\-D, \-\-display" 26.IP "\-D, \-\-display"
31Desired operation is listing of matching records 27Desired operation is listing of matching records
32.B
33.IP "\-e TIME, \-\-expiration=TIME" 28.IP "\-e TIME, \-\-expiration=TIME"
34Specifies expiration time of record to add; format is relative time, 29Specifies 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 30i.e "1 h" or "7 d 30 m". Supported units are "ms", "s", "min" or
36"minutes", "h" (hours), "d" (days) and "a" (years). 31"minutes", "h" (hours), "d" (days) and "a" (years).
37.B
38.IP "\-h, \-\-help" 32.IP "\-h, \-\-help"
39Print short help on options. 33Print short help on options.
40.B
41.IP "\-i NICKNAME, \-\-nick=NICKNAME" 34.IP "\-i NICKNAME, \-\-nick=NICKNAME"
42Set the desired NICKNAME for the zone. The nickname will be included 35Set the desired NICKNAME for the zone. The nickname will be included
43in all (public) records and used as the suggested name for this zone. 36in all (public) records and used as the suggested name for this zone.
44.B
45.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 37.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
46Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 38Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
47ERROR. 39ERROR.
48.B
49.IP "\-m, \-\-monitor" 40.IP "\-m, \-\-monitor"
50Monitor changes to the zone on an ongoing basis (in contrast to \-D, 41Monitor changes to the zone on an ongoing basis (in contrast to \-D,
51which merely displays the current records) 42which merely displays the current records)
52.B
53.IP "\-n NAME, \-\-name=NAME" 43.IP "\-n NAME, \-\-name=NAME"
54Label or name of the record to add/delete/display 44Label or name of the record to add/delete/display
55.B
56.IP "\-p, \-\-public" 45.IP "\-p, \-\-public"
57Create a record that is public (shared with other users that know the 46Create a record that is public (shared with other users that know the
58label) 47label)
59.B
60.IP "\-r PKEY, \-\-reverse=PKEY" 48.IP "\-r PKEY, \-\-reverse=PKEY"
61Determine our GNS name for the given public key (reverse lookup of the 49Determine our GNS name for the given public key (reverse lookup of the
62PKEY) in the given zone. 50PKEY) in the given zone.
63.B
64.IP "\-R RECORDLINE, \-\-replace=RECORDLINE" 51.IP "\-R RECORDLINE, \-\-replace=RECORDLINE"
65Sets record set to values given in RECORDLINE. This option can be specified multiple 52Sets record set to values given in RECORDLINE. This option can be specified multiple
66times to provide multiple records for the record set. Existing records under the 53times to provide multiple records for the record set. Existing records under the
@@ -69,29 +56,23 @@ same label will be deleted. The format for the RECORDLINE is
69be given explicitly, seconds is always implied), TYPE is the 56be given explicitly, seconds is always implied), TYPE is the
70DNS/GNS record type, FLAGS is "(N)ORMAL", "(S)HADOW" or "(P)UBLIC". The VALUE 57DNS/GNS record type, FLAGS is "(N)ORMAL", "(S)HADOW" or "(P)UBLIC". The VALUE
71follows the usual human-readable value format(s) of DNS/GNS. 58follows the usual human-readable value format(s) of DNS/GNS.
72.B
73.IP "\-s, \-\-shadow" 59.IP "\-s, \-\-shadow"
74Create a record that is a shadow record. Shadow records are only used 60Create a record that is a shadow record. Shadow records are only used
75once all other records of the same type under the same label have 61once all other records of the same type under the same label have
76expired. 62expired.
77.B
78.IP "\-t TYPE, \-\-type=TYPE" 63.IP "\-t TYPE, \-\-type=TYPE"
79Type of the record to add/delete/display (i.e. "A", "AAAA", "NS", 64Type of the record to add/delete/display (i.e. "A", "AAAA", "NS",
80"PKEY", "MX" etc.) 65"PKEY", "MX" etc.)
81.B
82.IP "\-u URI, \-\-uri=URI" 66.IP "\-u URI, \-\-uri=URI"
83Add PKEY record from gnunet://gns/-URI to our zone; the record type is 67Add PKEY record from gnunet://gns/-URI to our zone; the record type is
84always PKEY, if no expiration is given FOREVER is used 68always PKEY, if no expiration is given FOREVER is used
85.B
86.IP "\-v, \-\-version" 69.IP "\-v, \-\-version"
87Print GNUnet version number. 70Print GNUnet version number.
88.B
89.IP "\-V VALUE, \-\-value=VALUE" 71.IP "\-V VALUE, \-\-value=VALUE"
90Value to store or remove from the GNS zone. Specific format depends 72Value to store or remove from the GNS zone. Specific format depends
91on the record type. A records expect a dotted decimal IPv4 address, 73on the record type. A records expect a dotted decimal IPv4 address,
92AAAA records an IPv6 address, PKEY a public key in GNUnet's printable 74AAAA records an IPv6 address, PKEY a public key in GNUnet's printable
93format, and CNAME and NS records should be a domain name. 75format, and CNAME and NS records should be a domain name.
94.B
95.IP "\-z EGO, \-\-zone=EGO" 76.IP "\-z EGO, \-\-zone=EGO"
96Specifies the name of the ego controlling the private key for the zone 77Specifies the name of the ego controlling the private key for the zone
97(mandatory option) 78(mandatory option)
diff --git a/doc/man/gnunet-nat-auto.1 b/doc/man/gnunet-nat-auto.1
index 8514a5c99..efd4b5df1 100644
--- a/doc/man/gnunet-nat-auto.1
+++ b/doc/man/gnunet-nat-auto.1
@@ -8,22 +8,17 @@ gnunet\-nat\-auto \- autoconfigure and test NAT traversal
8This tool allows testing various NAT traversal functions, as well 8This tool allows testing various NAT traversal functions, as well
9as attempting auto\-configuration. 9as attempting auto\-configuration.
10.SH OPTIONS 10.SH OPTIONS
11.B
12.IP "\-a, \-\-auto" 11.IP "\-a, \-\-auto"
13Attempt auto\-configuration for NAT traversal. 12Attempt auto\-configuration for NAT traversal.
14.B
15.IP "\-c FILENAME, \-\-config=FILENAME" 13.IP "\-c FILENAME, \-\-config=FILENAME"
16Use the configuration file FILENAME. 14Use the configuration file FILENAME.
17.B
18.IP "\-S NAME, \-\-section=NAME" 15.IP "\-S NAME, \-\-section=NAME"
19Name of the configuration section with details about the configuration 16Name of the configuration section with details about the configuration
20to test. For example "transport-tcp". 17to test. For example "transport-tcp".
21.IP "\-t, \-\-tcp" 18.IP "\-t, \-\-tcp"
22Use TCP. 19Use TCP.
23.B
24.IP "\-u, \-\-udp" 20.IP "\-u, \-\-udp"
25Use UDP. 21Use UDP.
26.B
27.IP "\-w, \-\-write" 22.IP "\-w, \-\-write"
28Write configuration to configuration file, useful in combination with 23Write configuration to configuration file, useful in combination with
29autoconfiguration (\-a). 24autoconfiguration (\-a).
diff --git a/doc/man/gnunet-nat-server.1 b/doc/man/gnunet-nat-server.1
index f31e69b26..8cb995f7c 100644
--- a/doc/man/gnunet-nat-server.1
+++ b/doc/man/gnunet-nat-server.1
@@ -41,7 +41,6 @@ gnunet\-nat\-server is run on should be specified in the NATSERVER
41option in the [setup] section of the configuration file of hosts that 41option in the [setup] section of the configuration file of hosts that
42are supposed to autoconfigure with this server. 42are supposed to autoconfigure with this server.
43.SH OPTIONS 43.SH OPTIONS
44.B
45.IP "\-c FILENAME, \-\-config=FILENAME" 44.IP "\-c FILENAME, \-\-config=FILENAME"
46Use the configuration file FILENAME. 45Use the configuration file FILENAME.
47.SH BUGS 46.SH BUGS
diff --git a/doc/man/gnunet-nat.1 b/doc/man/gnunet-nat.1
index 4a6a56e97..fe9272ea5 100644
--- a/doc/man/gnunet-nat.1
+++ b/doc/man/gnunet-nat.1
@@ -8,38 +8,28 @@ gnunet\-nat \- interact with the NAT service
8This tool allows testing various NAT traversal functions, as well as 8This tool allows testing various NAT traversal functions, as well as
9attempting auto\-configuration. 9attempting auto\-configuration.
10.SH OPTIONS 10.SH OPTIONS
11.B
12.IP "\-b ADDRESS, \-\-bind=ADDRESS" 11.IP "\-b ADDRESS, \-\-bind=ADDRESS"
13Assume that the service is (locally) bound to ADDRESS. 12Assume that the service is (locally) bound to ADDRESS.
14.B
15.IP "\-c FILENAME, \-\-config=FILENAME" 13.IP "\-c FILENAME, \-\-config=FILENAME"
16Use the configuration file FILENAME. 14Use the configuration file FILENAME.
17.B
18.IP "\-e ADDRESS, \-\-external=ADDRESS" 15.IP "\-e ADDRESS, \-\-external=ADDRESS"
19Assume that ADDRESS is the globally visible address of the peer. 16Assume that ADDRESS is the globally visible address of the peer.
20.B
21.IP "\-i ADDRESS, \-\-in=ADDRESS" 17.IP "\-i ADDRESS, \-\-in=ADDRESS"
22Assuming we are listening at ADDRESS for connection reversal requests. 18Assuming we are listening at ADDRESS for connection reversal requests.
23.B
24.IP "\-r ADDRESS, \-\-remote=ADDRESS" 19.IP "\-r ADDRESS, \-\-remote=ADDRESS"
25Ask the peer at ADDRESS for connection reversal, using the local 20Ask the peer at ADDRESS for connection reversal, using the local
26address for the target address of the reversal. 21address for the target address of the reversal.
27.B
28.IP "\-S NAME, \-\-section=NAME" 22.IP "\-S NAME, \-\-section=NAME"
29Name of section in configuration file to use for additional options. 23Name of section in configuration file to use for additional options.
30.B
31.IP "\-s, \-\-stun" 24.IP "\-s, \-\-stun"
32Enable processing of STUN requests. 25Enable processing of STUN requests.
33Will try to read UDP packets from the bind address and handle the 26Will try to read UDP packets from the bind address and handle the
34packets if they are STUN packets. 27packets if they are STUN packets.
35Will only work with UDP. 28Will only work with UDP.
36.B
37.IP "\-t, \-\-tcp" 29.IP "\-t, \-\-tcp"
38Use TCP. 30Use TCP.
39.B
40.IP "\-u, \-\-udp" 31.IP "\-u, \-\-udp"
41Use UDP. 32Use UDP.
42.B
43.IP "\-W, \-\-watch" 33.IP "\-W, \-\-watch"
44Watch for connection reversal requests. 34Watch for connection reversal requests.
45.SH EXAMPLES 35.SH EXAMPLES
diff --git a/doc/man/gnunet-nse.1 b/doc/man/gnunet-nse.1
new file mode 100644
index 000000000..151ba4957
--- /dev/null
+++ b/doc/man/gnunet-nse.1
@@ -0,0 +1,65 @@
1.Dd March 6, 2019
2.Dt GNUNET-NSE 1
3.Os
4.Sh NAME
5.Nm gnunet-nse
6.Nd show network size estimates from NSE service
7.Sh SYNOPSIS
8.Nm
9.Op Fl c Ar file | Fl -config Ns = Ns file
10.Op Fl h | \-help
11.Op Fl l file | Fl -logfile Ns = Ns file
12.Op Fl L Ar loglevel | Fl -loglevel Ns = Ns loglevel
13.Op Fl v | \-version
14.Sh DESCRIPTION
15.Nm
16is a command line tool to show network size estimates from the NSE service of GNUnet.
17.Bl -tag -width Ds
18.It Fl c Ar file | Fl -config Ns = Ns file
19Use the configuration file FILENAME.
20.It Fl h | \-help
21Print short help on options.
22.It Fl l file | Fl -logfile Ns = Ns file
23Configure logging to write logs to LOGFILE.
24.It Fl L Ar loglevel | Fl -loglevel Ns = Ns loglevel
25Use LOGLEVEL for logging.
26Valid values are DEBUG, INFO, WARNING and ERROR.
27.It Fl v | \-version
28Print GNUnet version number.
29.El
30.Sh FILES
31.Pa gnunet.conf
32Configuration file for gnunet.
33.Sh SEE ALSO
34.Xr gnunet.conf 5
35.sp
36The full documentation for gnunet is maintained as a Texinfo manual.
37If the
38.Xr info 1
39gnunet programs are properly installed at your site, the command
40.Bd -literal -offset indent -compact
41 info gnunet
42.Ed
43should give you access to the complete handbook,
44.Bd -literal -offset indent -compact
45 info gnunet-c-tutorial
46.Ed
47will give you access to a tutorial for developers.
48.sp
49Depending on your installation, this information is also
50available in
51.Xr gnunet 7 and
52.Xr gnunet-c-tutorial 7 .
53.Sh HISTORY
54This man page first appeared in GNUnet 0.11.1.
55.Sh AUTHORS
56This page was originally written by
57.An Bertrand Marc Aq Mt bmarc@debian.org
58for Debian's gnunet package (man page date: 2014).
59Further edits and conversion to mdoc were done by
60.An ng0 Aq Mt ng0@gnunet.org .
61.Sh BUGS
62Report bugs by using
63.Lk https://bugs.gnunet.org
64or by sending electronic mail to
65.Aq Mt bug-gnunet@gnu.org .
diff --git a/doc/man/gnunet-peerinfo.1 b/doc/man/gnunet-peerinfo.1
index bd37fa635..88094fa10 100644
--- a/doc/man/gnunet-peerinfo.1
+++ b/doc/man/gnunet-peerinfo.1
@@ -8,39 +8,28 @@ gnunet\-peerinfo \- Display information about other peers.
8.PP 8.PP
9\fBgnunet\-peerinfo\fP display the known addresses and trust of known peers. 9\fBgnunet\-peerinfo\fP display the known addresses and trust of known peers.
10.SH OPTIONS 10.SH OPTIONS
11.B
12.IP "\-c FILENAME, \-\-config=FILENAME" 11.IP "\-c FILENAME, \-\-config=FILENAME"
13Load config file (default: ~/.config/gnunet.conf) 12Load config file (default: ~/.config/gnunet.conf)
14.B
15.IP "\-g, \-\-get\-hello" 13.IP "\-g, \-\-get\-hello"
16Output HELLO uri(s) 14Output HELLO uri(s)
17.B
18.IP "\-h, \-\-help" 15.IP "\-h, \-\-help"
19Print help page 16Print help page
20.B
21.IP "\-i, \-\-info" 17.IP "\-i, \-\-info"
22List all known peers (and their addresses) 18List all known peers (and their addresses)
23.B
24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 19.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
25Set the loglevel 20Set the loglevel
26.B
27.IP "\-l LOGFILE, \-\-logfile=LOGFILE" 21.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
28Log messages to LOGFILE 22Log messages to LOGFILE
29.B
30.IP "\-n, \-\-numeric" 23.IP "\-n, \-\-numeric"
31Disable resolution of IPs to hostnames 24Disable resolution of IPs to hostnames
32.B
33.IP "\-p, \-\-put\-hello=HELLO" 25.IP "\-p, \-\-put\-hello=HELLO"
34Add given HELLO uri to the database 26Add given HELLO uri to the database
35.B
36.IP "\-q, \-\-quiet" 27.IP "\-q, \-\-quiet"
37Do not print anything but the peer identities 28Do not print anything but the peer identities
38.B
39.IP "\-s, \-\-self" 29.IP "\-s, \-\-self"
40Print only our own identity (together with "\-q", this is the exact 30Print only our own identity (together with "\-q", this is the exact
41line that other peers would have to put in to their friends file in 31line that other peers would have to put in to their friends file in
42order to consider this peer one of their friends in F2F mode). 32order to consider this peer one of their friends in F2F mode).
43.B
44.IP "\-v, \-\-version" 33.IP "\-v, \-\-version"
45Print the version number 34Print the version number
46.SH BUGS 35.SH BUGS
diff --git a/doc/man/gnunet-publish.1 b/doc/man/gnunet-publish.1
index b07208732..5f774580b 100644
--- a/doc/man/gnunet-publish.1
+++ b/doc/man/gnunet-publish.1
@@ -112,9 +112,9 @@ default is ~/.config/gnunet.conf).
112Disable use of GNU libextractor for finding additional keywords and 112Disable use of GNU libextractor for finding additional keywords and
113metadata. 113metadata.
114.TP 114.TP
115\fB\-d\fR, \fB\-\-disable\-creation\-time\fR 115\fB\-E\fR, \fB\-\-enable\-creation\-time\fR
116Disable use of creation time timestamp in metadata. 116Enable use of creation time timestamp in metadata.
117Useful to make created directories deterministic and to avoid leaking 117Setting this information will leak
118information about the time at which a file was made available. 118information about the time at which a file was made available.
119.TP 119.TP
120\fB\-e\fR, \fB\-\-extract\fR 120\fB\-e\fR, \fB\-\-extract\fR
diff --git a/doc/man/gnunet-qr.1 b/doc/man/gnunet-qr.1
index 0145a3523..2aabe6b22 100644
--- a/doc/man/gnunet-qr.1
+++ b/doc/man/gnunet-qr.1
@@ -1,49 +1,53 @@
1.TH GNUNET\-QR 1 "September 13, 2014" "GNUnet" 1.Dd September 13, 2014
2.SH NAME 2.Dt GNUNET-QR 1
3gnunet\-qr \- Scan a QR code using a video device and import. 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-qr 5.Nm gnunet-qr
6.RI [ options ] 6.Nd
7.br 7scan a QR code using a video device and import
8.SH DESCRIPTION 8.Sh SYNOPSIS
9\fBgnunet\-qr\fP is a command line tool to scan a QR code using a 9.Nm
10video device and import. 10.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
11.SH OPTIONS 11.Op Fl d Ar DEVICE | Fl \-device= Ns Ar DEVICE
12.B 12.Op Fl h | \-help
13.IP "\-c FILENAME, \-\-config=FILENAME" 13.Op Fl s | \-silent
14.Op Fl v | \-verbose
15.Sh DESCRIPTION
16.Nm
17is a command line tool to scan a QR code using a video device and import.
18.Bl -tag -width Ds
19.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
14Use the configuration file FILENAME. 20Use the configuration file FILENAME.
15.B 21.It Fl d Ar DEVICE | Fl \-device= Ns Ar DEVICE
16.IP "\-d DEVICE, \-\-device=DEVICE"
17Use device DEVICE. 22Use device DEVICE.
18.B 23.It Fl h | \-help
19.IP "\-h, \-\-help"
20Print short help on options. 24Print short help on options.
21.B 25.It Fl s | \-silent
22.IP "\-s, \-\-silent"
23Do not show preview windows. 26Do not show preview windows.
24.B 27.It Fl v | \-verbose
25.IP "\-v, \-\-verbose"
26Be verbose. 28Be verbose.
27.SH BUGS 29.El
28Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 30.Sh SEE ALSO
29electronic mail to <gnunet\-developers@gnu.org> 31The full documentation for gnunet is maintained as a Texinfo manual.
30.SH SEE ALSO 32If the
31The full documentation for 33.Xr info 1
32.B gnunet 34and gnunet programs are properly installed at your site, the command
33is maintained as a Texinfo manual. If the 35.Pp
34.B info 36.Dl info gnunet
35and 37.Pp
36.B gnunet
37programs are properly installed at your site, the command
38.IP
39.B info gnunet
40.PP
41should give you access to the complete handbook, 38should give you access to the complete handbook,
42.IP 39.Pp
43.B info gnunet-c-tutorial 40.Dl info gnunet-c-tutorial
44.PP 41.Pp
45will give you access to a tutorial for developers. 42will give you access to a tutorial for developers.
46.PP 43.sp
47Depending on your installation, this information is also 44Depending on your installation, this information is also available in
48available in 45.Xr gnunet 7 and
49\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 46.Xr gnunet-c-tutorial 7 .
47.\".Sh HISTORY
48.\".Sh AUTHORS
49.Sh BUGS
50Report bugs by using
51.Lk https://bugs.gnunet.org
52or by sending electronic mail to
53.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-resolver.1 b/doc/man/gnunet-resolver.1
index 66f1ba9a8..494131d01 100644
--- a/doc/man/gnunet-resolver.1
+++ b/doc/man/gnunet-resolver.1
@@ -7,23 +7,17 @@ gnunet\-resolver \- build-in GNUnet stub resolver
7.SH DESCRIPTION 7.SH DESCRIPTION
8\fBgnunet\-resolver\fP uses build-in GNUnet stub resolver. 8\fBgnunet\-resolver\fP uses build-in GNUnet stub resolver.
9.SH OPTIONS 9.SH OPTIONS
10.B
11.IP "\-c FILENAME, \-\-config=FILENAME" 10.IP "\-c FILENAME, \-\-config=FILENAME"
12Use the configuration file FILENAME. 11Use the configuration file FILENAME.
13.B
14.IP "\-h, \-\-help" 12.IP "\-h, \-\-help"
15Print short help on options. 13Print short help on options.
16.B
17.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 14.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
18Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 15Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
19ERROR. 16ERROR.
20.B
21.IP "\-l LOGFILE, \-\-logfile=LOGFILE" 17.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
22Configure logging to write logs to LOGFILE. 18Configure logging to write logs to LOGFILE.
23.B
24.IP "\-r, \-\-reverse" 19.IP "\-r, \-\-reverse"
25Perform a reverse lookup. 20Perform a reverse lookup.
26.B
27.IP "\-v, \-\-version" 21.IP "\-v, \-\-version"
28Print GNUnet version number. 22Print GNUnet version number.
29.SH BUGS 23.SH BUGS
diff --git a/doc/man/gnunet-revocation.1 b/doc/man/gnunet-revocation.1
index f21f82612..6fae373e7 100644
--- a/doc/man/gnunet-revocation.1
+++ b/doc/man/gnunet-revocation.1
@@ -28,19 +28,15 @@ expensive. Depending on your CPU, the calculation can take days or
28weeks. 28weeks.
29 29
30.SH OPTIONS 30.SH OPTIONS
31.B
32.IP "\-t KEY, \-\-test=KEY" 31.IP "\-t KEY, \-\-test=KEY"
33Check if the given KEY (ASCII\-encoded public key required) has been 32Check if the given KEY (ASCII\-encoded public key required) has been
34revoked. 33revoked.
35.B
36.IP "\-R NAME, \-\-revoke=NAME" 34.IP "\-R NAME, \-\-revoke=NAME"
37Calculate or perform revocation for the ego with the given NAME. 35Calculate or perform revocation for the ego with the given NAME.
38.B
39.IP "\-p, \-\-perform" 36.IP "\-p, \-\-perform"
40Actually perform the revocation as soon as possible (do not just 37Actually perform the revocation as soon as possible (do not just
41generate a revocation certificate, use it). Must be supplied to 38generate a revocation certificate, use it). Must be supplied to
42actually perform the revocation. 39actually perform the revocation.
43.B
44.IP "\-f NAME, \-\-filename=NAME" 40.IP "\-f NAME, \-\-filename=NAME"
45Use NAME as the name of the file that is to contain the revocation 41Use NAME as the name of the file that is to contain the revocation
46certificate. Intermediate computation results will be stored here, as 42certificate. Intermediate computation results will be stored here, as
@@ -51,17 +47,13 @@ be performed instantly. If the given file contains anything (a valid
51certificate, with or without the completed proof-of-work) there is no 47certificate, 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 48need to supply the "\-R" option or to still have the private key of
53the ego to perform the revocation. 49the ego to perform the revocation.
54.B
55.IP "\-c FILENAME, \-\-config=FILENAME" 50.IP "\-c FILENAME, \-\-config=FILENAME"
56Use the configuration file FILENAME. 51Use the configuration file FILENAME.
57.B
58.IP "\-h, \-\-help" 52.IP "\-h, \-\-help"
59Print short help on options. 53Print short help on options.
60.B
61.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 54.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
62Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and 55Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
63ERROR. 56ERROR.
64.B
65.IP "\-v, \-\-version" 57.IP "\-v, \-\-version"
66Print GNUnet version number. 58Print GNUnet version number.
67 59
diff --git a/doc/man/gnunet-scalarproduct.1 b/doc/man/gnunet-scalarproduct.1
index 1c8938daf..34d5e4ef0 100644
--- a/doc/man/gnunet-scalarproduct.1
+++ b/doc/man/gnunet-scalarproduct.1
@@ -42,34 +42,26 @@ The protocol by definition relies on \fBAlice\fP and \fBBob\fP being
42benign, thus \fBBob\fP can arbitrarily falsify his information. Both 42benign, thus \fBBob\fP can arbitrarily falsify his information. Both
43peers collaborate to achieve a correct result. 43peers collaborate to achieve a correct result.
44.SH OPTIONS 44.SH OPTIONS
45.B
46.IP "\-e ELEMENTS, \-\-elements=ELEMENTS" 45.IP "\-e ELEMENTS, \-\-elements=ELEMENTS"
47The element-vector the vectorproduct should be computed over in signed 46The element-vector the vectorproduct should be computed over in signed
48decimal form, eg: \"42,1,-3,3,7\". Zero value elements will be automatically masked. 47decimal form, eg: \"42,1,-3,3,7\". Zero value elements will be automatically masked.
49.B
50.IP "\-m MASK, \-\-mask=MASK" 48.IP "\-m MASK, \-\-mask=MASK"
51Elements in the vector can be masked. There must be at least two 49Elements in the vector can be masked. There must be at least two
52elements left in the vector to compute a vectorproduct. Non-Zero 50elements left in the vector to compute a vectorproduct. Non-Zero
53values indicate an element is not maskes. 51values indicate an element is not maskes.
54.B
55.IP "\-k KEY, \-\-key=KEY" 52.IP "\-k KEY, \-\-key=KEY"
56The session key, a shared string of arbitrary length from which the 53The session key, a shared string of arbitrary length from which the
57SID will be generated 54SID will be generated
58.B
59.IP "\-c FILENAME, \-\-config=FILENAME" 55.IP "\-c FILENAME, \-\-config=FILENAME"
60Use the configuration file FILENAME. 56Use the configuration file FILENAME.
61.B
62.IP "\-p PEERID, \-\-peer=PEERID" 57.IP "\-p PEERID, \-\-peer=PEERID"
63The remote peer\'s ASCII-armored gnunet-peer ID as output by 58The remote peer\'s ASCII-armored gnunet-peer ID as output by
64gnunet-peerinfo. If this option is not given, the peer will take the 59gnunet-peerinfo. If this option is not given, the peer will take the
65\fBBob\fP\'s role. 60\fBBob\fP\'s role.
66.B
67.IP "\-h, \-\-help" 61.IP "\-h, \-\-help"
68Print short help on options. 62Print short help on options.
69.B
70.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 63.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
71Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 64Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
72.B
73.IP "\-v, \-\-version" 65.IP "\-v, \-\-version"
74Print GNUnet version number. 66Print GNUnet version number.
75.SH BUGS 67.SH BUGS
diff --git a/doc/man/gnunet-scrypt.1 b/doc/man/gnunet-scrypt.1
index 01ac4205a..545af37e9 100644
--- a/doc/man/gnunet-scrypt.1
+++ b/doc/man/gnunet-scrypt.1
@@ -5,34 +5,24 @@ gnunet\-scrypt \- Manipulate GNUnet proof of work files.
5.B gnunet\-scrypt 5.B gnunet\-scrypt
6.RI [ options ] 6.RI [ options ]
7.SH DESCRIPTION 7.SH DESCRIPTION
8\fBgnunet\-scrypt\fP is a command line tool to manipulate GNUnet proof 8\fBgnunet\-scrypt\fP is a command line tool to manipulate GNUnet proof of work files.
9of work files.
10.SH OPTIONS 9.SH OPTIONS
11.B
12.IP "\-b BITS, \-\-bits=BITS" 10.IP "\-b BITS, \-\-bits=BITS"
13Number of bits to require for the proof of work. 11Number of bits to require for the proof of work.
14.B
15.IP "\-c FILENAME, \-\-config=FILENAME" 12.IP "\-c FILENAME, \-\-config=FILENAME"
16Use the configuration file FILENAME. 13Use the configuration file FILENAME.
17.B
18.IP "\-h, \-\-help" 14.IP "\-h, \-\-help"
19Print short help on options. 15Print short help on options.
20.B
21.IP "\-k FILE, \-\-keyfile=FILE" 16.IP "\-k FILE, \-\-keyfile=FILE"
22File with private key, otherwise default is used. 17File with private key, otherwise default is used.
23.B
24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 18.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
25Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 19Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
26.B
27.IP "\-l LOGFILE, \-\-logfile=LOGFILE" 20.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
28Configure logging to write logs to LOGFILE. 21Configure logging to write logs to LOGFILE.
29.B
30.IP "\-o FILE, \-\-outfile=FILE" 22.IP "\-o FILE, \-\-outfile=FILE"
31File with proof of work, otherwise default is used. 23File with proof of work, otherwise default is used.
32.B
33.IP "\-t TIME, \-\-timeout=TIME" 24.IP "\-t TIME, \-\-timeout=TIME"
34Time to wait between calculations. 25Time to wait between calculations.
35.B
36.IP "\-v, \-\-version" 26.IP "\-v, \-\-version"
37Print GNUnet version number. 27Print GNUnet version number.
38.SH BUGS 28.SH BUGS
diff --git a/doc/man/gnunet-statistics.1 b/doc/man/gnunet-statistics.1
index e61a8493c..c0d5e8fe3 100644
--- a/doc/man/gnunet-statistics.1
+++ b/doc/man/gnunet-statistics.1
@@ -1,73 +1,91 @@
1.TH GNUNET-STATISTICS 1 "January 4, 2012" "GNUnet" 1.Dd January 4, 2012
2.SH NAME 2.Dt GNUNET-STATISTICS 1
3gnunet\-statistics \- Display statistics about your GNUnet system 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-statistics 5.Nm gnunet-statistics
6.RI [ options ] 6.Nd display statistics about your GNUnet system
7.RI [ VALUE ] 7.Sh SYNOPSIS
8.SH DESCRIPTION 8.Nm
9\fBgnunet\-statistics\fP is used to display detailed information about 9.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
10various aspect of GNUnet's operation. This tool only works if the 10.Op Fl h | \-help
11"statistics" service is available. 11.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
12gnunet\-statistics can be used to set a value by giving the options 12.Op Fl l Ar FILENAME | Fl \-logfile= Ns Ar FILENAME
13\-n, \-s and also a VALUE. 13.Op Fl n Ar NAME | Fl \-name= Ns Ar NAME
14.SH OPTIONS 14.Op Fl o Ar PORT | Fl \-port= Ns Ar PORT
15.B 15.Op Fl p | \-persistent
16.IP "\-c FILENAME, \-\-config=FILENAME" 16.Op Fl q | \-quiet
17.Op Fl r Ar REMOTE | Fl \-remote= Ns Ar REMOTE
18.Op Fl S Ar SEPARATOR | Fl \-csv-separator= Ns Ar SEPARATOR
19.Op Fl s Ar SUBSYSTEM | Fl \-subsystem= Ns Ar SUBSYSTEM
20.Op Fl t Ar PATH | Fl \-testbed= Ns Ar PATH
21.Op Fl v | \-version
22.Op Fl w | \-watch
23.Ao Ar VALUE Ac
24.Sh DESCRIPTION
25.Nm
26is used to display detailed information about various aspect of GNUnet's operation.
27This tool only works if the "statistics" service is available.
28gnunet-statistics can be used to set a value by giving the options \-n, \-s and also a VALUE.
29.Bl -tag -width Ds
30.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
17Use the configuration file FILENAME. 31Use the configuration file FILENAME.
18.B 32.It Fl h | \-help
19.IP "\-h, \-\-help"
20Print short help on options. 33Print short help on options.
21.B 34.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
22.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
23Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 35Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
24.B 36.It Fl l Ar FILENAME | Fl \-logfile= Ns Ar FILENAME
25.IP "\-n NAME, \-\-name=NAME" 37Configure logging to write logs to FILENAME
26Each statistic has a name that is unique with in its subsystem. With 38.It Fl n Ar NAME | Fl \-name= Ns Ar NAME
27this option, the output can be restricted to statistics that have a 39Each statistic has a NAME that is unique with in its subsystem.
28particular name. 40With this option, the output can be restricted to statistics that have a particular NAME.
29.B 41.It Fl o Ar PORT | Fl \-port= Ns Ar PORT
30.IP "\-p, \-\-persistent" 42PORT for remote host
31When setting a value, make the value persistent. If the value used to 43.It Fl p | \-persistent
32be persistent and this flag is not given, it will be marked as 44When setting a value, make the value persistent.
33non\-persistent. 45If the value used to be persistent and this flag is not given, it will be marked as non-persistent.
34.B 46.It Fl q | \-quiet
35.IP "\-s SUBSYSTEM, \-\-subsystem=SUBSYSTEM" 47Just print the statistics value
36Statistics are kept for various subsystems. With this option, the 48.It Fl r Ar REMOTE | Fl \-remote= Ns Ar REMOTE
37output can be restricted to a particular subsystem only. 49Connect to a remote host given as REMOTE.
38.B 50.It Fl S Ar SEPARATOR | Fl \-csv-separator= Ns Ar SEPARATOR
39.IP "\-S SEPARATOR, \-\-csv-separator=SEPARATOR"
40Specify a separator for generating csv-output. 51Specify a separator for generating csv-output.
41.B 52.It Fl s Ar SUBSYSTEM | Fl \-subsystem= Ns Ar SUBSYSTEM
42.IP "\-t TESTBED_PATH, \-\-subsystem=TESTBED_PATH" 53Statistics are kept for various subsystems.
54With this option, the output can be restricted to a particular subsystem only.
55.It Fl t Ar PATH | Fl \-testbed= Ns Ar PATH
43When running testbed, you can get statistics of all peers with specefying the 56When running testbed, you can get statistics of all peers with specefying the
44folder containing the data of all testbed nodes like \fBgnunet\-statistics -t /tmp/testbedARtmQv\fP. 57folder containing the data of all testbed nodes like
45.B 58.Pp
46.IP "\-v, \-\-version" 59.Dl $ gnunet-statistics -t /tmp/testbedARtmQv
60.Pp
61.It Fl v | \-version
47Print GNUnet version number. 62Print GNUnet version number.
48.SH BUGS 63.It Fl w | \-watch
49Report bugs by using Mantis <https://gnunet.org/mantis/> or by sending 64Watch value continuously.
50electronic mail to <gnunet\-developers@gnu.org> 65.El
51.SH SEE ALSO 66.Sh SEE ALSO
52gnunet\-service\-statistics(1) 67.Xr gnunet-service-statistics 1
53.PP 68.sp
54The full documentation for 69The full documentation for gnunet is maintained as a Texinfo manual.
55.B gnunet
56is maintained as a Texinfo manual.
57If the 70If the
58.B info 71.Xr info 1
59and 72and gnunet programs are properly installed at your site, the command
60.B gnunet 73.Pp
61programs are properly installed at your site, the command 74.Dl info gnunet
62.IP 75.Pp
63.B info gnunet
64.PP
65should give you access to the complete handbook, 76should give you access to the complete handbook,
66.IP 77.Pp
67.B info gnunet-c-tutorial 78.Dl info gnunet-c-tutorial
68.PP 79.Pp
69will give you access to a tutorial for developers. 80will give you access to a tutorial for developers.
70.PP 81.sp
71Depending on your installation, this information is also 82Depending on your installation, this information is also available in
72available in 83.Xr gnunet 7 and
73\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 84.Xr gnunet-c-tutorial 7 .
85.\".Sh HISTORY
86.\".Sh AUTHORS
87.Sh BUGS
88Report bugs by using
89.Lk https://bugs.gnunet.org
90or by sending electronic mail to
91.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-testbed-profiler.1 b/doc/man/gnunet-testbed-profiler.1
index b1dde99dd..fe9d713b3 100644
--- a/doc/man/gnunet-testbed-profiler.1
+++ b/doc/man/gnunet-testbed-profiler.1
@@ -1,61 +1,67 @@
1.TH GNUNET\-TESTBED\-PROFILER 1 "September 13, 2014" "GNUnet" 1.Dd September 13, 2014
2.SH NAME 2.Dt GNUNET-TESTBED-PROFILER 1
3gnunet\-testbed\-profiler \- Profiling driver for the testbed. 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-testbed\-profiler 5.Nm gnunet-testbed-profiler
6.RI [ options ] 6.Nd
7.br 7profiling driver for the testbed
8.SH DESCRIPTION 8.Sh SYNOPSIS
9\fBgnunet\-testbed\-profiler\fP is a command line profiling driver for the testbed. 9.Nm
10.SH OPTIONS 10.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
11.B 11.Op Fl e Ar COUNT | Fl \-num-errors= Ns Ar COUNT
12.IP "\-c FILENAME, \-\-config=FILENAME" 12.Op Fl H Ar FILENAME | Fl \-hosts= Ns Ar FILENAME
13.Op Fl h | \-help
14.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
15.Op Fl l Ar LOGFILE | Fl \-logfile= Ns Ar LOGFILE
16.Op Fl n | \-non-interactive
17.Op Fl p Ar COUNT | Fl \-num-peers= Ns Ar COUNT
18.Op Fl v | \-version
19.Sh DESCRIPTION
20.Nm
21is a command line profiling driver for the testbed.
22.Sh OPTIONS
23.Bl -tag -width Ds
24.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
13Use the configuration file FILENAME. 25Use the configuration file FILENAME.
14.B 26.It Fl e Ar COUNT | Fl \-num-errors= Ns Ar COUNT
15.IP "\-e COUNT, \-\-num\-errors=COUNT"
16Tolerate COUNT number of continious timeout failures. 27Tolerate COUNT number of continious timeout failures.
17.B 28.It Fl H Ar FILENAME | Fl \-hosts= Ns Ar FILENAME
18.IP "\-H FILENAME, \-\-hosts=FILENAME"
19Name of the file with the login information for the testbed. 29Name of the file with the login information for the testbed.
20.B 30.It Fl h | \-help
21.IP "\-h, \-\-help"
22Print short help on options. 31Print short help on options.
23.B 32.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
24.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 33Use LOGLEVEL for logging.
25Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 34Valid values are DEBUG, INFO, WARNING and ERROR.
26.B 35.It Fl l Ar LOGFILE | Fl \-logfile= Ns Ar LOGFILE
27.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
28Configure logging to write logs to LOGFILE. 36Configure logging to write logs to LOGFILE.
29.B 37.It Fl n | \-non-interactive
30.IP "\-n, \-\-non\-interactive" 38Run 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.
31Run profiler in non-interactive mode where upon testbed setup the 39.It Fl p Ar COUNT | Fl \-num-peers= Ns Ar COUNT
32profiler does not wait for a keystroke but continues to run until a
33termination signal is received.
34.B
35.IP "\-p COUNT, \-\-num\-peers=COUNT"
36Create COUNT number of peers. 40Create COUNT number of peers.
37.B 41.It Fl v | \-version
38.IP "\-v, \-\-version"
39Print GNUnet version number. 42Print GNUnet version number.
40.SH BUGS 43.El
41Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending electronic mail to <gnunet\-developers@gnu.org> 44.Sh SEE ALSO
42.SH "SEE ALSO" 45The full documentation for gnunet is maintained as a Texinfo manual.
43The full documentation for 46If the
44.B gnunet 47.Xr info 1
45is maintained as a Texinfo manual. If the 48and gnunet programs are properly installed at your site, the command
46.B info 49.Pp
47and 50.Dl info gnunet
48.B gnunet 51.Pp
49programs are properly installed at your site, the command
50.IP
51.B info gnunet
52.PP
53should give you access to the complete handbook, 52should give you access to the complete handbook,
54.IP 53.Pp
55.B info gnunet-c-tutorial 54.Dl info gnunet-c-tutorial
56.PP 55.Pp
57will give you access to a tutorial for developers. 56will give you access to a tutorial for developers.
58.PP 57.sp
59Depending on your installation, this information is also 58Depending on your installation, this information is also available in
60available in 59.Xr gnunet 7 and
61\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 60.Xr gnunet-c-tutorial 7 .
61.\".Sh HISTORY
62.\".Sh AUTHORS
63.Sh BUGS
64Report bugs by using
65.Lk https://bugs.gnunet.org
66or by sending electronic mail to
67.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-testing-run-service.1 b/doc/man/gnunet-testing-run-service.1
index 43fdb8ecf..903810c7f 100644
--- a/doc/man/gnunet-testing-run-service.1
+++ b/doc/man/gnunet-testing-run-service.1
@@ -1,52 +1,53 @@
1.TH GNUNET-TESTING-RUN-SERVICE 1 "August 25, 2013" "GNUnet" 1.Dd August 25, 2013
2.SH NAME 2.Dt GNUNET-TESTING-RUN-SERVICE 1
3gnunet\-testing\-run\-service \- Command line tool to start a service for testing. 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-testing\-run\-service 5.Nm gnunet-testing-run-service
6.RI [ options ] 6.Nd
7.SH DESCRIPTION 7command line tool to start a service for testing
8\fBgnunet\-testing\-run\-service\fP is a command line tool to start a 8.Sh SYNOPSIS
9service for testing. It starts a peer, running only the service 9.Nm
10specified on the command line, outputs the path to the temporary 10.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
11configuration file to stdout. 11.Op Fl h | \-help
12.PP 12.Op Fl s Ar SERVICE | Fl \-service= Ns Ar SERVICE
13The peer will run until this program is killed, or stdin is 13.Sh DESCRIPTION
14closed. When reading the character 'r' from stdin, the running service 14.Nm
15is restarted with the same configuration. 15is a command line tool to start a service for testing.
16.PP 16It starts a peer, running only the service specified on the command line, outputs the path to the temporary configuration file to stdout.
17This executable is intended to be used by gnunet-java, in order to 17.Pp
18reliably start and stop services for test cases. 18The peer will run until this program is killed, or stdin is closed.
19.SH OPTIONS 19When reading the character 'r' from stdin, the running service is restarted with the same configuration.
20.B 20.Pp
21.IP "\-c FILENAME, \-\-config=FILENAME" 21This executable is intended to be used by gnunet-java, in order to reliably start and stop services for test cases.
22.Bl -tag -width Ds
23.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
22Name of the template configuration file to use (optional). 24Name of the template configuration file to use (optional).
23.B 25.It Fl h | \-help
24.IP "\-h, \-\-help"
25Print short help on options. 26Print short help on options.
26.B 27.It Fl s Ar SERVICE | Fl \-service= Ns Ar SERVICE
27.IP "\-s SERVICE, \-\-service=SERVICE"
28Name of the service to run. 28Name of the service to run.
29.SH BUGS 29.El
30Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 30.Sh SEE ALSO
31electronic mail to <gnunet\-developers@gnu.org> 31The full documentation for gnunet is maintained as a Texinfo manual.
32.SH SEE ALSO
33The full documentation for
34.B gnunet
35is maintained as a Texinfo manual.
36If the 32If the
37.B info 33.Xr info 1
38and 34and gnunet programs are properly installed at your site, the command
39.B gnunet 35.Pp
40programs are properly installed at your site, the command 36.Dl info gnunet
41.IP 37.Pp
42.B info gnunet
43.PP
44should give you access to the complete handbook, 38should give you access to the complete handbook,
45.IP 39.Pp
46.B info gnunet-c-tutorial 40.Dl info gnunet-c-tutorial
47.PP 41.Pp
48will give you access to a tutorial for developers. 42will give you access to a tutorial for developers.
49.PP 43.sp
50Depending on your installation, this information is also 44Depending on your installation, this information is also available in
51available in 45.Xr gnunet 7 and
52\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 46.Xr gnunet-c-tutorial 7 .
47.\".Sh HISTORY
48.\".Sh AUTHORS
49.Sh BUGS
50Report bugs by using
51.Lk https://bugs.gnunet.org
52or by sending electronic mail to
53.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-testing.1 b/doc/man/gnunet-testing.1
index 357d0df44..182da613d 100644
--- a/doc/man/gnunet-testing.1
+++ b/doc/man/gnunet-testing.1
@@ -1,65 +1,69 @@
1.TH GNUNET\-TESTING 1 "January 4, 2012" "GNUnet" 1.Dd January 4, 2012
2.SH NAME 2.Dt GNUNET-TESTING 1
3gnunet\-testing \- Command line tool to access the testing library. 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-testing 5.Nm gnunet-testing
6.RI [ options ] 6.Nd
7.br 7command line tool to access the testing library
8.SH DESCRIPTION 8.Sh SYNOPSIS
9\fBgnunet\-testing\fP is a command line tool to access the testing 9.Nm
10library. 10.Op Fl C | \-cfg
11.SH OPTIONS 11.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
12.B 12.Op Fl H | \-hostkeys
13.IP "\-C, \-\-cfg" 13.Op Fl h | \-help
14.Op Fl k | \-key
15.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
16.Op Fl l Ar LOGFILE | Fl \-logfile= Ns Ar LOFILE
17.Op Fl n | \-number
18.Op Fl t | \-template
19.Op Fl v | \-version
20.Sh DESCRIPTION
21.Nm
22is a command line tool to access the testing library.
23.Sh OPTIONS
24.Bl -tag -width Ds
25.It Fl C | \-cfg
14Create unique configuration files. 26Create unique configuration files.
15.B 27.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
16.IP "\-c FILENAME, \-\-config=FILENAME"
17Use the configuration file FILENAME. 28Use the configuration file FILENAME.
18.B 29.It Fl H | \-hostkeys
19.IP "\-H, \-\-hostkeys"
20Host key file. 30Host key file.
21.B 31.It Fl h | \-help
22.IP "\-h, \-\-help"
23Print short help on options. 32Print short help on options.
24.B 33.It Fl k | \-key
25.IP "\-k, \-\-key"
26Create hostkey files from pre-computed hostkey list. 34Create hostkey files from pre-computed hostkey list.
27.B 35.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
28.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
29Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 36Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR.
30.B 37.It Fl l Ar LOGFILE | Fl \-logfile= Ns Ar LOFILE
31.IP "\-l LOGFILE, \-\-logfile=LOGFILE"
32Configure logging to write logs to LOGFILE. 38Configure logging to write logs to LOGFILE.
33.B 39.It Fl n | \-number
34.IP "\-n, \-\-number"
35Number of unique configuration files or hostkeys to create. 40Number of unique configuration files or hostkeys to create.
36.B 41.It Fl t | \-template
37.IP "\-t, \-\-template"
38Configuration template. 42Configuration template.
39.B 43.It Fl v | \-version
40.IP "\-v, \-\-version"
41Print GNUnet version number. 44Print GNUnet version number.
42.SH BUGS 45.El
43Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 46.Sh SEE ALSO
44electronic mail to <gnunet\-developers@gnu.org> 47The full documentation for gnunet is maintained as a Texinfo manual.
45.SH SEE ALSO
46The full documentation for
47.B gnunet
48is maintained as a Texinfo manual.
49If the 48If the
50.B info 49.Xr info 1
51and 50and gnunet programs are properly installed at your site, the command
52.B gnunet 51.Pp
53programs are properly installed at your site, the command 52.Dl info gnunet
54.IP 53.Pp
55.B info gnunet
56.PP
57should give you access to the complete handbook, 54should give you access to the complete handbook,
58.IP 55.Pp
59.B info gnunet-c-tutorial 56.Dl info gnunet-c-tutorial
60.PP 57.Pp
61will give you access to a tutorial for developers. 58will give you access to a tutorial for developers.
62.PP 59.sp
63Depending on your installation, this information is also 60Depending on your installation, this information is also available in
64available in 61.Xr gnunet 7 and
65\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 62.Xr gnunet-c-tutorial 7 .
63.\".Sh HISTORY
64.\".Sh AUTHORS
65.Sh BUGS
66Report bugs by using
67.Lk https://bugs.gnunet.org
68or by sending electronic mail to
69.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-timeout.1 b/doc/man/gnunet-timeout.1
index 653f211cd..15abfe351 100644
--- a/doc/man/gnunet-timeout.1
+++ b/doc/man/gnunet-timeout.1
@@ -1,36 +1,42 @@
1.TH GNUNET-TIMOUET 1 "June 5, 2018" "GNUnet" 1.Dd June 5, 2018
2.SH NAME 2.Dt GNUNET-TIMEOUT 1
3gnunet\-timeout \- run process with timeout 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-timeout 5.Nm gnunet-timeout
6.RI TIMEOUT PROGRAM ARGS 6.Nd
7.SH DESCRIPTION 7run process with timeout
8\fBgnunet\-timeout\fP can be used to run another process with a 8.Sh SYNOPSIS
9timeout. Provided as the standard "timout" utility may not be 9.Nm
10available on all platforms. 10.Ao Ar duration Ac
11.SH BUGS 11.Ao Ar command Ac
12Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 12.Ao args ... Ac
13electronic mail to <gnunet\-developers@gnu.org> 13.Sh DESCRIPTION
14.SH SEE ALSO 14.Nm
15timeout(1) 15can be used to run another process with a timeout.
16.PP 16It is provided because the standard "timout" utility may not be available on all platforms.
17The full documentation for 17.Sh SEE ALSO
18.B gnunet 18.Xr timeout 1
19is maintained as a Texinfo manual. 19.sp
20The full documentation for gnunet is maintained as a Texinfo manual.
20If the 21If the
21.B info 22.Xr info 1
22and 23and gnunet programs are properly installed at your site, the command
23.B gnunet 24.Pp
24programs are properly installed at your site, the command 25.Dl info gnunet
25.IP 26.Pp
26.B info gnunet
27.PP
28should give you access to the complete handbook, 27should give you access to the complete handbook,
29.IP 28.Pp
30.B info gnunet-c-tutorial 29.Dl info gnunet-c-tutorial
31.PP 30.Pp
32will give you access to a tutorial for developers. 31will give you access to a tutorial for developers.
33.PP 32.sp
34Depending on your installation, this information is also 33Depending on your installation, this information is also available in
35available in 34.Xr gnunet 7 and
36\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 35.Xr gnunet-c-tutorial 7 .
36.\".Sh HISTORY
37.\".Sh AUTHORS
38.Sh BUGS
39Report bugs by using
40.Lk https://bugs.gnunet.org
41or by sending electronic mail to
42.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-transport-certificate-creation.1 b/doc/man/gnunet-transport-certificate-creation.1
index 9dc572acf..e896363e4 100644
--- a/doc/man/gnunet-transport-certificate-creation.1
+++ b/doc/man/gnunet-transport-certificate-creation.1
@@ -1,35 +1,40 @@
1.TH GNUNET\-TRANSPORT-CERTIFICATE-CREATION 1 "January 31, 2014" "GNUnet" 1.Dd January 31, 2014
2.SH NAME 2.Dt GNUNET-TRANSPORT-CERTIFICATE-CREATION 1
3gnunet\-transport\-certificate\-creation \- create certificate for HTTPS transport 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-transport\-certificate\-creation 5.Nm gnunet-transport-certificate-creation
6.I privatekey certificate 6.Nd
7.SH DESCRIPTION 7create certificate for HTTPS transport
8\fBgnunet\-transport\-certificate\-creation\fP uses openssl to generate a RSA 8.Sh SYNOPSIS
9private key and then a self-signed certificate for HTTPS transport. 9.Nm
10.SH BUGS 10.Op privatekey
11Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 11.Op certificate
12electronic mail to <gnunet\-developers@gnu.org> 12.Sh DESCRIPTION
13.SH SEE ALSO 13.Nm
14gnunet\-transport(1) 14uses openssl to generate a RSA private key and then a self-signed certificate for HTTPS transport.
15.PP 15.Sh SEE ALSO
16The full documentation for 16.Xr gnunet-transport 1
17.B gnunet 17.sp
18is maintained as a Texinfo manual. 18The full documentation for gnunet is maintained as a Texinfo manual.
19If the 19If the
20.B info 20.Xr info 1
21and 21and gnunet programs are properly installed at your site, the command
22.B gnunet 22.Pp
23programs are properly installed at your site, the command 23.Dl info gnunet
24.IP 24.Pp
25.B info gnunet
26.PP
27should give you access to the complete handbook, 25should give you access to the complete handbook,
28.IP 26.Pp
29.B info gnunet-c-tutorial 27.Dl info gnunet-c-tutorial
30.PP 28.Pp
31will give you access to a tutorial for developers. 29will give you access to a tutorial for developers.
32.PP 30.sp
33Depending on your installation, this information is also 31Depending on your installation, this information is also available in
34available in 32.Xr gnunet 7 and
35\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 33.Xr gnunet-c-tutorial 7 .
34.\".Sh HISTORY
35.\".Sh AUTHORS
36.Sh BUGS
37Report bugs by using
38.Lk https://bugs.gnunet.org
39or by sending electronic mail to
40.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-transport.1 b/doc/man/gnunet-transport.1
index eef762174..f5ed47ad1 100644
--- a/doc/man/gnunet-transport.1
+++ b/doc/man/gnunet-transport.1
@@ -1,84 +1,92 @@
1.TH GNUNET\-TRANSPORT "1" "October 17, 2015" "GNUnet" 1.Dd October 17, 2015
2.SH NAME 2.Dt GNUNET-TRANSPORT 1
3gnunet\-transport \- measure and control the transport subsystem 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-transport 5.Nm gnunet-transport
6[\fIOPTIONS\fR] 6.Nd
7.SH DESCRIPTION 7measure and control the transport subsystem
8.PP 8.Sh SYNOPSIS
9gnunet\-transport is a tool to access various functions of GNUnet's 9.Nm
10transport subsystem from the command\-line. Most of these are not 10.Op Fl b | \-benchmark
11expected to be useful for end-users. gnunet\-transport can be used to 11.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
12evaluate the performance of the transports, force a peer to connect to 12.Op Fl D | \-disconnect
13another peer (if possible). Other functions should be added in the 13.Op Fl e | \-events
14near future. 14.Op Fl h | \-help
15.TP 15.Op Fl i | \-information
16\fB\-b\fR, \fB\-\-benchmark\fR 16.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
17measure how fast we are receiving data (from all connections). On 17.Op Fl l Ar LOGFILE | Fl \-logfile= Ns Ar LOGFILE
18exit, the data rate will be reported. Runs until aborted with CTRL-C. 18.Op Fl m | \-monitor
19.TP 19.Op Fl p Ar PEER | Fl \-peer= Ns Ar PEER
20\fB\-D\fR, \fB\-\-disconnect\fR 20.Op Fl P | \-plugins
21force disconnection from a peer (used in conjunction with \-p). 21.Op Fl s | \-send
22Note that you can use the gnunet\-ats command\-line tool to suggest connects. 22.Op Fl v | \-version
23.TP 23.Op Fl V | \-verbose
24\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 24.Sh DESCRIPTION
25.Nm
26is a tool to access various functions of GNUnet's transport subsystem from the command-line.
27Most of these are not expected to be useful for end-users.
28gnunet-transport can be used to evaluate the performance of the transports, force a peer to connect to another peer (if possible).
29Other functions should be added in the near future.
30.Bl -tag -width Ds
31.It Fl b | \-benchmark
32measure how fast we are receiving data (from all connections).
33On exit, the data rate will be reported.
34Runs until aborted with CTRL-C.
35.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
25configuration file to use 36configuration file to use
26.TP 37.It Fl D | \-disconnect
27\fB\-e \fB\-\-events\fR 38force disconnection from a peer (used in conjunction with \-p).
39Note that you can use the gnunet-ats command-line tool to suggest connects.
40.It Fl e | \-events
28provide information about all connect and disconnect events (continuously) 41provide information about all connect and disconnect events (continuously)
29.TP 42.It Fl h | \-help
30\fB\-h\fR, \fB\-\-help\fR
31print help page 43print help page
32.TP 44.It Fl i | \-information
33\fB\-i\fR, \fB\-\-information\fR
34print information about our current connections (once) 45print information about our current connections (once)
35.TP 46.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
36\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=LOGLEVEL\fR
37Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG. 47Change the loglevel. Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG.
38.TP 48.It Fl l Ar LOGFILE | Fl \-logfile= Ns Ar LOGFILE
39\fB\-l \fILOGFILE\fR, \fB\-\-logfile=LOGFILE\fR
40configure logging to write logs to LOGFILE 49configure logging to write logs to LOGFILE
41.TP 50.It Fl m | \-monitor
42\fB\-m\fR, \fB\-\-monitor\fR
43print information about our current connections (continuously) 51print information about our current connections (continuously)
44.TP 52.It Fl p Ar PEER | Fl \-peer= Ns Ar PEER
45\fB\-p \fIPEER\fR, \fB\-\-peer=PEER\fR
46the peer identity to connect to or monitor 53the peer identity to connect to or monitor
47.TP 54.It Fl P | \-plugins
48\fB\-P, \fB\-\-plugins\fR
49monitor session state of transport plugins 55monitor session state of transport plugins
50.TP 56.It Fl s | \-send
51\fB\-s\fR, \fB\-\-send\fR
52transmit (dummy) traffic as quickly as possible to the peer specified 57transmit (dummy) traffic as quickly as possible to the peer specified
53with the \-p option. The rate will still be limited by the quota(s) 58with the \-p option. The rate will still be limited by the quota(s)
54determined by the peers (ATS subsystem). Will run until CTRL\-C is 59determined by the peers (ATS subsystem). Will run until CTRL\-C is
55pressed or until the connection to the other peer is disrupted. 60pressed or until the connection to the other peer is disrupted.
56.TP 61.It Fl v | \-version
57\fB\-v\fR, \fB\-\-version\fR
58print the version number 62print the version number
59.TP 63.It Fl V | \-verbose
60\fB\-V\fR, \fB\-\-verbose\fR
61be verbose 64be verbose
62.SH "REPORTING BUGS" 65.El
63Report bugs by using mantis <https://bugs.gnunet.org/> or by sending electronic mail to <gnunet\-developers@gnu.org> 66.Sh SEE ALSO
64.SH "SEE ALSO" 67.Xr gnunet-arm 1 ,
65\fBgnunet\-arm\fP(1), \fBgnunet\-ats\fP(1) 68.Xr gnunet-ats 1
66The full documentation for 69.sp
67.B gnunet 70The full documentation for gnunet is maintained as a Texinfo manual.
68is maintained as a Texinfo manual. If the 71If the
69.B info 72.Xr info 1
70and 73and gnunet programs are properly installed at your site, the command
71.B gnunet 74.Pp
72programs are properly installed at your site, the command 75.Dl info gnunet
73.IP 76.Pp
74.B info gnunet
75.PP
76should give you access to the complete handbook, 77should give you access to the complete handbook,
77.IP 78.Pp
78.B info gnunet-c-tutorial 79.Dl info gnunet-c-tutorial
79.PP 80.Pp
80will give you access to a tutorial for developers. 81will give you access to a tutorial for developers.
81.PP 82.sp
82Depending on your installation, this information is also 83Depending on your installation, this information is also available in
83available in 84.Xr gnunet 7 and
84\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 85.Xr gnunet-c-tutorial 7 .
86.\".Sh HISTORY
87.\".Sh AUTHORS
88.Sh BUGS
89Report bugs by using
90.Lk https://bugs.gnunet.org
91or by sending electronic mail to
92.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-unindex.1 b/doc/man/gnunet-unindex.1
index 6aee4f62e..e953ce23a 100644
--- a/doc/man/gnunet-unindex.1
+++ b/doc/man/gnunet-unindex.1
@@ -1,58 +1,67 @@
1.TH GNUNET-UNINDEX "1" "September 6, 2009" "GNUnet" 1.Dd September 6, 2009
2.SH NAME 2.Dt GNUNET-UNINDEX 1
3gnunet\-unindex \- a command line interface for deleting indexed files from GNUnet 3.Sh NAME
4.SH SYNOPSIS 4.Nm gnunet-unindex
5.B gnunet\-unindex 5.Nd
6[\fIOPTIONS\fR] FILENAME 6a command line interface for deleting indexed files from GNUnet
7.SH DESCRIPTION 7.Sh SYNOPSIS
8.PP 8.Nm
9gnunet\-unindex is used for deleting indexed files from GNUnet. 9.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
10.TP 10.Op Fl h | \-help
11\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR 11.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
12use config file (defaults: ~/.config/gnunet.conf) 12.Op Fl v | \-version
13.TP 13.Op Fl V | \-verbose
14\fB\-h\fR, \fB\-\-help\fR 14FILENAME
15.Sh DESCRIPTION
16.Nm
17is used for deleting indexed files from GNUnet.
18.Bl -tag -width Ds
19.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
20Use config file FILENAME as config (default: ~/.config/gnunet.conf).
21.It Fl h | \-help
15print help page 22print help page
16.TP 23.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
17\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=LOGLEVEL\fR 24Change the loglevel.
18Change the loglevel. Possible values for LOGLEVEL are NOTHING, 25Possible values for LOGLEVEL are NOTHING, ERROR, WARNING, INFO and DEBUG.
19ERROR, WARNING, INFO and DEBUG. 26.It Fl v | \-version
20.TP
21\fB\-v\fR, \fB\-\-version\fR
22print the version number 27print the version number
23.TP 28.It Fl V | \-verbose
24\fB\-V\fR, \fB\-\-verbose\fR
25be verbose 29be verbose
26.SH NOTES 30.El
27You can only unindex files that you indexed and that you still have 31.Sh NOTES
28available locally in full. You should use gnunet\-unindex on files 32You can only unindex files that you indexed and that you still have available locally in full.
29that you indexed (not inserted) and that you are going to delete or 33You should use gnunet-unindex on files that you indexed (not inserted) and that you are going to delete or move locally.
30move locally. 34.Sh FILES
31.TP
32.SH FILES
33.TP 35.TP
34~/.config/gnunet.conf 36~/.config/gnunet.conf
35GNUnet configuration file 37GNUnet configuration file
36.SH "REPORTING BUGS" 38.Sh SEE ALSO
37Report bugs to <https://bugs.gnunet.org/> or by sending electronic mail to <gnunet\-developers@gnu.org> 39.Xr gnunet-fs-gtk 1 ,
38.SH "SEE ALSO" 40.Xr gnunet-publish 1 ,
39\fBgnunet\-fs\-gtk\fP(1), \fBgnunet\-publish\fP(1), \fBgnunet\-search\fP(1), \fBgnunet\-download\fP(1), \fBgnunet.conf\fP(5) 41.Xr gnunet-search 1 ,
40The full documentation for 42.Xr gnunet-download 1 ,
41.B gnunet 43.Xr gnunet.conf 5
42is maintained as a Texinfo manual. If the 44.sp
43.B info 45The full documentation for gnunet is maintained as a Texinfo manual.
44and 46If the
45.B gnunet 47.Xr info 1
46programs are properly installed at your site, the command 48and gnunet programs are properly installed at your site, the command
47.IP 49.Pp
48.B info gnunet 50.Dl info gnunet
49.PP 51.Pp
50should give you access to the complete handbook, 52should give you access to the complete handbook,
51.IP 53.Pp
52.B info gnunet-c-tutorial 54.Dl info gnunet-c-tutorial
53.PP 55.Pp
54will give you access to a tutorial for developers. 56will give you access to a tutorial for developers.
55.PP 57.sp
56Depending on your installation, this information is also 58Depending on your installation, this information is also available in
57available in 59.Xr gnunet 7 and
58\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 60.Xr gnunet-c-tutorial 7 .
61.\".Sh HISTORY
62.\".Sh AUTHORS
63.Sh BUGS
64Report bugs by using
65.Lk https://bugs.gnunet.org
66or by sending electronic mail to
67.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-uri.1 b/doc/man/gnunet-uri.1
index 2fe1a05d2..bb525ef7f 100644
--- a/doc/man/gnunet-uri.1
+++ b/doc/man/gnunet-uri.1
@@ -1,49 +1,54 @@
1.TH GNUNET-URI 1 "June 26, 2012" "GNUnet" 1.Dd June 26, 2012
2.SH NAME 2.Dt GNUNET-URI 1
3gnunet\-uri \- invoke default handler for GNUnet URIs 3.Os
4.SH SYNOPSIS 4.Sh NAME
5.B gnunet\-uri 5.Nm gnunet-uri
6.RI URI 6.Nd
7.SH DESCRIPTION 7invoke default handler for GNUnet URIs
8\fBgnunet\-uri\fP can be used to invoke the correct tool to handle a 8.Sh SYNOPSIS
9GNUnet URI. GNUnet URIs have the format "gnunet://SUBSYSTEM/DETAILS" 9.Nm
10and thus the specific tool to handle the URI depends on the subsystem. 10.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
11gnunet\-uri will determine the correct tool (by looking for SUBSYSTEM 11.Op Fl h | \-help
12in the configuration section "uri") and invoke it. 12.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
13.SH OPTIONS 13.Op Fl v | \-version
14.B 14URI
15.IP "\-c FILENAME, \-\-config=FILENAME" 15.Sh DESCRIPTION
16.Nm
17can be used to invoke the correct tool to handle a GNUnet URI.
18GNUnet URIs have the format "gnunet://SUBSYSTEM/DETAILS" and thus the specific tool to handle the URI depends on the subsystem.
19gnunet-uri will determine the correct tool (by looking for SUBSYSTEM in the configuration section "uri") and invoke it.
20.Bl -tag -width Ds
21.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
16Use the configuration file FILENAME. 22Use the configuration file FILENAME.
17.B 23.It Fl h | \-help
18.IP "\-h, \-\-help"
19Print short help on options. 24Print short help on options.
20.B 25.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
21.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL" 26Use LOGLEVEL for logging.
22Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. 27Valid values are DEBUG, INFO, WARNING and ERROR.
23.B 28.It Fl v | \-version
24.IP "\-v, \-\-version"
25Print GNUnet version number. 29Print GNUnet version number.
26.SH BUGS 30.El
27Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 31.Sh SEE ALSO
28electronic mail to <gnunet\-developers@gnu.org> 32The full documentation for gnunet is maintained as a Texinfo manual.
29.SH SEE ALSO
30The full documentation for
31.B gnunet
32is maintained as a Texinfo manual.
33If the 33If the
34.B info 34.Xr info 1
35and 35and gnunet programs are properly installed at your site, the command
36.B gnunet 36.Pp
37programs are properly installed at your site, the command 37.Dl info gnunet
38.IP 38.Pp
39.B info gnunet
40.PP
41should give you access to the complete handbook, 39should give you access to the complete handbook,
42.IP 40.Pp
43.B info gnunet-c-tutorial 41.Dl info gnunet-c-tutorial
44.PP 42.Pp
45will give you access to a tutorial for developers. 43will give you access to a tutorial for developers.
46.PP 44.sp
47Depending on your installation, this information is also 45Depending on your installation, this information is also available in
48available in 46.Xr gnunet 7 and
49\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 47.Xr gnunet-c-tutorial 7 .
48.\".Sh HISTORY
49.\".Sh AUTHORS
50.Sh BUGS
51Report bugs by using
52.Lk https://bugs.gnunet.org
53or by sending electronic mail to
54.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-vpn.1 b/doc/man/gnunet-vpn.1
index ddb53a7bd..e0fd2b78c 100644
--- a/doc/man/gnunet-vpn.1
+++ b/doc/man/gnunet-vpn.1
@@ -1,101 +1,98 @@
1.TH GNUNET\-VPN 1 "February 25, 2012" "GNUnet" 1.Dd February 25, 2012
2.SH NAME 2.Dt GNUNET-VPN 1
3gnunet\-vpn \- manually setup a GNUnet VPN tunnel 3.Sh NAME
4.SH SYNOPSIS 4.Nm gnunet-vpn
5.B gnunet\-vpn 5.Nd
6.RI [ options ] 6manually setup a GNUnet VPN tunnel
7.br 7.Sh SYNOPSIS
8.SH DESCRIPTION 8.Nm
9\fBgnunet\-vpn\fP can be used to manually setup a VPN tunnel via the 9.Op Fl 4 | \-ipv4
10GNUnet network. 10.Op Fl 6 | \-ipv6
11.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
12.Op Fl d Ar TIME | Fl \-duration Ar TIME
13.Op Fl h | \-help
14.Op Fl i Ar IP | Fl \-ip Ar IP
15.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
16.Op Fl p Ar PEERID | Fl \-peer= Ns Ar PEERID
17.Op Fl s Ar NAME | Fl \-service= Ns Ar NAME
18.Op Fl t | \-tcp
19.Op Fl u | \-udp
20.Op Fl V | \-verbose
21.Op Fl v | \-version
22.Sh DESCRIPTION
23.Nm
24can be used to manually setup a VPN tunnel via the GNUnet network.
11There are two main types of tunnels. 25There are two main types of tunnels.
12Tunnels to an exit node which routes the traffic to the global 26Tunnels to an exit node which routes the traffic to the global Internet, and tunnels to a node that runs a service only within GNUnet.
13Internet, and tunnels to a node that runs a service only within
14GNUnet.
15Depending on the type of tunnel, gnunet\-vpn takes different options. 27Depending on the type of tunnel, gnunet\-vpn takes different options.
16The "\-i" option is required for tunnels to an exit node, whereas the 28The "\-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.
17"\-p" and "\-s" options in conjunction with either "\-u" or "\-t" are
18required for tunnels to services.
19For exit tunnels, both UDP and TCP traffic will be redirected. 29For exit tunnels, both UDP and TCP traffic will be redirected.
20For service tunnels, either UDP ("\-u") or TCP ("\-t") traffic will 30For service tunnels, either UDP ("\-u") or TCP ("\-t") traffic will be redirected.
21be redirected.
22The tool will display the IP address for this end of the tunnel. 31The tool will display the IP address for this end of the tunnel.
23The address can be displayed as soon as it has been allocated, or only 32The address can be displayed as soon as it has been allocated, or only after ("\-a") the tunnel has been created.
24after ("\-a") the tunnel has been created. 33.Bl -tag -width Ds
25.SH OPTIONS 34.It Fl 4 | \-ipv4
26.B
27.IP "\-4, \-\-ipv4"
28Desired IP address on this end of the tunnel should be an IPv4 address. 35Desired IP address on this end of the tunnel should be an IPv4 address.
29.B 36.It Fl 6 | \-ipv6
30.IP "\-6, \-\-ipv6"
31Desired IP address on this end of the tunnel should be an IPv6 address. 37Desired IP address on this end of the tunnel should be an IPv6 address.
32.B 38.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
33.IP "\-c FILENAME, \-\-config=FILENAME"
34Use the configuration file FILENAME. 39Use the configuration file FILENAME.
35.B 40.It Fl d Ar TIME | Fl \-duration Ar TIME
36.IP "\-d TIME, \-\-duration TIME"
37The mapping should be established for TIME. 41The mapping should be established for TIME.
38The value given must be a number followed by a space and a time unit, 42The value given must be a number followed by a space and a time unit, for example "500 ms".
39for example "500 ms".
40Note that the quotes are required on the shell. 43Note that the quotes are required on the shell.
41Default is 5 minutes. 44Default is 5 minutes.
42.B 45.It Fl h | \-help
43.IP "\-h, \-\-help"
44Print short help on options. 46Print short help on options.
45.B 47.It Fl i Ar IP | Fl \-ip Ar IP
46.IP "\-i IP, \-\-ip IP"
47Tunnel should be to an exit node and connect to the given IPv4 or IPv6 48Tunnel should be to an exit node and connect to the given IPv4 or IPv6
48IP address. 49IP address.
49Note that you can specify an IPv6 address as the target here, even in 50Note that you can specify an IPv6 address as the target here, even in
50combination with "\-4" (4to6) and similarly you can specify an IPv4 51combination with "\-4" (4to6) and similarly you can specify an IPv4
51address in combination with "\-6" (6to4). 52address in combination with "\-6" (6to4).
52.B 53.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
53.IP "\-L LOGLEVEL, \-\-loglevel=LOGLEVEL"
54Use LOGLEVEL for logging. 54Use LOGLEVEL for logging.
55Valid values are DEBUG, INFO, WARNING and ERROR. 55Valid values are DEBUG, INFO, WARNING and ERROR.
56.B 56.It Fl p Ar PEERID | Fl \-peer= Ns Ar PEERID
57.IP "\-p PEERID, \-\-peer=PEERID"
58Name of the peer offering the service to connect to. 57Name of the peer offering the service to connect to.
59Cannot be used in conjunction with "\-i", requires "\-s". 58Cannot be used in conjunction with "\-i", requires "\-s".
60.B 59.It Fl s Ar NAME | Fl \-service= Ns Ar NAME
61.IP "\-s NAME, \-\-service=NAME"
62Name of the service running on the target peer. 60Name of the service running on the target peer.
63Cannot be used in conjunction with "\-i", requires "\-p". 61Cannot be used in conjunction with "\-i", requires "\-p".
64.B 62.It Fl t | \-tcp
65.IP "\-t, \-\-tcp"
66Service runs TCP. 63Service runs TCP.
67Either "\-t" or "\-u" must be specified when using "\-s". 64Either "\-t" or "\-u" must be specified when using "\-s".
68.B 65.It Fl u | \-udp
69.IP "\-u, \-\-udp"
70Service runs UDP. 66Service runs UDP.
71Either "\-t" or "\-u" must be specified when using "\-s". 67Either "\-t" or "\-u" must be specified when using "\-s".
72.B 68.It Fl V | \-verbose
73.IP "\-V, \-\-verbose"
74Be verbose. 69Be verbose.
75.B 70.It Fl v | \-version
76.IP "\-v, \-\-version"
77Print GNUnet version number. 71Print GNUnet version number.
78.SH BUGS 72.El
79Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 73.Sh SEE ALSO
80electronic mail to <gnunet\-developers@gnu.org> 74.Xr gnunet-setup 1
81.SH SEE ALSO 75.sp
82gnunet\-setup(1) 76The full documentation for gnunet is maintained as a Texinfo manual.
83The full documentation for 77If the
84.B gnunet 78.Xr info 1
85is maintained as a Texinfo manual. If the 79and gnunet programs are properly installed at your site, the command
86.B info 80.Pp
87and 81.Dl info gnunet
88.B gnunet 82.Pp
89programs are properly installed at your site, the command
90.IP
91.B info gnunet
92.PP
93should give you access to the complete handbook, 83should give you access to the complete handbook,
94.IP 84.Pp
95.B info gnunet-c-tutorial 85.Dl info gnunet-c-tutorial
96.PP 86.Pp
97will give you access to a tutorial for developers. 87will give you access to a tutorial for developers.
98.PP 88.sp
99Depending on your installation, this information is also 89Depending on your installation, this information is also available in
100available in 90.Xr gnunet 7 and
101\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 91.Xr gnunet-c-tutorial 7 .
92.\".Sh HISTORY
93.\".Sh AUTHORS
94.Sh BUGS
95Report bugs by using
96.Lk https://bugs.gnunet.org
97or by sending electronic mail to
98.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet-zoneimport.1 b/doc/man/gnunet-zoneimport.1
index 2a67718f9..e99b235b8 100644
--- a/doc/man/gnunet-zoneimport.1
+++ b/doc/man/gnunet-zoneimport.1
@@ -1,90 +1,106 @@
1.TH GNUNET-ZONEIMPORT 1 "April 23, 2018" "GNUnet" 1.\" This file is part of GNUnet.
2.SH NAME 2.\" Copyright (C) 2018, 2019 GNUnet e.V.
3gnunet\-zoneimport \- import DNS zone into GNS zone 3.\"
4.SH SYNOPSIS 4.\" Permission is granted to copy, distribute and/or modify this document
5.B gnunet\-zoneimport [IP]+ 5.\" under the terms of the GNU Free Documentation License, Version 1.3 or
6.SH DESCRIPTION 6.\" any later version published by the Free Software Foundation; with no
7\fBgnunet\-zoneimport\fP reads a list of domain names (FQDN) from 7.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
8stdin and issues DNS queries for each of the domain names given. It 8.\" copy of the license is included in the file
9then checks if a local ego with a name matching the domain 9.\" ``FDL-1.3''.
10exists. Specifically, if the domain name is "example.fr", it will 10.\"
11check if an ego "fr" exists, while for a domain "example.com.fr" it 11.\" A copy of the license is also available from the Free Software
12will look for an ego called "com.fr"). If so, it will convert the DNS 12.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
13records into GNS records (in particular converting NS records and glue 13.\"
14records to GNS2DNS records) and add them to the namestore under the 14.\" Alternately, this document is also available under the General
15label ("example" in the examples above). 15.\" Public License, version 3 or later, as published by the Free Software
16.PP 16.\" Foundation. A copy of the license is included in the file
17The arguments given to gnunet\-zoneimport is a list of IP addresses of 17.\" ``GPL3''.
18DNS servers to query. 18.\"
19.PP 19.\" A copy of the license is also available from the Free Software
20gnunet\-zoneimport will usually never terminate: it will check when 20.\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
21DNS records expire, and re-issue requests when the old DNS records 21.\"
22have expired so that GNS always has the latest data. 22.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
23.PP 23.\"
24gnunet\-zoneimport will issue many DNS queries in parallel, but is 24.Dd April 23, 2018
25rate-limited in various ways, so most DNS servers should easily handle 25.Dt GNUNET-ZONEIMPORT 1
26the load. gnunet\-zoneimport will perform a limited number of retries 26.Os
27if queries fail. 27.Sh NAME
28.PP 28.Nm gnunet-zoneimport
29gnunet\-zoneimport operates incrementally. It will check if the 29.Nd
30namestore already has (non-expired) records stored for a given name in 30import DNS zone into GNS zone
31the respective zone and not issue those requests again. Thus, it is 31.Sh SYNOPSIS
32fine to restart gnunet\-zoneimport whenever the list of domain names 32.Nm
33changes. 33.Op Fl c Ar FILENAME | \-config= Ns Ar FILENAME
34.PP 34.Op Fl h | \-help
35Finally, gnunet\-zoneimport keeps information for each domain name in 35.Op Fl m Ar RELATIVETIME | Fl \-minimum-expiration= Ns Ar RELATIVETIME
36memory. This consumes about 200 bytes per domain name, or 1 GB for 5 36.Op Fl s Ar MAPSIZE | Fl \-size= Ns Ar MAPSIZE
37million labels. 37.Op Ar \IP
38.SH OPTIONS 38.Sh DESCRIPTION
39.B 39.Nm
40.IP "\-c FILENAME, \-\-config=FILENAME" 40reads a list of domain names (FQDN) from stdin and issues DNS queries for each of the domain names given.
41It then checks if a local ego with a name matching the domain exists.
42Specifically, 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").
43If 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).
44.Pp
45The arguments given to gnunet-zoneimport is a list of IP addresses of DNS servers to query.
46.Pp
47gnunet-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.
48.Pp
49gnunet-zoneimport will issue many DNS queries in parallel, but is rate-limited in various ways, so most DNS servers should easily handle the load.
50gnunet-zoneimport will perform a limited number of retries if queries fail.
51.Pp
52gnunet-zoneimport operates incrementally.
53It 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.
54Thus, it is fine to restart gnunet-zoneimport whenever the list of domain names changes.
55.Pp
56Finally, gnunet-zoneimport keeps information for each domain name in memory.
57This consumes about 200 bytes per domain name, or 1 GB for 5 million labels.
58.Bl -tag -width Ds
59.It Fl c Ar FILENAME | \-config= Ns Ar FILENAME
41Use the configuration file FILENAME. 60Use the configuration file FILENAME.
42.B 61.It Fl h | \-help
43.IP "\-h, \-\-help"
44Print short help on options. 62Print short help on options.
45.B 63.It Fl m Ar RELATIVETIME | Fl \-minimum-expiration= Ns Ar RELATIVETIME
46.IP "\-m RELATIVETIME, \-\-minimum-expiration=RELATIVETIME" 64Ensure that imported DNS records never have an expiration time that is less than RELATIVETIME into the future.
47.B 65RELATIVETIME is a time given like "1 week" or "1 h".
48Ensure that imported DNS records never have an expiration time that 66If DNS returns records with a shorter lifetime, gnunet\-zoneimport will simply bump the lifetime to the specified value (relative to the time of the import).
49is less than RELATIVETIME into the future. RELATIVETIME is a time 67Default is zero.
50given like "1 week" or "1 h". If DNS returns records with a shorter 68.It Fl s Ar MAPSIZE | Fl \-size= Ns Ar MAPSIZE
51lifetime, gnunet\-zoneimport will simply bump the lifetime to the 69Specifies the size (in number of entries) to use for the main hash map.
52specified value (relative to the time of the import). Default is zero. 70The value provided should be at least twice the number of domain names that will be given to the tool.
53.IP "\-s MAPSIZE, \-\-size=MAPSIZE" 71This 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).
54Specifies the size (in number of entries) to use for the main hash 72Do not worry about this unless you are importing millions of domain names from a zone.
55map. The value provided should be at least twice the number of domain 73.It Ar \IP
56names that will be given to the tool. This option is required for very 74IP Is the list of IPs given.
57large zones where the number of records encountered is too large for 75.El
58the automatic growth mechanism to work (that one is limited to at most 76.Sh EXAMPLES
5916 MB allocations for security reasons). Do not worry about this
60unless you are importing millions of domain names from a zone.
61.SH NOTES
62.TP
63Typical invocaton would be: 77Typical invocaton would be:
64$ gnunet\-zoneimport 1.2.3.4 < names.txt 78.Pp
65.SH BUGS 79.Dl $ gnunet\-zoneimport 1.2.3.4 < names.txt
66Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending 80.Sh SEE ALSO
67electronic mail to <gnunet\-developers@gnu.org> 81.Xr gnunet-gns 1 ,
68.SH SEE ALSO 82.Xr gnunet-namestore 1
69gnunet\-gns(1), gnunet\-namestore(1) 83.sp
70.PP 84The full documentation for gnunet is maintained as a Texinfo manual.
71The full documentation for
72.B gnunet
73is maintained as a Texinfo manual.
74If the 85If the
75.B info 86.Xr info 1
76and 87and gnunet programs are properly installed at your site, the command
77.B gnunet 88.Pp
78programs are properly installed at your site, the command 89.Dl info gnunet
79.IP 90.Pp
80.B info gnunet
81.PP
82should give you access to the complete handbook, 91should give you access to the complete handbook,
83.IP 92.Pp
84.B info gnunet-c-tutorial 93.Dl info gnunet-c-tutorial
85.PP 94.Pp
86will give you access to a tutorial for developers. 95will give you access to a tutorial for developers.
87.PP 96.sp
88Depending on your installation, this information is also 97Depending on your installation, this information is also available in
89available in 98.Xr gnunet 7 and
90\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 99.Xr gnunet-c-tutorial 7 .
100.\".Sh HISTORY
101.\".Sh AUTHORS
102.Sh BUGS
103Report bugs by using
104.Lk https://bugs.gnunet.org
105or by sending electronic mail to
106.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/gnunet.conf.5.in b/doc/man/gnunet.conf.5.in
index 560704784..82340996a 100644
--- a/doc/man/gnunet.conf.5.in
+++ b/doc/man/gnunet.conf.5.in
@@ -1,4 +1,27 @@
1.\" -*- mode: nroff -*- 1.\" -*- mode: nroff -*-
2.\" This file is part of Ascension.
3.\" Copyright (C) 2012-2015,2018,2019 GNUnet e.V.
4.\"
5.\" Permission is granted to copy, distribute and/or modify this document
6.\" under the terms of the GNU Free Documentation License, Version 1.3 or
7.\" any later version published by the Free Software Foundation; with no
8.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
9.\" copy of the license is included in the file
10.\" ``FDL-1.3''.
11.\"
12.\" A copy of the license is also available from the Free Software
13.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
14.\"
15.\" Alternately, this document is also available under the General
16.\" Public License, version 3 or later, as published by the Free Software
17.\" Foundation. A copy of the license is included in the file
18.\" ``GPL3''.
19.\"
20.\" A copy of the license is also available from the Free Software
21.\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
22.\"
23.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
24.\"
2.TH GNUNET.CONF "5" "October 26, 2018" "GNUnet" 25.TH GNUNET.CONF "5" "October 26, 2018" "GNUnet"
3.SH NAME 26.SH NAME
4gnunet.conf \- GNUnet configuration file 27gnunet.conf \- GNUnet configuration file
@@ -27,7 +50,7 @@ Default values for all of the options can be found in the files in the
27"$GNUNET_PREFIX/share/gnunet/config.d/" directory. A typical setup will 50"$GNUNET_PREFIX/share/gnunet/config.d/" directory. A typical setup will
28work out of the box with those. See the examples section below for 51work out of the box with those. See the examples section below for
29some common setups on top of that. 52some common setups on top of that.
30.SH General OPTIONS 53.SS GENERAL OPTIONS
31Many options will be common between sections. They can be repeated under 54Many options will be common between sections. They can be repeated under
32each section with different values. The "[PATHS]" section is special. 55each section with different values. The "[PATHS]" section is special.
33Here, it is possible to specify values for variables like "GNUNET_HOME". 56Here, it is possible to specify values for variables like "GNUNET_HOME".
@@ -85,7 +108,7 @@ The following options are generic and shared by all services:
85 Set to YES if this service should be run per-user, NO if this is a system 108 Set to YES if this service should be run per-user, NO if this is a system
86 service. End-users should never have to change the defaults GNUnet provides 109 service. End-users should never have to change the defaults GNUnet provides
87 for this option. 110 for this option.
88.SH ATS Options 111.SS ATS OPTIONS
89.IP UNSPECIFIED_QUOTA_IN 112.IP UNSPECIFIED_QUOTA_IN
90 quotes in KiB or MiB per seconds. Or use the word "unlimited" 113 quotes in KiB or MiB per seconds. Or use the word "unlimited"
91.IP UNSPECIFIED_QUOTA_OUT 114.IP UNSPECIFIED_QUOTA_OUT
@@ -109,12 +132,11 @@ The following options are generic and shared by all services:
109.SH EXAMPLES 132.SH EXAMPLES
110This example is a simple way to get started, using a server that has a known 133This example is a simple way to get started, using a server that has a known
111list of peers to get you started. Most users will be behind a firewall on 134list of peers to get you started. Most users will be behind a firewall on
112IPv4, as such NAT is enabled. Please rememeber to change your IP address 135IPv4, as such NAT is enabled. Please remember to change your IP address
113to the actual external address for your usage. 136to the actual external address for your usage.
114.PP 137.PP
115 [hostlist] 138 [hostlist]
116 OPTIONS = \-b 139 OPTIONS = \-b \-e
117 SERVERS = http://v9.gnunet.org:58080/
118 140
119 [nat] 141 [nat]
120 BEHIND_NAT = YES 142 BEHIND_NAT = YES
@@ -129,9 +151,6 @@ to the actual external address for your usage.
129.TP 151.TP
130~/.config/gnunet.conf 152~/.config/gnunet.conf
131GNUnet configuration file 153GNUnet configuration file
132.SH BUGS
133Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending
134electronic mail to <bug-gnunet@gnu.org>
135.SH SEE ALSO 154.SH SEE ALSO
136\fBgnunet\-setup\fP(1), \fBgnunet\-arm\fP(1) 155\fBgnunet\-setup\fP(1), \fBgnunet\-arm\fP(1)
137.PP 156.PP
@@ -155,3 +174,9 @@ will give you access to a tutorial for developers.
155Depending on your installation, this information is also 174Depending on your installation, this information is also
156available in 175available in
157\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 176\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7).
177.SH HISTORY
178.PP
179This man page first appeared in October 2012 in GNUnet.
180.SH BUGS
181Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending
182electronic mail to <bug-gnunet@gnu.org>
diff --git a/doc/man/produce_html.sh b/doc/man/produce_html.sh
new file mode 100755
index 000000000..ce6dea304
--- /dev/null
+++ b/doc/man/produce_html.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3existence()
4{
5 command -v "$1" >/dev/null 2>&1
6}
7
8if existence mandoc;
9then
10 for f in `find . -name \*\.[1-9]`;
11 do
12 mandoc -T html $f > $f.html;
13 done
14fi
diff --git a/doc/man/texi2mdoc-generation.sh b/doc/man/texi2mdoc-generation.sh
new file mode 100755
index 000000000..b88987cda
--- /dev/null
+++ b/doc/man/texi2mdoc-generation.sh
@@ -0,0 +1,15 @@
1#!/bin/sh
2# This script is in the public-domain.
3# GNUnet e.V. 2019
4#
5# Commentary: generate texi2mdoc output. This would be easier with
6# bmake / BSDmake, oh well.
7#
8# Excercise for future readers: don't fix this.
9
10# echo $(pwd)
11cd ../tutorial
12texi2mdoc -I$(pwd):$(pwd)/chapters gnunet-tutorial.texi > ../man/gnunet-c-tutorial.7
13# echo $(pwd)
14cd ../handbook
15texi2mdoc -I$(pwd):$(pwd)/chapters gnunet.texi > ../man/gnunet-documentation.7
diff --git a/doc/tutorial/Makefile.am b/doc/tutorial/Makefile.am
index d0fd14a4a..f3908aa99 100644
--- a/doc/tutorial/Makefile.am
+++ b/doc/tutorial/Makefile.am
@@ -8,7 +8,7 @@ docdir = $(datadir)/doc/gnunet/
8# $(DOT_FILES:%.dot=%.pdf) 8# $(DOT_FILES:%.dot=%.pdf)
9 9
10# See ../handbook/Makefile.am comment! 10# See ../handbook/Makefile.am comment!
11AM_MAKEINFOHTMLFLAGS = --no-split --css-include=docstyle.css 11AM_MAKEINFOHTMLFLAGS = --no-split --css-include=style.css --css-include=manual.css
12 12
13#DOT_OPTIONS = \ 13#DOT_OPTIONS = \
14# -Gratio=.9 -Gnodesep=.005 -Granksep=.00005 \ 14# -Gratio=.9 -Gnodesep=.005 -Granksep=.00005 \
@@ -93,12 +93,7 @@ version.texi/replacement/revert:
93 @echo "@set VERSION GPACKAGE_VERSION" > gversion.texi 93 @echo "@set VERSION GPACKAGE_VERSION" > gversion.texi
94 @echo "@set EDITION GPACKAGE_VERSION" >> gversion.texi 94 @echo "@set EDITION GPACKAGE_VERSION" >> gversion.texi
95 95
96if TEXI2MDOC_GENERATION 96
97gnunet-tutorial.7: version.texi/replacement
98 @echo Attempting to output an mdoc formatted section 7 document
99 @texi2mdoc -I$(pwd):$(pwd)/chapters gnunet-c-tutorial.texi > ../man/gnunet-c-tutorial.7
100# TODO: (Maybe) other outputs resulting from this.
101endif
102 97
103# FIXME: rm *.html and *.pdf 98# FIXME: rm *.html and *.pdf
104#doc-clean: 99#doc-clean:
diff --git a/doc/tutorial/gnunet-tutorial.texi b/doc/tutorial/gnunet-tutorial.texi
index ef3318cad..df75fb995 100644
--- a/doc/tutorial/gnunet-tutorial.texi
+++ b/doc/tutorial/gnunet-tutorial.texi
@@ -1,10 +1,10 @@
1\input texinfo 1\input texinfo
2@c %**start of header 2
3@setfilename gnunet-tutorial.info 3@setfilename gnunet-tutorial.info
4@documentencoding UTF-8 4@documentencoding UTF-8
5@settitle GNUnet Tutorial 5@settitle GNUnet Tutorial
6@c @exampleindent 2 6@c @exampleindent 2
7@c %**end of header 7
8 8
9@include version.texi 9@include version.texi
10 10
diff --git a/doc/tutorial/manual.css b/doc/tutorial/manual.css
index 404525dc2..0fe08b83c 100644
--- a/doc/tutorial/manual.css
+++ b/doc/tutorial/manual.css
@@ -1,6 +1,6 @@
1/* Style-sheet to use for manuals (copied from Emacs) */ 1/* Style-sheet to use for manuals (copied from Emacs) */
2 2
3@import url('/style.css'); 3@import url('style.css');
4 4
5/* makeinfo 6.5 converts @quotation to <blockquote>. Highlight them. */ 5/* makeinfo 6.5 converts @quotation to <blockquote>. Highlight them. */
6blockquote { 6blockquote {
diff --git a/doc/tutorial/run-gendocs.sh b/doc/tutorial/run-gendocs.sh
index 5e60a2d0f..b4899722c 100755
--- a/doc/tutorial/run-gendocs.sh
+++ b/doc/tutorial/run-gendocs.sh
@@ -7,7 +7,7 @@ make version.texi/replacement
7#mkdir gnunet-c-tutorial 7#mkdir gnunet-c-tutorial
8#mv * gnunet-c-tutorial/ 8#mv * gnunet-c-tutorial/
9#cd .. 9#cd ..
10./gendocs.sh --email gnunet-developers@gnu.org gnunet "GNUnet Reference Manual" -o "manual/gnunet" 10#./gendocs.sh --email gnunet-developers@gnu.org gnunet "GNUnet Reference Manual" -o "manual/gnunet"
11#cd manual 11#cd manual
12#mkdir handbook 12#mkdir handbook
13#mkdir ../tmp-gnunet 13#mkdir ../tmp-gnunet
diff --git a/doc/tutorial/style.css b/doc/tutorial/style.css
index 0c4525437..e5271197b 100644
--- a/doc/tutorial/style.css
+++ b/doc/tutorial/style.css
@@ -1,6 +1,6 @@
1/* This stylesheet is used by manuals and a few older resources. */ 1/* This stylesheet is used by manuals and a few older resources. */
2 2
3@import url('/reset.css'); 3@import url('reset.css');
4 4
5 5
6/*** PAGE LAYOUT ***/ 6/*** PAGE LAYOUT ***/