GNUnet

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

GNUnet is a framework for secure peer-to-peer networking that does not use any centralized or otherwise trusted services. Currently, the service implemented on the framework serves to perform censorship-resistant file-sharing.

See also Wikipedia:GNUnet.

Installation

GNUnet can be installed with the gnunetAUR package. If you also want to use the graphical interface, install gnunet-gtkAUR. Alternatively, for the most recent experimental version, the git versions are available on AUR as well, under gnunet-gitAUR and gnunet-gtk-gitAUR respectively.

Configuration

Start and possibly enable the gnunet service.

Alternatively, to start the peer immediately in a terminal:

# gnunet-arm -s

See also How to start and stop a GNUnet peer.

Usage

Downloading

To use gnunet-gtk to download a file, just search for the file in the Filesystem tab. When you see the file you want, just download it as you would with any other P2P file-sharing program. Start it with:

# gnunet-fs-gtk

Uploading

Uploading files to the gnunet network is more complicated. GNUnet differentiates between indexing a file and inserting a file. The details can be read at the framework's website. The following steps explain how to share data with the network, and are a shortened form of the instructions found on this page.

The following steps may have to be done manually. A module, called gnunet-fuseAUR, has been developed to make this process easier for a user.

To index a file/directory

gnunet-insert [-n] [-k keword1] [-k keyword 2] [-m TYPE:VALUE] filename

It is not required to add keywords, but it is recommended. This is because GNUnet does not allow searching by filename, but by keywords. Libextractor, which is a dependency of gnunet, will extract keywords from the file, but you may wish to enter keywords of your own. The -m option is for meta-data. This is data (about the file) that other users of gnunet will see when your files show up during their searches. For further details, see the gnunet.org online documentation. The -n option is used to insert a file/directory into the gnunet MySQL/sqlite database, instead of just indexing it.

To unindex a file/directory

gnunet-unindex

Suppose you have forgotten which files you indexed, you can look up the pointers in the directory /var/lib/gnunet/data/shared, where GNUNET_HOME=/var/lib/gnunet (set by gnunet-setup -d).

Warning: Do not edit this directory yourself, use gnunet-insert and gnunet-unindex to make changes. This is because gnunet uses a database to store file information, and deleting (or modifying) the contents of the directory will not remove the entries in the gnunet database.

Modifying and removing indexed files

  • When you modify a file, the URI of the file changes. Therefore, GNUnet considers this to be a completely different file. Therefore, make sure that the original file is unindexed (using the gnunet-unindex command), modify the file, and then index the new file to make it accessible through the network.
  • If you want to move/remove a file from your system, then you should unindex it first.

Chat

GNUNet has a chat module implemented, for which a third-party GTK graphical user interface is available (cadet-gtk-gitAUR).

Web User Interface

A Web interface for GNUnet exists and is available on AUR as gnunet-webui-gitAUR.