The Gnutella net is a peer-to-peer network which is based on client programs only. There are no servers. The network itself is formed by client connections only. Generally the Gnutella network is for sharing files of any kind.
This Gnutella spider is for seeking the needle in the haystack. Once connected to the network it regularly tries to find certain files in there. It keeps track of all connected clients and tries to reconnect them if the current connections are lost.
Gnutella, however has nothing to do with the GNU project. The original client is just a free (as in free beer) piece of software. With Serveez you have a free (as in freedom) way to use it. Have a look at the Gnutella page for further information.
The Gnutella spider knows the following configurations items.
net-url (string, default: gnutella-net)
If you want to see the host catcher list of this Gnutella spider you can
connect to this port with any WWW browser at
depend on the bindings.
hosts (string array, no default)
This is the start of the haystack, the initial host list of the clients
the spider tries to connect to. Each list item should be of the format
ip:port (e.g., ‘126.96.36.199:6346’). You can also pass Internet
host names. If the port information is left blank it defaults to 6346. If
you need some entry point for the Gnutella network have a look at
http://www.gnutellahosts.com/ or http://www.gnutellanet.com/.
search (string array, default: Puppe3000, Meret Becker)
This is the needle. Each search line is either a set of space delimited tokens where every token must match. Or a kind of wildcard expression including ‘?’ and ‘*’. Search lines are always matched case insensitive.
search-limit (integer, default: 30)
This limits how many results the Gnutella spider returns to other people
searching your files. This is for protection against
* search requests.
max-ttl (integer, default: 5)
Every Gnutella packet has got a TTL. This is the maximum TTL allowed for
outgoing packets. When a packet comes in it gets its TTL value decremented
and is forwarded to it destination. If however an incoming packet has a TTL
max-ttl the ttl value is set to
max-ttl. This is
necessary since most people use far too large TTL values.
ttl (integer, default: 5)
When creating a new Gnutella packet we use this as TTL. Please use a sane value. This ttl needs not to be as large as it is for IP packets. A value below 10 is more than enough. Have a look at the Gnutella page for a calculation of a ’sane value’.
download-path (string, default: /tmp)
This is where the spider saves needles in.
share-path (string, default: /tmp)
Here are all the files we share with others. The Gnutella spider will recurse into directories. So be careful with this option.
max-downloads (integer, default: 4)
Maximum number of concurrent downloads from the network.
max-uploads (integer, default: 4)
Maximum number of concurrent uploads to the network.
connection-speed (integer, default: 28)
This is what we send as our connection speed in KBit/s. We also use this value to throttle down the network transfer rate for file uploads.
min-speed (integer, default: 28)
Search for needles on hosts with a minimum speed. Set it to 0 if you do not care about that. This value is in KBit/s, too.
file-extensions (string array, default: empty list)
If we get replies on search queries we check if the file extension of this reply matches one of these extensions. Useful extensions are ‘mp3’ and ‘mpg’.
connections (integer, default: 4)
This is the number of concurrent connections the Gnutella spider tries to keep up to the network. The IP addresses and the port information is taken from the host catcher hash.
force-ip (string, default: not set)
You can force the Gnutella spider to send outgoing replies with this IP as host information. Must be in dotted decimals notation. This is useful if you are behind a masquerading gateway. You need to install some kind of port forwarder on the gateway so other people can reach you from the outside. Serveez is a good port forwarder.
force-port (integer, default: not set)
Force the Gnutella spider to send outgoing replies with the
force-port as port information. See above for more information.
disable (boolean, default: false)
With this configuration option you can disable the bindings for a Gnutella server instance. This means that no remote client can connect without being told so (e.g., by push requests).