9 November 2006, Version 0.96.3 Released
17 October 2006, Version 0.96.2 Released
22 February 2006, Version 0.96.1 Released
24 January 2006, Version 0.96 Released
See the news page for details on these releases.
27 November 2004, Version 0.95 Released
With the release of version 0.95 gtk-gnutella supports the state-of-the-art features of the Gnutella network. In terms of Gnutella features version 0.94 is now considered a deprecated servent. Every gtk-gnutella user must upgrade to 0.95 as soon as possible to get the expected performance from the network and keep it healthy.
- GUI updates:
- Enable drag and drop for magnet links
- [GTK1] Search results have less columns, and the hit details are now displayed in a separate pane underneath.
- Visual progress indicator correctly shows newly downloaded fragments, shows fragments currently available for download more accurately, and active downloads are marked with arrows.
- The maximum amount of search results has been lowered to 1000. Please use filters or more specific queries to find what you are looking for if you get many search results.
- A detailed view has been added to the search results to show all available information for a search result.
- The status bar will now give feedback about the contacted host caches.
- Gnutella node stats can now show how many bytes were sent/received.
- In the node pane, right-clicking now allows to configure which columns should be displayed, just like in the search pane.
- More general statistics in the stats pane. It is possible to see TCP and/or UDP traffic stats separately (for messages only, not flow-control).
- Bitzi support has been added to retrieve additional information on possible downloads. See http://bitzi.com/ for details.
- The geographic location of hosts can now be shown courtesy of MaxMind.
- Recently developed features of the Gnutella network are now
- High outdegree provides better connectivity between Gnutella hosts. The maximum TTL in the network is now 4 and ultra nodes must maintain at least a connection with 30 peers.
- Last-hop QRP between ultra peers.
- Dynamic querying support, allows selective querying of peers instead of simply broadcasting the query. It is used for leaf queries and for your queries when running as an ultra node.
- OOB (out of band) query hits lets other servents deliver search results directly to you instead of going through the Gnutella network.
- OOB proxied queries, allowing direct hit delivery at the ultra node level for queries emitted by legacy leaves.
- GTKG will now prevent firewalled hosts from running as ultra nodes.
- In "auto mode", GTKG will revert to leaf mode when uploads are stalling at an abnormally high rate, indicating bandwidth is saturated.
- UDP is now also supported as a transport protocol in addition to TCP. You may need to make changes to your firewall settings to take full advantage of this. The UDP port used is the same as the one used for TCP.
- Firewall detection has been improved to include UDP firewalling detection.
- Clock skew computation for hosts not running NTP has been redesigned. Also, GTKG will now automatically detect a locally running NTP.
- Large file support has been added, so that files over 2 Gb can be used.
- Japanese translation added.
- French and German translation updated.
10. July 2004, Version 0.94 released
While 0.93 was improved for stability with the 0.93.4 release, the just released 0.94 contains some nice new features, while it should be at least as stable as 0.93.4:
- GUI updates:
- File info pane renamed to "Downloads".
- Downloads pane renamed to "Sources".
- Progress of a download can now be visualized. This will show which fragment of a file has been downloaded, which fragment gtk-gnutella is currently downloading and which fragments are availalbe on the Gnutella network.
- Uploads and download sources pane now contain a visual progressbar.
- The GTK2 GUI can now be resized smaller than a width of 933 pixels.
- Search results now include an extension column, so you can sort by file extension if needed.
- The Gnet stats panel and the statusbar now include horizon statistics.
- New Gnutella extension HSEP/0.2 included. This will give you an estimation of the horizon size. This includes the number of reachable nodes, files and the total size of all files on the network.
- The remote shell now includes a command "HORIZON", which will output horizon stats.
- If no default port is specified, gtk-gnutella will now bind to a random port and will use that port from then on.
If you are behind a firewall and have routed a port to gtk-gnutella, please check that gtk-gnutella is still running on the port you want it to!
- Will parse up to 150 hosts in a gwebcache reply to bootstrap from.
- New hostcache to make gtk-gutella connect to the network more quickly.
- Dutch translation updated.
- German translation updated.
- Spanish translation updated.
- French translation updated.
- Hungarian translation updated.
These are changes made since 0.93.2 stable:
- New node info display configuration: show library size / number of files shared, configurable from the Config / User interface pane.
- Number of file descriptors currently used for banning is now shown.
- Increased search results sorting speed for GTK1.
- Moved "close" button for searches to a more convenient position, in the upper right corner.
- Default number of node connections raised to 12 now that many servents support high outdegree.
- Eradication of memory leaks.
- Enhanced flow-control algorithm that will more aggressively drop packets (including query hits) when the connection remains clogged for too long. This new "swift" mode is indicated by the 'S' flag instead of 'F'.
- Bug fixes: #846755, #876011, #857075, #874596, #859761, #762121.
Source Code: gtk-gnutella-0.93.3.tar.bz2
Debian-3.0 (stable) Package: gtk-gnutella_0.93.3-0_i386.deb
Unofficial Redhat-9, Mandrake-9.2, and Slackware-9.1 packages are available on eqom14's web site. See the README file there for instructions on how to verify these gpg-signed packages.
These are changes made since 0.93.1 stable:
Numerous GUI updates:
- GTK1 now supports grouped searches and grouped downloads, like GTK2 did.
- GTK1 and GTK2 GUIs were brought in sync feature-wise, as much as possible.
- Gnet pane will now show leaf nodes and normal nodes in light gray.
- Fixed memory leak problems in the GTK2 interface that slipped into 0.93.1.
- Bandwidth requirements to become an ultranode were lowered significantly. This is due to the filtering of SHA1 queries through QRP now, instead of systematically forwarding them: gtk-gnutella assumes all servents out there include the SHA1 URNs in their QRP tables.
- As a result of the above, default amount of leaf nodes was increased.
- Added a special fix for BearShare: the HTTP headers which gtk-gnutella emitted used continuations, and were well-formed, but BearShare was misparsing those, causing it to enter an endless loop...
- Search results are now buffered by the GUI for burst updates, which reduces CPU usage and the amount of redrawing significantly. The buffering time is configurable from the GUI.
- gtk-gnutella is now fully compliant with LimeWire regarding I18N queries, provided you have the ICU library. Otherwise, it should be OK for roman charsets only.
Source Code: gtk-gnutella-0.93.2.tar.bz2
Debian-3.0 (stable) Package: gtk-gnutella.gtk1_0.93.2-0_i386.deb
These are changes made since 0.93 stable:
- Simplified the GUI for non-experts. Beginners will now see less curious things on the screen, until they become more acquainted and turn on "expert" mode.
Many improvements in the GUI:
- The Gnutella node information displayed can now be configured in detail, and is by default reduced to four statistics only.
- It is possible to hide the handshaking version and the Uptime column from the Gnutella pane.
- When running in auto mode, show the criteria for becoming an ultranode.
- The leaf node bandwidth odometers are by default automatically hidden when running as a leaf node.
- GUI refreshing has been optimized so we don't unnecessarily refresh screens that the user is not looking at. The downside is that when moving to that screen, stale data is presented for about 1 second until the refreshing takes place.
- 0.93 was not reporting uploaded partial files as such to downloading peers.
- Remote control "shell" is now compiled in by default but needs to be explicitly enabled in the GUI to become operational.
- Improved connectivity between ultrapeers to avoid frequent disconnection due to "activity timeout".
- Was misparsing query hits bearing alt-locs attached to each hit, causing GTKG to possibly drop those hits and close the connection when coming from an immediate neighbour.
- When restarting a search from menu, re-enable it automatically if it was disabled (fixes bug #864348).
- Upon restart, a disabled search will now be shown in gray in the search list (fixes bug #857972) -- feature only implemented for GTK1.
- Many other little changes that we'll let you discover...
Source Code: gtk-gnutella-0.93.1.tar.bz2
Debian-3.0 (stable) Package: gtk-gnutella_0.93.1-0_i386.deb
Redhat-9 RPM: gtk-gnutella-0.93.1-1.gtk1.i586.rpm
Redhat-9 SRPM: gtk-gnutella-0.93.1-1.gtk1.src.rpm
Mandrake-9.2 RPM: gtk-gnutella-0.93.1-0.gtk1.1mdk.i586.rpm
Mandrake-9.2 SRPM: gtk-gnutella-0.93.1-0.gtk1.1mdk.src.rpm
Slackware-9.1 Package: gtk-gnutella-gtk1-0.93.1-i586-1.tgz
These are changes made since 0.92.1 stable:
- gtk-gnutella now supports Partial File serving, both as a client and as a server. As soon as a download is started, it can be used as an alternate source for others even though the download is not completed yet.
- When a mismatch happens during downloading, the file can now be automatically removed and restarted again.
- Improved GUI to specify better which downloads should be cleared from the list (completed, failed, unavailable).
- Collects alternate download locations acquired from query hits.
- Support for hostname instead of only an ip. If you have a dynamic ip but got a static hostname, for example a .dyndns.org address, gtk-gnutella can try to connect to the ip associated with the hostname.
- Sends out alternate locations which should not be tried.
- Won't send full headers when short on bandwith.
- Any changes in settings are now automatically saved, there is no need to quit the client anymore to make sure the settings are saved.
- Running gtk-gnutella in Auto peermode should no longer cause a crash.
- New addresses in hostiles.txt to protect against malicious hosts.
- gwcache.boot was cleaned up. Dead links were removed.
- Remote control should actually work without crashing gtk-gnutella.
- The build problems which occured in 0.92.1 due to the switch to metaconfig should be (mostly) gone.
- Code cleanup to build on more platforms.
- GTK2 interface currently does not have a maintainer, not all options which are available in the GTK1 interface might have made it in the GTK2 interface.
Source Code: gtk-gnutella-0.93.tar.bz2
Redhat-9 Package: gtk-gnutella-0.93-1.i586.rpm
Debian-3.0 (stable) Package: gtk-gnutella_0.93.0-0_i386.deb
Suse-8.2 Package: gtk-gnutella-0.93-1suse82.i386.rpm
Slackware-9.1 Package: gtk-gnutella-0.93-i586-1.tgz
These are changes made since 0.92 stable:
- Support for push proxies was added which reduces problems with firewalled servents.
- Support for pre-0.90 configuration files has been dropped.
- Improved PARQ and fixed some problems with it.
- The default directories for downloads are now set to $HOME.
- A lot of minor bugfixes and code clean-ups so that it compiles on even more platforms and with other (C99) compilers.
- GTKG can now monitor unstable IP addresses and unstable servents, to avoid keeping connecting to bad nodes.
- The download pane now shows how many items are actively and passively queued.
- The search pane allows one to hide hits that are either ignored or which have been already queued up by the core due to a matching SHA1 or filename.
- The "Purge" button could be hidden due to long filenames (#770625).
- A duplicate free() problem was fixed in _search_send_packet() (#706014).
- The "Purge" button no longer cause crashes (#757276).
- A bug which could cause a crash when resuming a download was fixed (#739262).
The following changes affect only the GTK+ 2.x front-end:
- XFT support is not turned off by default.
- The node and the uploads panel have been tuned (a little).
- No more crashes if the uploads are sorted by status.
- Non-UTF-8 encoded were passed to GTK+ 2.x causing warnings (#769342)
The following changes affect the build system:
- Switched to metaconfig, and abandoned autoconf/automake. There may be some portability issues introduced on non-linux system since there are lots of new metaconfig units that had to be developed for the configuration of GTKG. In the long run, it will catch up.
- The "intl" directory containing GNU gettext() is no longer supported, because it is currently only configurable via autoconf. If you don't have proper GNU gettext() support on your system, you might have to disable NLS support to be able to compile.
Here are some of the changes since 0.91.1:
- Now supports Ultrapeers, which means GTKG can work as an ultra node or as a leaf node. You can still run as a normal node, although this is not something wise to do, because that will likely relegate you to a small part of the Gnutella network.
- New icons for showing node state (leaf or ultra mode).
- The GTK2 front-end is no longer experimental, albeit it is slower than the GTK1.2 front-end. This is due to the somewhat inefficient implementation of the underlying GTK library. Don't use GTK2 unless you have the equivalent of a 1 GHz Intel chip.
- Added client-side PFSP support (partial file sharing). GTKG can download from servers holding partial files.
- Added full PARQ support (Passive / Active Remote Queuing), both for upload and downloads.
- New Gnet statistics: flow-controlled packets per TTL and hops.
- The "Type" column in the Gnet connection pane was turned into "Flags".
- Added support for GGEP in pings/pongs/pushes: those packets are now accepted and forwarded to connections advertising GGEP support.
- New "use surplus bandwidth" setting: all unused bandwidth for Gnet or HTTP can be stolen by the other in case it needs some.
- Added count for total bytes uploaded and downloaded.
- Added support for vendor-specific messages.
- New hops-flow support: remote flow-controlled connections can now warn us that they are flow-controlling us, and so we can drop queries immediately instead of sending them, saving outgoing bandwidth.
- Will now show the GTKG version in query hits.
- The queue now shows the count of alive downloads, as well as the queue count. An "alive" download is an entry for which the remote server replies.
- Changed the connection algorithm: will now attempt to connect to more nodes than really configured, dropping the surplus connections later, when needed at all.
- Filters out hostile IP addresses.
- New "Fileinfo" pane in the download screen. Not finished, but will show the currently registered downloads and their status.
- Domain name resolution for Gnutella web cache are now done asynchronously. The GUI will no longer freeze due to a DNS request.
- Some performance improvements: removed the most important bottlenecks.
Here are some of the changes since 0.91:
- Will now verify the SHA1 of downloaded files in the background.
- New configuration parameter for the directory where "bad files" not matching their advertised SHA1 should be put (don't forget to configure it, as it defaults to /tmp).
- Files are now copied in the background, so it is possible to setup the various "download" directories on different filesystems.
- Node connection time and remote node's uptime (if available) are now shown.
- It is now possible to paste a "magnet:" URI in the search to launch a SHA1 search.
- The "connection indicator" at the bottom left is now a toggle. Depressing it will terminate any Gnet connection but will continue to serve uploads and process downloads.
- The active download status now shows how many sources are available and how many are currently active (i.e. downloading). It will also show the estimated remaining time for the whole file, as well as the global reception rate for the file, accounting for all currently active sources.
- Fixed bug that prevented proper downloading from recent BearShare (4.1.x or better) and Shareaza (1.6.0.x or better) nodes when the SHA1 of the file is known.
- Will now protect against "PUSH floods" by banning the relevant IPs.
- At startup, scan the download "tmp" dir for orphan files and reintegrate them into the fileinfo database, moving completed files to the relevant directory (depending on whether its SHA1 checked OK).
- Minor bug fixing: improper countdown for push timeout when falling back, fixed corner-case processing that could lead to crashes or incorrect behaviour, accidental localization on X-Live-Since headers, freezing of the GUI when clearing many uploads, obscure portability fixes.
Here are some of the changes since 0.90:
- Now uses HTTP/1.1, which implies support for persistent connections.
- gtk-gnutella will now monitor whether we're connected to Internet and slow down its connection requests when it detects the connection was broken (after a delay of ~3 minutes at most).
- Download swarming is now supported: gtk-gnutella will download different portions of the same file from many hosts, as long as alternate sources are available.
- The download mesh (alternate source collection during downloads) is now used to fill the download queue with more sources.
- Alternate locations can also be passively collected from query hits. You can enable this in the swarming section on the download config pane.
- Download scheduling was entirely redesigned to avoid hammering busy hosts and scale to 5000+ entries in the queue without slowing down the whole.
- Is now smart about the "push" flag and will try to ignore it if possible, in case the remote host wrongly set the flag but is not firewalled.
- gtk-gnutella now remembers the files it downloaded and will ignore further requests to download the same file. It will visually mark those files, as well as the ones it already shares, by showing them in lighter color in the search results.
- It is possible to supply to gtk-gnutella your own ignore lists by SHA1 and by name/size but the feature is under-documented.
- Added an "expert mode". Only when this is enabled will gtk-gnutella show the users some of the most complex settings.
- New Gnutella statistics pane, showing the packets we sent and received, how many we generated, and the reasons why we drop packets, by packet type.
- Now understands UTF-8 queries, but does not generate them.
- Fixed important bugs whereby all earlier versions of gtk-gnutella were unintentionally corrupting the Gnutella traffic!
- Moved away from the public hostcaches and now uses the Gnutella Web Cache.
- Will now show all upload attempts, not only the ones that are transferring. If the connection is aborted, the reason is also shown.
New search stats types: queries by router, whole query.
- "Queries by router" shows how many queries have been recieved from any node gtk-gnutella was directly connected to.
- "Whole query" shows stats based on the complete query string instead of individual query words.
- New visual indications via icons in the status bar: whether gtk-gnutella is rebuilding the library, computing SHA1 of shared files in the background, and whether we are connected to Internet or not.
Here are some of the changes since 0.85:
- Greatly enhanced auto-selection in searches to use far less CPU.
- Will now warn user when encountering a newer version of gtk-gnutella.
- URN searches now supported, by typing "urn:sha1:" in search text, followed by the base32 value.
- All configuration can now be made from the GUI.
- Fully redesigned search filters to work like ipchains/iptable on Linux.
- Obsoleted experimental "auto-download", superseded by the new filtering code.
- Added Gnutella bandwidth management (0.85 already had HTTP bandwidth management, but it was not configurable via the GUI).
- Both HTTP and Gnet bandwidth is now displayed real time.
- Added full HUGE support (Hash/URN Gnutella Extensions).
- Added support for local host preference.
- gtk-gnutella can do traffic compression when connecting to a node that also supports it.
- Upload and downloads will now show User-Agent/Server information.
- Added status to the download queue.
- You can now freeze the download queue whilst manipulating it.
- Searches can now be listed on the left side of the screen, or as tabs like in the previous versions.
- Added automatic banning of servents that are hammering us.
- Many more cool new features that you'll discover whilst playing with it.
Summary of changes (user-visible) since 0.80:
- Now support Gnutella traffic prioritization and flow-control for enhanced stability of connections.
- Can now use an HTTP proxy for outgoing connections, in addition to SOCKS v4 and v5 proxies.
- When "Force local IP" is ticked, gtk-gnutella will try to automatically update the value if it detects a change in your IP address.
- Added search statistics.
- Added persistent upload statistics, keeping track of which files were uploaded by users, and how many times.
- Will now show the size of the uploaded file and the requested range, under the form "request @ offset" in the Range column.
- Node servent names are now displayed in the gnutellaNet window, if known.
- Bandwidth management for input and output traffic is now possible. It can only be configured via the config file though, not via the GUI. It only accounts upload/download traffic, not Gnet traffic.
- Displayed transfer rates are now instantaneous transfer rates, not average.
- Upon completion, uploads and downloads show the time spent in transfer.
- Hidden useless gnutellaNet stats window.