About GNUnet
GNUnet is a framework for secure peer-to-peer networking that does not use any centralized or otherwise trusted services. A first service implemented on top of the networking layer allows anonymous censorship-resistant file-sharing. Anonymity is provided by making messages originating from a peer indistinguishable from messages that the peer is routing. All peers act as routers and use link-encrypted connections with stable bandwidth utilization to communicate with each other. GNUnet uses a simple, excess-based economic model to allocate resources. Peers in GNUnet monitor each others behavior with respect to resource usage; peers that contribute to the network are rewarded with better service.
GNUnet is part of the GNU project. Our official GNU website can be found at http://www.gnu.org/software/gnunet/. GNUnet can be downloaded from this site or the GNU mirrors.
There are two graphical user interfaces for the GNUnet framework. You can download them separately; some screenshots are available.
Why GNUnet?
The first question that developers of any of the dozens of emerging P2P networks (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) should probably answer is why yet another network? GNUnet was started in late 2001 with a set of new technical ideas for secure peer-to-peer networking. Most of the key technical contributions behind GNUnet are described in detail in our research papers. The ideas include an improved content encoding (ECRS, the encoding for censorship resistant sharing) and a new protocol for anonymous routing (gap). Properties of the content encoding and the routing protocol allow GNUnet to reward contributing peers with better service using an excess-based economic model for resource allocation. Furthermore, GNUnet is extensible and makes it easy to build new peer-to-peer applications or add alternative network transports to the base system. When GNUnet was started, existing systems were investigated (at the time in particular Freenet and mnet) to find a starting point. However, the conclusion was that the envisioned system was too far from the existing codebases to benefit from building on top of any of those.
GNUnet continues to improve both in terms of technical ideas and implementation, often thanks to discussions with developers from related projects. Probably the most well-known such project is TOR, a peer-to-peer network that acts as a proxy which anonymizes low-latency TCP traffic. TOR is general in design and lacks features that would be specific to (anonymous) file-sharing, such as searching, swarming or caching.
In conclusion, we believe that GNUnet is (or at least will become) the best solution for (anonymous) file-sharing. The key technical ideas continue to distinguish GNUnet from other projects with similar goals. Some GNUnet developers also have the ambition to provide a good general infrastructure for developing new peer-to-peer protocols. In the meantime, users that are looking for faster, non-anonymous solutions or to anonymize their HTTP traffic should probably look elsewhere.
News
Older news can be found here.
- 2009-12-29: GNUnet 0.8.1 released
-
Download GNUnet 0.8.1 here.
Noteworthy improvements since GNUnet 0.8.1 are:- Improved DHT routing algorithm for non-anonymous search using fisheye-DV neighborhood routing
- Non-anonymous downloads using fisheye-DV neighborhood routing when possible
- Neighbor-selection code for anonymous routing was improved
- Command line tools can now be used in ways that do not leak activity to local users (#1467)
- gnunet-gtk can now be started minimized (#1395)
- gnunet-pseudonym now uses a more sane default priority for namespace advertisements (#1472)
- Fixed various HTTP transport-related crashes (#1487)
- Missing image files are now (again) included in gnunet-gtk (#1475)
- Corrected description of keyword options in gnunet-search man page (#1468)
- Corrected descriptions on pseudonyms in gnunet-insert man page (#1480)
- Double-clicking a column no longer starts downloads in gnunet-gtk (#1474)
- Clicking download twice no longer starts a second download in gnunet-gtk (#1485)
- gnunet-search now recognizes search URIs and does not treat them as keywords (#1492)
- Various other minor bugs were also fixed
Helping GNUnet
Help is always welcome.
Here are some ideas:
- join our IRC channel #gnunet on freenode and our community and help newcomers
- write easy setup instructions
- build universal static binaries and upload them
- build binary packages for your OS/distribution and upload them
- Fix bugs or contribute new code
Roadmap
Here is the current development plan:
- fix bugs
- improve testbed harness to allow automated testing and profiling
- extend GTK UI (unindex, better support for collections and directories, integrated configuration)
- complete and integrate DHT implementation
- make VPN module easy to use
- design and implement secure chat
- create a secure and decentralized e-mail system
- add transport for direct use of WiFi (skip TCP/IP layer)
- add HTTPS transport