gnunet-search - a command line interface to search for content on
gnunet-search [OPTIONS] [+]KEYWORD [[+]KEYWORD]*
gnunet-search [OPTIONS] [+]URI
Search for content on GNUnet. The keywords are case-sensitive.
gnunet-search can be used both for a search in the global namespace as
well as for searching a private subspace.
-a LEVEL, --anonymity=LEVEL
The -a option can be used to specify additional anonymity
constraints. If set to 0, GNUnet will try to download the file
as fast as possible without any additional slowdown for
anonymous routing. Note that you may still have some amount of
anonymity depending on the current network load and the power of
the adversary. Use at least 1 to force GNUnet to use anonymous
This option can be used to limit requests further than that. In
particular, you can require GNUnet to have a certain amount of
cover traffic from other peers before sending your queries. This
way, you can gain very high levels of anonymity - at the expense
of much more traffic and much higher latency. So set this option
to values beyond 1 only if you really believe you need it.
The definition of ANONYMITY-RECEIVE is the following: If the
value v is 0, anonymous routing is not required. For 1,
anonymous routing is required, but there is no lower bound on
how much cover traffic must be present. For values > 1 and <
1000, it means that if GNUnet routes n bytes of messages from
foreign peers, it may originate n/v bytes of queries in the same
time-period. The time-period is twice the average delay that
GNUnet deferrs forwarded queries. If the value v is >= 1000, it
means that if GNUnet routes n bytes of QUERIES from at least (v
% 1000) peers, it may originate n/v/1000 bytes of queries in the
The default is 1 and this should be fine for most users. Also
notice that if you choose values above 1000, you may end up
having no throughput at all, especially if many of your fellow
GNUnet-peers do the same.
-c FILENAME, --config=FILENAME
use config file (defaults: ~/.gnunet/gnunet.conf)
print help page
-H HOSTNAME, --host=HOSTNAME
on which host is gnunetd running (default: localhost). You can
also specify a port using the syntax HOSTNAME:PORT. The default
port is 2087.
-L LOGLEVEL, --loglevel=LOGLEVEL
Change the loglevel. Possible values for LOGLEVEL are NOTHING,
FATAL, ERROR, WARNING, INFO, STATUS and DEBUG. Note that
options in the configuration file take precedence over this
option (the argument will be ignored in that case).
-o PREFIX, --output=PREFIX
Writes the encountered (unencrypted) RBlocks or SBlocks to files
with name PREFIX.XXX, where XXX is a number. This is useful to
keep search results around.
print the version number
As most GNUnet command-line tools, gnunet-search supports passing
arguments using environment variables. This can improve your privacy
since otherwise the search terms will likely be visible to other local
users. Setting "GNUNET_ARGS" will cause the respective string to be
appended to the actual command-line and to be processed the same way as
arguments given directly at the command line.
You can run gnunet-search with an URI instead of a keyword. The URI
can have the format for a namespace search or for a keyword search.
For a namespace search, the format is
gnunet://ecrs/sks/NAMESPACE/IDENTIFIER. For a keyword search, use
gnunet://ecrs/ksk/KEYWORD[+KEYWORD]*. If the format does not
correspond to a GNUnet URI, GNUnet will automatically assume that
keywords are supplied directly.
If multiple keywords are passed, gnunet-search will look for content
matching any of the keywords. The prefix "+" makes a keyword
$ gnunet-search "Das Kapital"
searches for content matching the keyword "Das Kapital". Whereas
$ gnunet-search +Das +Kapital
Searches for content matching both mandatory keywords "Das" and
Search results are printed by gnunet-search like this:
gnunet-download -o "COPYING" gnunet://ecrs/chk/HASH1.HASH2.SIZE
Description: The GNU Public License
The first line contains the command to run to download the file. The
suggested filename in the example is COPYING. The GNUnet URI consists
of the key and query hash of the file and finally the size of the file.
After the command to download the file GNUnet will print meta-data
about the file as advertised in the search result, here "The GNU Public
License" and the mime-type (see the options for gnunet-insert on how to
supply meta-data by hand).
GNUnet configuration file; specifies the default value for the
Report bugs by using mantis <https://gnunet.org/bugs/> or by sending
electronic mail to <email@example.com>
gnunet-gtk(1), gnunet-insert(1), gnunet-download(1),
gnunet-pseudonym(1), gnunet.conf(5), gnunetd(1)