GNUnet

GNUnet
Developer(s)GNUnet e.V.[1]
Initial releaseNovember 5, 2001; 23 years ago (2001-11-05)
Stable release0.19.4 (April 1, 2023; 19 months ago (2023-04-01)[2]) [±]
Repository
Written inC[3]
Operating systemofficial: Free software operating systems (Linux, FreeBSD, NetBSD, OpenBSD);
unofficial: Other operating systems (OS X, Windows)
Available inSpanish, English, Russian, German, French
TypeAnonymous P2P, Friend-to-friend
License2018: AGPL-3.0-or-later[a][4]
2007: GPL-3.0-or-later[b]
2001: GPL-2.0-or-later[c]
Websitegnunet.org
Christian Grothoff, maintainer of GNUnet, in Berlin on August 1, 2013 at the "#youbroketheinternet. We'll make ourselves a GNU one." event.

GNUnet is a software framework for decentralized, peer-to-peer networking and an official GNU package. The framework offers link encryption, peer discovery, resource allocation, communication over many transports (such as TCP, UDP, HTTP, HTTPS, WLAN and Bluetooth) and various basic peer-to-peer algorithms for routing, multicast and network size estimation.[5][6]

GNUnet's basic network topology is that of a mesh network. GNUnet includes a distributed hash table (DHT) which is a randomized variant of Kademlia that can still efficiently route in small-world networks. GNUnet offers a "F2F topology" option for restricting connections to only the users' trusted friends. The users' friends' own friends (and so on) can then indirectly exchange files with the users' computer, never using its IP address directly.

GNUnet uses Uniform resource identifiers (not approved by IANA, although an application has been made).[when?] GNUnet URIs consist of two major parts: the module and the module specific identifier. A GNUnet URI is of form
gnunet://module/identifier where module is the module name and identifier is a module specific string.

The primary codebase is written in C, but there are bindings in other languages to produce an API for developing extensions in those languages. GNUnet is part of the GNU Project. It has gained interest in the hacker community after the PRISM revelations.[7]

GNUnet consists of several subsystems, of which essential ones are Transport and Core subsystems.[8] Transport subsystem provides insecure link-layer communications, while Core provides peer discovery and encryption.[9] On top of the core subsystem various applications are built.

GNUnet includes various P2P applications in the main distribution of the framework, including filesharing, chat and VPN; additionally, a few external projects (such as secushare) are also extending the GNUnet infrastructure.

GNUnet is unrelated to the older Gnutella P2P protocol. Gnutella is not an official GNU project, while GNUnet is.[10]

  1. ^ GNUnet.org – About GNUnet e.V.
  2. ^ Schanzenbach, Martin (2023-04-01). "GNUnet 0.19.4". gnunet.org. Retrieved 2023-04-03.
  3. ^ GNUnet Source Code
  4. ^ "license notice placed at the top in one of the source files of the project's repository, probably in each of its source files". Retrieved June 8, 2018. GNUnet is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  5. ^ EvansPolotGrothoff 2012.
  6. ^ Grothoff, Christian (2017-10-10). The GNUnet System (habilitation thesis). Université de Rennes 1.
  7. ^ Grothoff 2013.
  8. ^ FerreiraGrothoffRuth 2003, Figure 1.
  9. ^ FerreiraGrothoffRuth 2003, II. GNUNET AND THE TRANSPORT LAYER: "The core is responsible for link-to-link encryption, binding of node identities to routable addresses, and peer discovery."
  10. ^ "GNU Software". Software - GNU Project - Free Software Foundation. Free Software Foundation, Inc. Retrieved 25 January 2020.


Cite error: There are <ref group=lower-alpha> tags or {{efn}} templates on this page, but the references will not show without a {{reflist|group=lower-alpha}} template or {{notelist}} template (see the help page).