User:Ng0/drafts/gnunet

GNUnet is a framework for secure, distributed, peer-to-peer networking. The high-level goal is to provide a strong foundation of free software for a global, distributed network which provides security and privacy. GNUnet in that sense aims to replace the current internet protocol stack. Along with an application for secure publication of files, it has grown to include all kinds of basic applications for the foundation of a GNU internet.

Kernel
For GNUnet on GNU/Linux you need to have for some GNUnet services (VPN, DNS, EXIT).

Emerge
Install :

For graphical tools, install :

Emerge messages
To configure 1) Add desired user(s) to the 'gnunet' group    2) Edit the system-wide config file '/etc/gnunet/gnunet.conf' preferably using 'gnunet-setup -c /etc/gnunet/gnunet.conf' ('gnunet-setup' is part of the gnunet-gtk package) 3) You may want to choose other bootstrap nodes than the ones       provided in /usr/share/gnunet/hellos or remove them if you        want to run GNUnet another way.     4) Certain services will require '/dev/net/tun' to exist, which you must enable in your kernel. For further troubleshooting and info, take a look at the wiki page about gnunet.

Configuration
GNUnet can be configured systemwide, additionally it per user overwrites happen in gnunet.conf. The Systemwide configuration is handled in, per user configuration is done either through gnunet-setup which comes with ) or by editing the above mentioned file.

Systemwide Configuration
During emerge of gnunet, the following file is created for default minimal configuration:

After the configuration file has been modified or gnunet-setup was run, proceed to the appropriate service section for the target init system.

The complete options for configuration can be found in for gnunet and  for gnunet-gtk. GNUnet comes with sane defaults which will work.

OpenRC
To start immediately:

To start the gnunet service on system boot, add it to the default runlevel:

Systemd
To start immediately:

To start the gnunet service on system boot:

Terminology
Add explanations of commonly used words here.

Using GNUnet
GNUnet comes with a broad range of services, which will be described here. (48 services total)

gnunet-gtk
Graphical Interaction with gnunet.

Publish Files
gnunet-fs-gtk is a file sharing client without distracting extras

Publishing files can be done either through gnunet-gtk, or directly on the commandline. The following assumes you have the gnunet service started and gnunet configured:

For default values, you can use:

* gnunet-publish cats.avi

Furthermore, you can add options:

* -a, --anonymity=LEVEL     set the desired LEVEL of sender-anonymity * -D, --disable-extractor   do not use libextractor to add keywords or metadata * -d, --disable-creation-timedisable adding the creation time to the metadata of the uploaded file * -e, --extract             print list of extracted keywords that would be used, but do not perform upload * -k, --key=KEYWORD         add an additional keyword for the top-level file or directory (this option can be specified multiple times) * -m, --meta=TYPE:VALUE     set the meta-data for the given TYPE to the given VALUE * -n, --noindex             do not index, perform full insertion (stores entire file in encrypted form in GNUnet database) * -P, --pseudonym=NAME      publish the files under the pseudonym NAME (place file into namespace) * -p, --priority=PRIORITY   specify the priority of the content * -r, --replication=LEVEL   set the desired replication LEVEL * -u, --uri=URI             URI to be published (can be used instead of passing a file to add keywords to the file with the respective URI) * -V, --verbose             be verbose (print progress information)

Get Involved
Read up on how to report bugs and how to get involved with development here: []

There are various projects around GNUnet, SecuShare as the social component [], Taler []

Development depends on individual projects, for example SecuShare works with the latest svn of gnunet, which can be emerged with the gnunet-9999 version.