gtk-gnutella is a
peer-to-peer file sharing application which runs on the
gnutella network. gtk-gnutella uses the
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprie ...
toolkit for its
graphical user interface. Released under the
GNU General Public License, gtk-gnutella is
free software.
History
Initially gtk-gnutella was written to look like the original
Nullsoft Gnutella client. The original author Yann Grossel stopped working on the client in early 2001. After a while Raphael Manfredi took over as the main software architect, and the client has been in active development ever since. Versions released after July 2002 do not look like the original Nullsoft client.
Features
gtk-gnutella is programmed in
C with an emphasis on efficiency and portability without being minimalistic but rather head-on with most of the modern features of the gnutella network. Therefore, it requires fewer resources (such as
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
and/or
RAM) than the major gnutella clients. It can also be used as
headless gnutella client not requiring
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprie ...
at all.
gtk-gnutella has a filtering engine that can reduce the amount of spam and other irrelevant results. gtk-gnutella supports a large range of the features of modern gnutella clients. gtk-gnutella was the first gnutella client to support
IPv6 and encryption using
TLS
TLS may refer to:
Computing
* Transport Layer Security, a cryptographic protocol for secure computer network communication
* Thread level speculation, an optimisation on multiprocessor CPUs
* Thread-local storage, a mechanism for allocating vari ...
. It can handle and export
magnet links. It has strong
internationalization features, supporting English, German, Greek, French, Hungarian, Spanish, Japanese, Norwegian, Dutch and Chinese. gtk-gnutella also has support to prevent
spamming and other hostile peer activity.
Several software distributions provide pre-compiled packages, but they are usually outdated as many distributions version freeze old stable releases. The gnutella network benefits from running the latest version obtainable as peer and hostile IP address lists change rapidly, making building the latest SVN snapshot the best option. There are also pre-compiled packages for many Linux distribution
available online Persons concerned about security might wish to compile their own. The gtk-gnutella sources use
dist as build and configuration system instead of
Autoconf. Most users are only familiar with the configure scripts generated by the latter. Another hazard for novices is configuring
NAT devices to enable full network connectivity for gtk-gnutella. gtk-gnutella, like any gnutella client, is still usable behind a
firewall or a
router, but with some reduced functionality, if it cannot receive incoming
TCP
TCP may refer to:
Science and technology
* Transformer coupled plasma
* Tool Center Point, see Robot end effector
Computing
* Transmission Control Protocol, a fundamental Internet standard
* Telephony control protocol, a Bluetooth communication s ...
connections or
UDP packets. In an attempt to mitigate the issue for newcomers, gtk-gnutalla implements the
UPnP
Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the n ...
and
NAT-PMP client protocols.
gtk-gnutella supports features for downloading larger files (videos, programs, and disk images). Version 0.96.4 supports
Tiger tree
In cryptography and computer science, a hash tree or Merkle tree is a tree in which every "leaf" (node) is labelled with the cryptographic hash of a data block, and every node that is not a leaf (called a ''branch'', ''inner node'', or ''inode'') ...
hash serving and versions after 0.96.5 support tiger tree hashes for uploads and downloads. Tiger tree hashing and other gtk-gnutella features make file transfers as efficient as
BitTorrent. Specifically, gtk-gnutella supports partial file sharing, remote queueing and files larger than 4
GiB. Overlap checking was the only mechanism to guard against bad data prior to versions 0.96.4. Overlap checking does not guard against malicious corruption like
Tiger tree
In cryptography and computer science, a hash tree or Merkle tree is a tree in which every "leaf" (node) is labelled with the cryptographic hash of a data block, and every node that is not a leaf (called a ''branch'', ''inner node'', or ''inode'') ...
hashing does.
Version 0.96.6 introduced preliminary support for a
Kademlia DHT, which was completed in version 0.96.7. The DHT is replacing search by
SHA-1, when locating alternate sources for a known file or looking for push-proxies. In version 0.96.7, the DHT is enabled by default. LimeWire first developed the DHT and named it Mojito DHT.
Version 0.96.9 introduced full native support for
UPnP
Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the n ...
and
NAT-PMP, making the usage behind a compatible router much easier since there is no longer any need to manually forward ports on the firewall. In this version the code was also ported to
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
however the Windows port is still considered beta due to lack of wide testing so far.
Version 0.96.9 also introduced important DHT protection against
Sybil attacks, using algorithms based on statistical properties.
Version 0.97 was a major release, introducing client-side support for
HTTP pipelining, "What's New?" queries,
MIME type query filtering, GUESS support (Gnutella UDP Extension for Scalable Searches) and partial file querying. Although many Gnutella vendors already supported server-side GUESS, gtk-gnutella introduced the client-side as well, also enhancing the original specifications of the protocol to make it truly usable.
Version 0.98.2 employs a minor patch to correct
malloc memory allocations and multiple threads issues, mainly on
Ubuntu 11.10 operating systems. This 2011 gtk-gnutella version was also dedicated to the memory of
Dennis Ritchie
Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist. He is most well-known for creating the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B p ...
, 1941-2011.
Version 0.98.4 added RUDP (reliable
UDP) and improved partial file transfers.
Version 1.1 is a major release which added
G2 support: gtk-gnutella will now connect to the G2 network in leaf mode. This allows searches from G2 nodes and lets local queries be propagated to the G2 network as well. File exchanges with G2 hosts are fully inter-operable and are permitted without restriction.
Popularity
gtk-gnutella does not rank as one of the most popular clients on GnutellaNet crawls. gtk-gnutella developers' proposals have been incorporated into many gnutella clients.
In 2011, gtk-gnutella vendor extensions are the third most prolific on the GDF (Gnutella Developer Forum), following Limewire and Bearshare.
Salon listed gtk-gnutella as one of the five most popular gnutella applications in 2002.
Salon lists gtk-gnutella as one of the top five gnutella clients. (2002)
XoloX and Toadnode, also in the list, are no longer actively developed.
Notes
References
*
*
*
*
*
External links
gtk-gnutella homepage
{{GTK
Free file sharing software
Gnutella clients
File sharing software that uses GTK
File sharing software for Linux
Free software programmed in C
Cross-platform software