Gtk-gnutella
   HOME

TheInfoList



OR:

gtk-gnutella is a
peer-to-peer file sharing Peer-to-peer file sharing is the distribution and sharing of digital media using peer-to-peer (P2P) networking technology. P2P file sharing allows users to access media files such as books, music, movies, and games using a P2P software program th ...
application which runs on the
gnutella Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model. In June 2005, Gnutella's population was 1.81 million compute ...
network. gtk-gnutella uses the GTK+ toolkit for its
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
. Released under the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
, gtk-gnutella is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
.


History

Initially gtk-gnutella was written to look like the original
Nullsoft Nullsoft, Inc. was an American software house founded in Sedona, Arizona, in 1997 by Justin Frankel. Its products included the Winamp media player and the SHOUTcast MP3 streaming media server. In later years, their open source installer s ...
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 and/or
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * ...
) 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 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv ...
and encryption using TLS. It can handle and export
magnet link Magnet is a URI scheme that defines the format of magnet links, a de facto standard for identifying files ( URN) by their content, via cryptographic hash value rather than by their location. Although magnet links can be used in a number of co ...
s. It has strong
internationalization In economics, internationalization or internationalisation is the process of increasing involvement of enterprises in international markets, although there is no agreed definition of internationalization. Internationalization is a crucial strateg ...
features, supporting English, German, Greek, French, Hungarian, Spanish, Japanese, Norwegian, Dutch and Chinese. gtk-gnutella also has support to prevent
spamming Spamming is the use of messaging systems to send multiple unsolicited messages (spam) to large numbers of recipients for the purpose of commercial advertising, for the purpose of non-commercial proselytizing, for any prohibited purpose (especia ...
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 GNU Autoconf is a tool for producing configure scripts for building, installing, and packaging software on computer systems where a Bourne shell is available. Autoconf is agnostic about the programming languages used, but it is often used for ...
. 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 Firewall may refer to: * Firewall (computing), a technological barrier designed to prevent unauthorized or unwanted communications between computer networks or hosts * Firewall (construction), a barrier inside a building, designed to limit the spr ...
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 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 NAT Port Mapping Protocol (NAT-PMP) is a network protocol for establishing network address translation (NAT) settings and port forwarding configurations automatically without user effort. The protocol automatically determines the external IPv4 a ...
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 The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit ...
. 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 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. Kademl ...
DHT, which was completed in version 0.96.7. The DHT is replacing search by
SHA-1 In cryptography, SHA-1 (Secure Hash Algorithm 1) is a cryptographically broken but still widely used hash function which takes an input and produces a 160-bit (20- byte) hash value known as a message digest – typically rendered as 40 hexadec ...
, 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 NAT Port Mapping Protocol (NAT-PMP) is a network protocol for establishing network address translation (NAT) settings and port forwarding configurations automatically without user effort. The protocol automatically determines the external IPv4 a ...
, 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 Sibyls were oracular women believed to possess prophetic powers in ancient Greece. Sybil or Sibyl may also refer to: Films * ''Sybil'' (1921 film) * ''Sybil'' (1976 film), a film starring Sally Field * ''Sybil'' (2007 film), a remake of the 19 ...
s, using algorithms based on statistical properties. Version 0.97 was a major release, introducing client-side support for
HTTP pipelining HTTP pipelining is a feature of HTTP/1.1 which allows multiple HTTP requests to be sent over a single TCP connection without waiting for the corresponding responses. HTTP/1.1 requires servers to respond to pipelined requests correctly, with non-p ...
, "What's New?" queries,
MIME Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of email messages to support text in character sets other than ASCII, as well as attachments of audio, video, images, and application programs. Message ...
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 C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions in the C standard library, namely , , , and . The C++ programming language includes t ...
memory allocations and multiple threads issues, mainly on
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
11.10 operating systems. This 2011 gtk-gnutella version was also dedicated to the memory of Dennis Ritchie, 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