aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-04-18 18:43:54 +0000
committerng0 <ng0@n0.is>2019-04-18 18:43:54 +0000
commitbab2ea57b487b09236533d14bafb73c904439788 (patch)
treed41e90ff2a55181dc7d23d5900c752055a9c0c43
parenta72c48b86b0b5049f05d2637930d298a3d313daf (diff)
downloadgnunet-bab2ea57b487b09236533d14bafb73c904439788.tar.gz
gnunet-bab2ea57b487b09236533d14bafb73c904439788.zip
gnunet-publish.1
-rw-r--r--doc/man/gnunet-publish.1548
1 files changed, 242 insertions, 306 deletions
diff --git a/doc/man/gnunet-publish.1 b/doc/man/gnunet-publish.1
index 5f774580b..cd0dda8ff 100644
--- a/doc/man/gnunet-publish.1
+++ b/doc/man/gnunet-publish.1
@@ -1,347 +1,283 @@
1.TH GNUNET-PUBLISH "1" "November 16, 2015" "GNUnet" 1.\" This file is part of GNUnet.
2.SH NAME 2.\" Copyright (C) 2001-2019 GNUnet e.V.
3gnunet\-publish \- a command line interface for publishing new content into GNUnet 3.\"
4.SH SYNOPSIS 4.\" Permission is granted to copy, distribute and/or modify this document
5.B gnunet\-publish 5.\" under the terms of the GNU Free Documentation License, Version 1.3 or
6[\fIOPTIONS\fR] FILENAME 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.PP 8.\" copy of the license is included in the file
9In order to share files with other GNUnet users, the files must first 9.\" ``FDL-1.3''.
10be made available to GNUnet. 10.\"
11GNUnet does not automatically share all files from a certain directory 11.\" A copy of the license is also available from the Free Software
12(however, you can do this with the gnunet\-auto\-share tool). 12.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
13.\"
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 November 16, 2015
25.Dt GNUNET-PUBLISH 1
26.Sh NAME
27.Nm gnunet-publish
28.Nd
29a command line interface for publishing new content into GNUnet
30.Sh SYNOPSIS
31.Nm
32.Op Fl a Ar LEVEL | Fl \-anonymity= Ns Ar LEVEL
33.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
34.Op Fl D | \-disable\-extractor
35.Op Fl E | \-enable\-creation\-time
36.Op Fl e | \-extract
37.Op Fl h | \-help
38.Op Fl k Ar KEYWORD | Fl \-key= Ns Ar KEYWORD
39.Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
40.Op Fl m Ar TYPE:VALUE | Fl \-meta= Ns Ar TYPE:VALUE
41.Op Fl n | \-noindex
42.Op Fl N Ar ID | Fl \-next= Ns Ar ID
43.Op Fl p Ar PRIORITY | Fl \-prio= Ns Ar PRIORITY
44.Op Fl P Ar NAME | Fl \-pseudonym= Ns Ar NAME
45.Op Fl r Ar LEVEL | Fl \-replication= Ns Ar LEVEL
46.Op Fl s | \-simulate-only
47.Op Fl t Ar ID, \-this= Ns Ar ID
48.Op Fl u Ar URI | Fl \-uri= Ns Ar URI
49.Op Fl v | \-version
50.Op Fl V | \-verbose
51.Ao Ar FILENAME Ac
52.Sh DESCRIPTION
53In order to share files with other GNUnet users, the files must first be made available to GNUnet.
54GNUnet does not automatically share all files from a certain directory (however, you can do this with the gnunet\-auto\-share tool).
13In fact, even files that are downloaded are not automatically shared. 55In fact, even files that are downloaded are not automatically shared.
14.PP 56.Pp
15In order to start sharing files, the files must be added either using 57In order to start sharing files, the files must be added either using gnunet\-publish or a graphical interface such as gnunet\-fs\-gtk.
16gnunet\-publish or a graphical interface such as gnunet\-fs\-gtk. 58The command line tool gnunet\-publish is more useful if many files are supposed to be added.
17The command line tool gnunet\-publish is more useful if many files are 59gnunet\-publish can automatically publish batches of files, recursively publish directories, create directories that can be browsed within GNUnet and publish file lists in a namespace.
18supposed to be added. 60When run on a directory, gnunet\-publish will always recursively publish all of the files in the directory.
19gnunet\-publish can automatically publish batches of files, 61.Pp
20recursively publish directories, create directories that can be 62gnunet\-publish can automatically extract keywords from the files that are shared.
21browsed within GNUnet and publish file lists in a namespace. 63Users that want to download files from GNUnet use keywords to search for the appropriate content.
22When run on a directory, gnunet\-publish will always recursively
23publish all of the files in the directory.
24.PP
25gnunet\-publish can automatically extract keywords from the files that
26are shared.
27Users that want to download files from GNUnet use keywords to search
28for the appropriate content.
29You can disable keyword extraction with the \-D option. 64You can disable keyword extraction with the \-D option.
30You can manually add keywords using the \-k option. 65You can manually add keywords using the \-k option.
31The keywords are case\-sensitive. 66The keywords are case\-sensitive.
32.PP 67.Pp
33In addition to searching for files by keyword, GNUnet allows 68In addition to searching for files by keyword, GNUnet allows organizing files into directories.
34organizing files into directories. 69With directories, the user only needs to find the directory in order to be able to download any of the files listed in the directory.
35With directories, the user only needs to find the directory in order
36to be able to download any of the files listed in the directory.
37Directories can contain pointers to other directories. 70Directories can contain pointers to other directories.
38.PP 71.Pp
39With gnunet\-publish, it is easy to create new directories 72With gnunet\-publish, it is easy to create new directories simultaneously when adding the files.
40simultaneously when adding the files.
41Simply pass the name of a directory instead of a file. 73Simply pass the name of a directory instead of a file.
42.PP 74.Pp
43Since keywords can be spammed (any user can add any content under any 75Since keywords can be spammed (any user can add any content under any keyword), GNUnet supports namespaces.
44keyword), GNUnet supports namespaces. 76A namespace is a subset of the searchspace into which only the holder of a certain pseudonym can add content.
45A namespace is a subset of the searchspace into which only the holder 77Any GNUnet user can create any number of pseudonyms using \fBgnunet\-pseudonym\fR.
46of a certain pseudonym can add content. 78Pseudonyms are stored in the user's GNUnet directory.
47Any GNUnet user can create any number of pseudonyms using 79While pseudonyms are locally identified with an arbitrary string that the user selects when the pseudonym is created, the namespace is globally known only under the hash of the public key of the pseudonym.
48\fBgnunet\-pseudonym\fR. Pseudonyms are stored in the user's GNUnet 80Since only the owner of the pseudonym can add content to the namespace, it is impossible for other users to pollute the namespace.
49directory. 81gnunet\-publish automatically publishes the top\-directory (or the only file if only one file is specified) into the namespace if a pseudonym is specified.
50While pseudonyms are locally identified with an arbitrary string that 82.Pp
51the user selects when the pseudonym is created, the namespace is 83It is possible to update content in GNUnet if that content was placed and obtained from a particular namespace.
52globally known only under the hash of the public key of the pseudonym. 84Updates are only possible for content in namespaces since this is the only way to assure that a malicious party can not supply counterfeited updates.
53Since only the owner of the pseudonym can add content to the 85Note that an update with GNUnet does not make the old content unavailable, GNUnet merely allows the publisher to point users to more recent versions.
54namespace, it is impossible for other users to pollute the namespace. 86You can use the \-N option to specify the future identifier of an update.
55gnunet\-publish automatically publishes the top\-directory (or the 87When using this option, a GNUnet client that finds the current (\-t) identifier will automatically begin a search for the update (\-N) identifier.
56only file if only one file is specified) into the namespace if a 88If you later publish an update under the (\-N) identifier, both results will be given to the user.
57pseudonym is specified. 89.Pp
58.PP 90You can use automatic meta\-data extraction (based on libextractor) or the command\-line option \-m to specify meta-data.
59It is possible to update content in GNUnet if that content was placed
60and obtained from a particular namespace.
61Updates are only possible for content in namespaces since this is the
62only way to assure that a malicious party can not supply counterfeited
63updates.
64Note that an update with GNUnet does not make the old content
65unavailable, GNUnet merely allows the publisher to point users to more
66recent versions.
67You can use the \-N option to specify the future identifier of an
68update.
69When using this option, a GNUnet client that finds the current (\-t)
70identifier will automatically begin a search for the update (\-N)
71identifier.
72If you later publish an update under the (\-N) identifier, both
73results will be given to the user.
74.PP
75You can use automatic meta\-data extraction (based on libextractor) or
76the command\-line option \-m to specify meta-data.
77For the \-m option you need to use the form keyword\-type:value. 91For the \-m option you need to use the form keyword\-type:value.
78For example, use "\-m os:Linux" to specify that the operating system 92For example, use "\-m os:Linux" to specify that the operating system is Linux.
79is Linux. 93Common meta\-data types are "author", "title" , "mimetype", "filename", "language", "subject" and "keywords".
80Common meta\-data types are "author", "title" , "mimetype", 94A full list can be obtained from the extract tool using the option \-\-list.
81"filename", "language", "subject" and "keywords". 95The meta\-data is used to help users in searching for files on the network.
82A full list can be obtained from the extract tool using the option
83\-\-list.
84The meta\-data is used to help users in searching for files on the
85network.
86The keywords are case\-sensitive. 96The keywords are case\-sensitive.
87.PP 97.Pp
88GNUnet supports two styles of publishing files on the network. 98GNUnet supports two styles of publishing files on the network.
89Publishing a file means that a copy of the file is made in the local 99Publishing a file means that a copy of the file is made in the local (!) database of the node.
90(!) database of the node. 100Indexing a file means that an index is added to the local (!) database with symbolic links to the file itself.
91Indexing a file means that an index is added to the local (!) 101The links will use the SHA-512 hash of the entire file as the filename.
92database with symbolic links to the file itself. 102Indexing is generally significantly more efficient and the default choice.
93The links will use the SHA-512 hash of the entire file as the 103However, indexing only works if the indexed file can be read (using the same absolute path) by gnunet-service-fs.
94filename. 104If this is not the case, indexing will fail (and gnunet\-publish will automatically revert to publishing instead).
95Indexing is generally significantly more efficient and the default 105Regardless of which method is used to publish the file, the file will be slowly (depending on how often it is requested and on how much bandwidth is available) dispersed into the network.
96choice. 106If you publish or index a file and then leave the network, it will almost always NOT be available anymore.
97However, indexing only works if the indexed file can be read (using 107.Bl -tag -width Ds
98the same absolute path) by gnunet-service-fs. 108.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
99If this is not the case, indexing will fail (and gnunet\-publish will 109Use alternate config file FILENAME.
100automatically revert to publishing instead). 110If this option is not specified, the default is ~/.config/gnunet.conf).
101Regardless of which method is used to publish the file, the file will 111.It Fl D | \-disable\-extractor
102be slowly (depending on how often it is requested and on how much 112Disable use of GNU libextractor for finding additional keywords and metadata.
103bandwidth is available) dispersed into the network. 113.It Fl E | \-enable\-creation\-time
104If you publish or index a file and then leave the network, it will
105almost always NOT be available anymore.
106.PP
107\fB\-c \fIFILENAME\fR, \fB\-\-config=FILENAME\fR
108Use alternate config file (if this option is not specified, the
109default is ~/.config/gnunet.conf).
110.TP
111\fB\-D\fR, \fB\-\-disable\-extractor\fR
112Disable use of GNU libextractor for finding additional keywords and
113metadata.
114.TP
115\fB\-E\fR, \fB\-\-enable\-creation\-time\fR
116Enable use of creation time timestamp in metadata. 114Enable use of creation time timestamp in metadata.
117Setting this information will leak 115Setting this information will leak information about the time at which a file was made available.
118information about the time at which a file was made available. 116.It Fl e | \-extract
119.TP 117Print the list of keywords that will be used for each file given the current options.
120\fB\-e\fR, \fB\-\-extract\fR
121Print the list of keywords that will be used for each file given the
122current options.
123Do not perform any indexing or publishing. 118Do not perform any indexing or publishing.
124.TP 119.It Fl h | \-help
125\fB\-h\fR, \fB\-\-help\fR
126Print a brief help page with all the options. 120Print a brief help page with all the options.
127.TP 121.It Fl k Ar KEYWORD | Fl \-key= Ns Ar KEYWORD
128\fB\-k \fIKEYWORD\fR, \fB\-\-key=KEYWORD\fR 122Additional key to index the content with (to add multiple keys, specify multiple times).
129Additional key to index the content with (to add multiple keys,
130specify multiple times).
131Each additional key is case\-sensitive. 123Each additional key is case\-sensitive.
132Can be specified multiple times. 124Can be specified multiple times.
133The keyword is only applied to the top\-level file or directory. 125The keyword is only applied to the top\-level file or directory.
134.TP 126.It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
135\fB\-L \fILOGLEVEL\fR, \fB\-\-loglevel=\fILOGLEVEL\fR
136Change the loglevel. 127Change the loglevel.
137Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG. 128Possible values for LOGLEVEL are ERROR, WARNING, INFO and DEBUG.
138.TP 129.It Fl m Ar TYPE:VALUE | Fl \-meta= Ns Ar TYPE:VALUE
139\fB\-m \fITYPE:VALUE\fR, \fB\-\-meta=\fITYPE:VALUE\fR 130For the main file (or directory), set the metadata of the given TYPE to the given VALUE.
140For the main file (or directory), set the metadata of the given TYPE 131Note that this will not add the respective VALUE to the set of keywords under which the file can be found.
141to the given VALUE. 132.It Fl n | \-noindex
142Note that this will not add the respective VALUE to the set of
143keywords under which the file can be found.
144.TP
145\fB\-n\fR, \fB\-\-noindex\fR
146Executive summary: You probably don't need it. 133Executive summary: You probably don't need it.
147Do not index, full publishing. 134Do not index, full publishing.
148Note that directories, information for keyword search, namespace 135Note that directories, information for keyword search, namespace search and indexing data are always published (even without this option).
149search and indexing data are always published (even without this 136With this option, every block of the actual files is stored in encrypted form in the block database of the local peer.
150option). 137While this adds security if the local node is compromised (the adversary snags your machine), it is significantly less efficient compared to on\-demand encryption and is definitely not recommended for large files.
151With this option, every block of the actual files is stored in 138.It Fl N Ar ID | Fl \-next= Ns Ar ID
152encrypted form in the block database of the local peer. 139Specifies the next identifier of a future version of the file to be published under the same pseudonym.
153While this adds security if the local node is compromised (the
154adversary snags your machine), it is significantly less efficient
155compared to on\-demand encryption and is definitely not recommended
156for large files.
157.TP
158\fB\-N \fIID\fR, \fB\-\-next=\fIID\fR
159Specifies the next identifier of a future version of the file to be
160published under the same pseudonym.
161This option is only valid together with the \-P option. 140This option is only valid together with the \-P option.
162This option can be used to specify what the identifier of an updated 141This option can be used to specify what the identifier of an updated version will look like.
163version will look like.
164Note that specifying \-i and \-N without \-t is not allowed. 142Note that specifying \-i and \-N without \-t is not allowed.
165.TP 143.It Fl p Ar PRIORITY | Fl \-prio= Ns Ar PRIORITY
166\fB\-p \fIPRIORITY\fR, \fB\-\-prio=\fIPRIORITY\fR
167Executive summary: You probably don't need it. 144Executive summary: You probably don't need it.
168Set the priority of the published content (default: 365). 145Set the priority of the published content (default: 365).
169If the local database is full, GNUnet will discard the content with 146If the local database is full, GNUnet will discard the content with the lowest ranking.
170the lowest ranking.
171Note that ranks change over time depending on popularity. 147Note that ranks change over time depending on popularity.
172The default should be high enough to preserve the locally published 148The default should be high enough to preserve the locally published content in favor of content that migrates from other peers.
173content in favor of content that migrates from other peers. 149.It Fl P Ar NAME | Fl \-pseudonym= Ns Ar NAME
174.TP 150For the top\-level directory or file, places the file into the namespace identified by the pseudonym NAME.
175\fB\-P \fINAME\fR, \fB\-\-pseudonym=\fINAME\fR
176For the top\-level directory or file, places the file into the
177namespace identified by the pseudonym NAME.
178NAME must be a valid pseudonym managed by gnunet\-identity. 151NAME must be a valid pseudonym managed by gnunet\-identity.
179.TP 152.It Fl r Ar LEVEL | Fl \-replication= Ns Ar LEVEL
180\fB\-r \fILEVEL\fR, \fB\-\-replication=\fILEVEL\fR
181Set the desired replication level. 153Set the desired replication level.
182If CONTENT_PUSHING is set to YES, GNUnet will push each block (for the 154If CONTENT_PUSHING is set to YES, GNUnet will push each block (for the file) LEVEL times to other peers before doing normal "random" replication of all content.
183file) LEVEL times to other peers before doing normal "random" 155This option can be used to push some content out into the network harder.
184replication of all content. 156Note that pushing content LEVEL times into the network does not guarantee that there will actually be LEVEL replicas.
185This option can be used to push some content out into the network 157.It Fl s | \-simulate-only
186harder. 158When this option is used, gnunet\-publish will not actually publish the file but just simulate what would be done.
187Note that pushing content LEVEL times into the network does not 159This can be used to compute the GNUnet URI for a file without actually sharing it.
188guarantee that there will actually be LEVEL replicas. 160.It Fl t Ar ID, \-this= Ns Ar ID
189.TP 161Specifies the identifier under which the file is to be published under a pseudonym.
190\fB\-s\fR, \fB\-\-simulate-only\fR
191When this option is used, gnunet\-publish will not actually publish
192the file but just simulate what would be done.
193This can be used to compute the GNUnet URI for a file without actually
194sharing it.
195.TP
196\fB\-t \fIID\fR, \fB\-\-this=\fIID\fR
197Specifies the identifier under which the file is to be published under
198a pseudonym.
199This option is only valid together with the\ \-P option. 162This option is only valid together with the\ \-P option.
200.TP 163.It Fl u Ar URI | Fl \-uri= Ns Ar URI
201\fB\-u \fIURI\fR, \fB\-\-uri=\fIURI\fR 164This option can be used to specify the URI of a file instead of a filename (this is the only case where the otherwise mandatory filename argument must be omitted).
202This option can be used to specify the URI of a file instead of a 165Instead of publishing a file or directory and using the corresponding URI, gnunet\-publish will use this URI and perform the selected namespace or keyword operations.
203filename (this is the only case where the otherwise mandatory filename 166This can be used to add additional keywords to a file that has already been shared or to add files to a namespace for which the URI is known but the content is not locally available.
204argument must be omitted). 167.It Fl v | \-version
205Instead of publishing a file or directory and using the corresponding
206URI, gnunet\-publish will use this URI and perform the selected
207namespace or keyword operations.
208This can be used to add additional keywords to a file that has already
209been shared or to add files to a namespace for which the URI is known
210but the content is not locally available.
211.TP
212\fB\-v\fR, \fB\-\-version\fR
213Print the version number. 168Print the version number.
214.TP 169.It Fl V | \-verbose
215\fB\-V\fR, \fB\-\-verbose\fR
216Be verbose. 170Be verbose.
217Using this option causes gnunet\-publish to print progress information 171Using this option causes gnunet\-publish to print progress information and at the end the file identification that can be used to download the file from GNUnet.
218and at the end the file identification that can be used to download 172.El
219the file from GNUnet. 173.Ss SETTING ANONYMITY LEVEL
220.SH SETTING ANONYMITY LEVEL 174.Bl -tag -width Ds
221The \fB\-a\fR option can be used to specify additional anonymity 175.It Fl a Ar LEVEL | Fl \-anonymity= Ns Ar LEVEL
222constraints. 176.El
223If set to 0, GNUnet will publish the file non-anonymously and in fact 177.sp
224sign the advertisement for the file using your peer's private key. 178The \fB\-a\fR option can be used to specify additional anonymity constraints.
225This will allow other users to download the file as fast as possible, 179If set to 0, GNUnet will publish the file non-anonymously and in fact sign the advertisement for the file using your peer's private key.
226including using non-anonymous methods (DHT, direct transfer). 180This will allow other users to download the file as fast as possible, including using non-anonymous methods (DHT, direct transfer).
227If you set it to 1 (default), you use the standard anonymous routing 181If you set it to 1 (default), you use the standard anonymous routing algorithm (which does not explicitly leak your identity).
228algorithm (which does not explicitly leak your identity). 182However, a powerful adversary may still be able to perform traffic analysis (statistics) to over time infer data about your identity.
229However, a powerful adversary may still be able to perform traffic 183You can gain better privacy by specifying a higher level of anonymity, which increases the amount of cover traffic your own traffic will get, at the expense of performance.
230analysis (statistics) to over time infer data about your identity. 184Note that regardless of the anonymity level you choose, peers that cache content in the network always use anonymity level 1.
231You can gain better privacy by specifying a higher level of anonymity, 185.Pp
232which increases the amount of cover traffic your own traffic will get,
233at the expense of performance.
234Note that regardless of the anonymity level you choose, peers that
235cache content in the network always use anonymity level 1.
236.PP
237The definition of the ANONYMITY LEVEL is the following. 186The definition of the ANONYMITY LEVEL is the following.
2380 means no anonymity is required. 1870 means no anonymity is required.
239Otherwise a value of 'v' means that 1 out of v bytes of "anonymous" 188Otherwise a value of 'v' means that 1 out of v bytes of "anonymous" traffic can be from the local user, leaving 'v-1' bytes of cover traffic per byte on the wire.
240traffic can be from the local user, leaving 'v-1' bytes of cover 189Thus, if GNUnet routes n bytes of messages from foreign peers (using anonymous routing), it may originate n/(v-1) bytes of data in the same time\-period.
241traffic per byte on the wire. 190The time\-period is twice the average delay that GNUnet defers forwarded queries.
242Thus, if GNUnet routes n bytes of messages from foreign peers (using 191.Pp
243anonymous routing), it may originate n/(v-1) bytes of data in the same
244time\-period.
245The time\-period is twice the average delay that GNUnet defers
246forwarded queries.
247.PP
248The default is 1 and this should be fine for most users. 192The default is 1 and this should be fine for most users.
249Also notice that if you choose very large values, you may end up 193Also notice that if you choose very large values, you may end up having no throughput at all, especially if many of your fellow GNUnet\-peers all do the same.
250having no throughput at all, especially if many of your fellow 194.Sh EXAMPLES
251GNUnet\-peers all do the same. 195.Ss BASIC EXAMPLES
252.SH EXAMPLES 196Index a file COPYING:
253.PP 197.Pp
254\fBBasic examples\fR 198.Dl gnunet-publish COPYING
255.TP 199.Pp
256gnunet\-publish COPYING 200Publish a file COPYING:
257Index a file COPYING 201.Pp
258.TP 202.Dl gnunet\-publish \-n COPYING
259gnunet\-publish \-n COPYING 203.Pp
260Publish a file COPYING
261.TP
262gnunet\-publish \-k gpl \-k test COPYING
263Index a file COPYING with the keywords \fBgpl\fR and \fBtest\fR 204Index a file COPYING with the keywords \fBgpl\fR and \fBtest\fR
264.TP 205.Pp
265gnunet\-publish \-m "description:GNU License" \-k gpl \-k test \-m "mimetype:text/plain" COPYING 206.Dl gnunet\-publish \-k gpl \-k test COPYING
266Index a file COPYING with description "GNU License", mime-type 207.Pp
267"text/plain" and keywords \fBgpl\fR and \fBtest\fR 208Index a file COPYING with description "GNU License", mime-type "text/plain" and keywords \fBgpl\fR and \fBtest\fR
268.PP 209.Pp
269\fBUsing directories\fR 210.Dl gnunet\-publish \-m "description:GNU License" \-k gpl \-k test \-m "mimetype:text/plain" COPYING
270.TP 211.Pp
271mkdir gnu ; mv COPYING AUTHORS gnu/ ; gnunet\-publish \-k test \-k gnu \-D gnu/ 212.Ss USING DIRECTORIES
272Index the files COPYING and AUTHORS with keyword \fBtest\fR and build 213Index the files COPYING and AUTHORS with keyword \fBtest\fR and build a directory containing the two files.
273a directory containing the two files. Make the directory itself 214Make the directory itself available under keyword \fBgnu\fR and disable keyword extraction using libextractor
274available under keyword \fBgnu\fR and disable keyword extraction using 215.Pp
275libextractor 216.Dl mkdir gnu ; mv COPYING AUTHORS gnu/ ; gnunet\-publish \-k test \-k gnu \-D gnu/
276.TP 217.Pp
277gnunet\-publish \-n \-m "description:Kitten collection" \-k kittens kittendir/ 218Neatly publish an image gallery in \fBkittendir/\fR and its subdirs with keyword \fBkittens\fR for the directory but no keywords for the individual files or subdirs (\-n).
278Neatly publish an image gallery in \fBkittendir/\fR and its subdirs
279with keyword \fBkittens\fR for the directory but no keywords for the
280individual files or subdirs (\-n).
281Force description for all files. 219Force description for all files.
282.PP 220.Pp
283\fBSecure publishing with namespaces\fR 221.Dl gnunet\-publish \-n \-m "description:Kitten collection" \-k kittens kittendir/
284.TP 222.Pp
285gnunet\-publish \-P RIAA-2 \-t gpl COPYING 223.Ss SECURE PUBLISHING WITH NAMESPACES
286Publish file COPYING with pseudonym RIAA-2 (\-P) and with identifier 224Publish file COPYING with pseudonym RIAA-2 (\-P) and with identifier \fBgpl\fR (\-t) and no updates.
287\fBgpl\fR (\-t) and no updates 225.Pp
288.TP 226.Dl gnunet\-publish \-P RIAA-2 \-t gpl COPYING
289gnunet\-publish \-P RIAA-2 \-t MUSIC \-N VIDEOS /home/ogg 227.Pp
290Recursively index /home/ogg and build a matching directory 228Recursively index /home/ogg and build a matching directory structure.
291structure. Publish the top\-level directory into the namespace under 229Publish the top\-level directory into the namespace under the pseudonym RIAA\-2 (\-P) under identifier 'MUSIC' (\-t) and promise to provide an update with identifier 'VIDEOS' (\-N):
292the pseudonym RIAA\-2 (\-P) under identifier 'MUSIC' (\-t) and promise 230.Pp
293to provide an update with identifier 'VIDEOS' (\-N): 231.Dl gnunet\-publish \-P RIAA-2 \-t MUSIC \-N VIDEOS /home/ogg
294.TP 232.Pp
295gnunet\-publish \-nV /var/lib/mysql 233Recursively publish (\-n) /var/lib/mysql and build a matching directory structure, but disable the use of libextractor to extract keywords (\-n).
296Recursively publish (\-n) /var/lib/mysql and build a matching 234Print the file identifiers (\-V) that can be used to retrieve the files.
297directory structure, but disable the use of libextractor to extract 235This will store a copy of the MySQL database in GNUnet but without adding any keywords to search for it.
298keywords (\-n). 236Thus only people that have been told the secret file identifiers printed with the \-V option can retrieve the (secret?) files:
299Print the file identifiers (\-V) that can be used to retrieve the 237.Pp
300files. 238.Dl gnunet\-publish \-nV /var/lib/mysql
301This will store a copy of the MySQL database in GNUnet but without 239.Pp
302adding any keywords to search for it. 240Create a namespace entry 'root' in namespace MPAA-1 and announce that the next update will be called 'next':
303Thus only people that have been told the secret file identifiers 241.Pp
304printed with the \-V option can retrieve the (secret?) files: 242.Dl gnunet\-publish \-P MPAA-1 \-t root \-N next noise.mp3
305.TP 243.Pp
306gnunet\-publish \-P MPAA-1 \-t root \-N next noise.mp3
307Create a namespace entry 'root' in namespace MPAA-1 and announce that
308the next update will be called 'next':
309.TP
310gnunet\-publish \-P MPAA-1 \-t next noise_updated.mp3
311Update the previous entry, do not allow any future updates: 244Update the previous entry, do not allow any future updates:
312.SH FILES 245.Pp
246.Dl gnunet\-publish \-P MPAA-1 \-t next noise_updated.mp3
247.Pp
248.Sh FILES
313.TP 249.TP
314~/.config/gnunet.conf 250~/.config/gnunet.conf
315GNUnet configuration file 251GNUnet configuration file
316.SH BUGS 252.Sh SEE ALSO
317Report bugs to <https://bugs.gnunet.org/> or by sending electronic 253.Xr gnunet-auto-share 1 ,
318mail to <gnunet\-developers@gnu.org> 254.Xr gnunet-fs-gtk 1 ,
319.SH SEE ALSO 255.Xr gnunet-search 1 ,
320\fBgnunet\-auto\-share\fP(1) 256.Xr gnunet-download 1 ,
321\fBgnunet\-fs\-gtk\fP(1) 257.Xr gnunet.conf 5 ,
322\fBgnunet\-search\fP(1) 258.Xr extract 1 ,
323\fBgnunet\-download\fP(1) 259.Xr gnunet-identity 1
324\fBgnunet.conf\fP(5) 260.sp
325\fBextract\fP(1) 261The full documentation for gnunet is maintained as a Texinfo manual.
326\fBgnunet\-identity\fP(1)
327.PP
328The full documentation for
329.B gnunet
330is maintained as a Texinfo manual.
331If the 262If the
332.B info 263.Xr info 1
333and 264and gnunet programs are properly installed at your site, the command
334.B gnunet 265.Pp
335programs are properly installed at your site, the command 266.Dl info gnunet
336.IP 267.Pp
337.B info gnunet
338.PP
339should give you access to the complete handbook, 268should give you access to the complete handbook,
340.IP 269.Pp
341.B info gnunet-c-tutorial 270.Dl info gnunet-c-tutorial
342.PP 271.Pp
343will give you access to a tutorial for developers. 272will give you access to a tutorial for developers.
344.PP 273.sp
345Depending on your installation, this information is also 274Depending on your installation, this information is also available in
346available in 275.Xr gnunet 7 and
347\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7). 276.Xr gnunet-c-tutorial 7 .
277.\".Sh HISTORY
278.\".Sh AUTHORS
279.Sh BUGS
280Report bugs by using
281.Lk https://bugs.gnunet.org
282or by sending electronic mail to
283.Aq Mt gnunet-developers@gnu.org .