Frequently Asked QuestionsEelcoLempsinkJoshGuilfoyle
This document is a collection of the most common questions found on
the mailing lists and in our IRC channel. Please review the answers
carefully before posting a
support request.
GenericWhat is giFT?giFT is a system of components that
work together to provide an elegant, easy-to-use framework for the
development and usage of popular peer-to-peer networks. The
system's core component, giftd, is
the central bridge between the backend protocol plugins and the
user interfaces
(sometimes referred to as "giFT clients").
How do I get giFT?
You can download the latest release from our
Sourceforge file list,
and (for most UNIX platforms) follow the instructions from the
Installation Guide.
Please note that giFT alone (that is
giftd,
libgift, and
libgiftproto) will not actually provide
a fully functional peer-to-peer client. You will need to download
at least one protocol plugin and a
client.
There are also packages available in the
Debian GNU/Linux
distribution for those of you that have been blessed with
Super Cow Powers. Simply install
the gift meta package which will
provide most of the components that you will need. Other
platforms may also independently provide their own packages for
the giFT framework.
What protocol plugins are available?
The following plugins are currently known to exist (please note
that only some of these plugins are actually considered supported
by this project):
gift-openft *
Implements the OpenFT network, an open source alternative
to FastTrack built completely from scratch for the
giFT framework.
gift-gnutella *
Implements a large portion of the Gnutella network (not
version 2).
The author of this document knows little about the
implementation details of this plugin, and so little
information is provided at this time.
gift-fasttrack
Implements the hugely popular FastTrack network used by
KaZaA (and
formerly Morpheus
and Grokster).
Please note that this network plugin was produced through
reverse-engineering and is
NOT the same as other
popular clients utilizing this network.
gift-opennapgift-soulseek
* - Officially supported by the upstream developers.
Can I use multiple plugins at once?
Certainly. Simply run gift-setup (or
alternatively, edit $HOME/.giFT/giftd.conf)
and take a look at the documentation for the
/main/plugins configuration option.
Why do you use a daemon?
It creates an easy way for people to focus their development
efforts on the particular component that interests them most. That
is, GUI developers do not need to worry about protocol details,
and protocol developers do not need to worry about
display/interface details.
Troubleshooting
When I try to start giftd it tells me
that my setup is "incomplete", what should I do?
Make sure that you have used the
gift-setup utility to properly
configure the software. If you have already done this, make
sure that you have answered the first question correctly (it
was intentionally worded in a manner to force new users
to actually read the configuration documentation before
answering the questions!).
After your initial run of gift-setup,
you may omit this step in the future when you wish to change or
update your configuration by simply descending the
$HOME/.giFT directory and poking around at the
.conf files found there.
Why do I get startup errors trying to load specific protocol
plugins?
By an overwhelming margin, the two most common reasons for this
are that the user (that's you) has either specified the name of
the plugin incorrectly, or the plugin has not been completely or
correctly configured prior to giftd
invocation.
If you are receiving errors actually opening/executing the
protocol plugin, make sure that the name of the plugin you
specified in the configuration file matches the name of the
plugin that you downloaded
(case matters!). If you are
still having problems, I recommend running
giftd -V | grep PLUGIN_DIR to determine
where giftd is actually searching for
the plugins. Examine the contents of the directory, and make
sure that you have correctly installed the plugin (you should see
a libPLUGIN.so file in this directory).
If it appears that the log file and/or error output is suggesting
that the plugin has not been configured correctly, you should
make sure to run gift-setupafter installing the plugin. Please note that
some plugins do not use the gift-setup
configuration system and must be manually setup. The most
common example of this is gift-fasttrack,
which requires that the user (in some cases) manually run
mkdir $HOME/.giFT/FastTrack before the
plugin will start. Hopefully this behaviour will be corrected in
future releases of gift-fasttrack.
Protocol X cannot connect, what's wrong?
This is perhaps the most frequent (and most annoying) question
that we receive, so I'm going to force you to choke on a little
background information before I even attempt an answer.
First, it is important to understand that giftd
provides a framework for third-party plugins in which to nest, but
it does not actually control how those plugins work, or develop.
For this reason, the upstream giFT
developers often have no idea why some unknown/foreign protocol
plugin is not working exactly as you might expect. Naturally, you
should contact the appropriate development team when attempting to
request support. For example, if gift-fasttrack
isn't working, contact the gift-fasttrack
developers -- it is as simple as that.
Second, a common property of most peer-to-peer networks is the
extremely limited availability of peers and peer resources. This
often means that new users will be devalued and may require
additional time to connect, or may not even be able to connect at
all when the most localized group of nodes is unable to accept
connections. This is especially true with smaller networks like
OpenFT which do not have a large probabilistic network to poll
from when certain sections become stressed. Yes, it sucks, we
know this. What few things we can do to improve the situation are
constantly being explored and worked on, but as is a common theme
with most open source projects, we simply don't have the
time to do everything!
And now finally, your answer. Each protocol plugin has its own
method of node discovery and propogation (as do most networks,
independent of their giFT
implementations), which means that there is no one unified
answer to this question. For gift-openft,
you can often find a more up-to-date nodes
file to replace the default
here.
To install this file, simply close giftd,
copy to $HOME/.giFT/OpenFT/nodes, then
restart. Please note that this method does not
guarantee a network connection! For other plugins, you should
consult the appropriate documentation (if any exists) and find
the answer in the context of that plugin.
Usage
Why does giftd bog down my system so much?
For new giFT users, the system will
attempt to calculate a hash (MD5, SHA-1, etc) for each file
that you are sharing for each of the hashing algorithms
registered by your loaded plugins. This often requires a great
deal of disk and CPU resources that may cause your computer to
run sluggish while it's working.
Once you have allowed this process to complete successfully,
the calculated hashes will be stored in a local shares file and
will be read in at the next startup. The shared directories
will be scanned for new entries, but for the most part, the
disk and CPU usage will be substantially lower.
I run giftd, but nothing happens. What gives?
giftd does not use direct input/output
to the user in the conventional user interface sense. You will
want to use a giftdclient
to interface with the system. Also make sure that you have
downloaded, installed, and configured your preferred protocol
plugin before running giftd.