Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Gtk-gnutella
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Features == gtk-gnutella is programmed in [[C (programming language)|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 [[Central processing unit|CPU]] and/or [[Random-access memory|RAM]]) than the major gnutella clients. It can also be used as [[headless computer|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 [[Transport Layer Security|TLS]]. It can handle and export [[magnet link]]s. 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 [[Network address translation|NAT]] devices to enable full network connectivity for gtk-gnutella. gtk-gnutella, like any gnutella client, is still usable behind a [[Firewall (computing)|firewall]] or a [[Router (computing)|router]], but with some reduced functionality, if it cannot receive incoming [[Transmission Control Protocol|TCP]] connections or [[User Datagram Protocol|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,<ref>{{cite web| url = https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/doc/gnutella/PFSP| archive-url = https://archive.today/20120629060932/https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/doc/gnutella/PFSP| url-status = dead| archive-date = 2012-06-29| last = Klingberg| first = Tor| title = Partial File Sharing Protocol| publisher = Tor Klingberg| year = 2002}}</ref> remote queueing<ref>{{cite web| url = https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/doc/gnutella/PARQ| archive-url = https://archive.today/20120629060932/https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/doc/gnutella/PARQ| url-status = dead| archive-date = 2012-06-29| last = Manfredi| first = Raphael| title = Passive/Active Remote Queueing| publisher = Raphael Manfredi| year = 2003}}</ref> and files larger than 4 [[GiB]].<ref>{{cite web | url=https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/LF | archive-url=https://archive.today/20120604235811/https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/LF | url-status=dead | archive-date=2012-06-04 | title=The 'LF' GGEP Extension | year=2004 }}</ref> 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.<ref>{{cite web | url=https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/ChangeLog | archive-url=https://archive.today/20120629060933/https://gtk-gnutella.svn.sourceforge.net/svnroot/gtk-gnutella/trunk/gtk-gnutella/ChangeLog | url-status=dead | archive-date=2012-06-29 | title=gtk-gnutella ChangeLog }}</ref> 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<ref>{{cite web|url=http://wiki.limewire.org/index.php?title=Mojito? |title=Limewire Forum (defunct), Mojito DHT }}{{dead link|date=June 2016|bot=medic}}{{cbignore|bot=medic}}</ref> Mojito DHT. 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.<ref>{{cite web | url=http://hal.inria.fr/docs/00/49/05/09/PDF/HotP2P10-KAD_DHT_attack_mitigation-cholez.pdf | title = Efficient DHT Attack Mitigation Through Peer's ID Distribution}}</ref> Version 0.97 was a major release, introducing client-side support for [[HTTP pipelining]], "What's New?" queries, [[Internet media type|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 (operating system)|Ubuntu]] 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 [[User Datagram Protocol|UDP]]) and improved partial file transfers.<ref>{{cite web | url=https://github.com/gtk-gnutella/gtk-gnutella/blob/master/ChangeLog | title = GitHub gtk-gnutella ChangeLog| website = [[GitHub]]}}</ref> Version 1.1 is a major release which added [[Gnutella2|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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)