Gtk-gnutella
Encyclopedia
gtk-gnutella is a peer-to-peer file sharing
application which runs on the gnutella
network. gtk-gnutella uses the GTK+
toolkit for its graphical user interface
. Released under the GNU General Public License
, gtk-gnutella is free software
.
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.
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 less resources (such as CPU
and/or RAM
) than the major gnutella clients. It can also be used as headless
gnutella client not requiring Gtk+
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
. 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 distributions 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
connections or UDP
packets. In an attempt to mitigate the issue for newcomers, gtk-gnutalla implements the UPnP 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 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 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.
Version 0.96.9 introduced full native support for UPnP 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
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 attack
s, 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.
Every year, the gtk-gnutella developers release a new "stable" version. Revision control versions have a "u" appended to the version; the "u" standing for unstable. Unstable versions from SVN are outdated in 3 months. Stable releases become outdated after one year.
gtk-gnutella tracks other gtk-gnutella versions seen on the gnutella
network. If newer versions are seen, the user is notified, but an update is not mandated. If ancient versions of gtk-gnutella are seen, they are treated suspiciously.
Salon listed gtk-gnutella as one of the five most popular gnutella applications in 2002. XoloX and Toadnode, also in the list, are no longer actively developed.
Peer-to-peer file sharing
P2P or Peer-to-peer file sharing allows users to download files such as music, movies, and games using a P2P software client that searches for other connected computers. The "peers" are computer systems connected to each other through internet. Thus, the only requirements for a computer to join...
application which runs on the gnutella
Gnutella
Gnutella is a large peer-to-peer network which, at the time of its creation, was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model...
network. gtk-gnutella uses the GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...
toolkit for its graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
. Released under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
, gtk-gnutella is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
.
History
Initially gtk-gnutella was written to look like the original NullsoftNullsoft
Nullsoft, Inc. is a software house founded in Sedona, Arizona in 1997 by Justin Frankel. Its most known products include the Winamp media player and the SHOUTcast MP3 streaming media server. In recent years, their open source installer system, NSIS, has also risen in popularity as a widely used...
Gnutella client. The original author Yann Grossel stopped working on the client in early 2001. After a while Raphael Manfredi
Raphael Manfredi
Raphaël Manfredi has been the author of many open-source programs since 1990.He is currently the main software architect of gtk-gnutella but has also made numerous contributions to Perl.- External links :*- References :...
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 CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
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 less resources (such as CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
and/or RAM
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...
) than the major gnutella clients. It can also be used as headless
Headless system
A headless system is a computer system or device that has been configured to operate without a monitor , keyboard and mouse...
gnutella client not requiring Gtk+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...
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
IPv6
Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...
and encryption using TLS
Transport Layer Security
Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...
. It can handle and export magnet links. It has strong internationalization
Internationalization
In economics, internationalization has been viewed as a process of increasing involvement of enterprises in international markets, although there is no agreed definition of internationalization or international entrepreneurship...
features, supporting English, German, Greek, French, Hungarian, Spanish, Japanese, Norwegian, Dutch and Chinese. gtk-gnutella also has support to prevent spamming
Spam (electronic)
Spam is the use of electronic messaging systems to send unsolicited bulk messages indiscriminately...
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 distributions 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
Autoconf
GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available....
. Most users are only familiar with the configure scripts generated by the latter. Another hazard for novices is configuring NAT
Network address translation
In computer networking, network address translation is the process of modifying IP address information in IP packet headers while in transit across a traffic routing device....
devices to enable full network connectivity for gtk-gnutella. gtk-gnutella, like any gnutella client, is still usable behind a firewall
Firewall (computing)
A firewall is a device or set of devices designed to permit or deny network transmissions based upon a set of rules and is frequently used to protect networks from unauthorized access while permitting legitimate communications to pass....
or a router, but with some reduced functionality, if it cannot receive incoming TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
connections or UDP
User Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...
packets. In an attempt to mitigate the issue for newcomers, gtk-gnutalla implements the UPnP 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 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
Gib
Gib may refer to:* A castrated male cat or ferret* Gibibit , measurement unit of digitally stored computer information* Gibraltar, British overseas territory* Drywall, construction material...
. 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 hashing does.
Version 0.96.6 introduced preliminary support for a Kademlia
Kademlia
Kademlia is a distributed hash table for decentralized peer-to-peer computer networks designed by Petar Maymounkov and David Mazières in 2002. It specifies the structure of the network and the exchange of information through node lookups. Kademlia nodes communicate among themselves using UDP. A...
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.
Version 0.96.9 introduced full native support for UPnP 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
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
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 attack
Sybil attack
The Sybil attack in computer security is an attack wherein a reputation system is subverted by forging identities in peer-to-peer networks. It is named after the subject of the book Sybil, a fictional case study of a woman with multiple personality disorder...
s, using algorithms based on statistical properties.
Version 0.97 was a major release, introducing client-side support for HTTP pipelining
HTTP pipelining
HTTP pipelining is a technique in which multiple HTTP requests are sent on a single HTTP connection without waiting for the corresponding responses....
, "What's New?" queries, MIME
Internet media type
An Internet media type, originally called a MIME type after MIME and sometimes a Content-type after the name of a header in several protocols whose value is such a type, is a two-part identifier for file formats on the Internet.The identifiers were originally defined in RFC 2046 for use in email...
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.
Release history
Version | Date |
---|---|
0.97 | 18 July 2011 |
0.96.9 | 14 March 2011 |
0.96.8 | 21 March 2010 |
0.96.7 | 7 March 2010 |
0.96.6 | 29 March 2009 |
0.96.5 | 2 April 2008 |
0.96.4 | 7 July 2007 |
0.96.3 | 9 November 2006 |
0.96.2 | 16 October 2006 |
0.96.1 | 22 February 2006 |
0.96 | 24 January 2006 |
Every year, the gtk-gnutella developers release a new "stable" version. Revision control versions have a "u" appended to the version; the "u" standing for unstable. Unstable versions from SVN are outdated in 3 months. Stable releases become outdated after one year.
gtk-gnutella tracks other gtk-gnutella versions seen on the gnutella
Gnutella
Gnutella is a large peer-to-peer network which, at the time of its creation, was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model...
network. If newer versions are seen, the user is notified, but an update is not mandated. If ancient versions of gtk-gnutella are seen, they are treated suspiciously.
Popularity
gtk-gnutella does not rank as one of the most popular clients on GnutellaNet crawls. However, until 0.96.9 it was only released for Unix-like operating systems, which are about 10% of the general computing population. gtk-gnutella developers' proposals have been incorporated into many gnutella clients. gtk-gnutella vendor extensions are the third most prolific on the GDF, following Limewire and Bearshare.Salon listed gtk-gnutella as one of the five most popular gnutella applications in 2002. XoloX and Toadnode, also in the list, are no longer actively developed.
External links
- gtk-gnutella homepage
- IRC: [irc://irc.freenode.net/#gtk-gnutella #gtk-gnutella] on freenodeFreenodefreenode, formerly known as Open Projects Network, is an IRC network used to discuss peer-directed projects. Their servers are all accessible from the domain name [irc://chat.freenode.net chat.freenode.net], which load balances connections by using the actual servers in rotation...