OpenFT
|
From the giFT documentation at the giFT homepage (http://gift.sf.net):
OpenFT is a file sharing protocol developed by the giFT project. The name "OpenFT" stands for "Open FastTrack". Despite this, the OpenFT protocol is an entirely new protocol design: only a few ideas in the OpenFT protocol are drawn from what little was known about the FastTrack protocol at the time OpenFT was designed.
Like FastTrack and Napster, OpenFT is a network where nodes submit lists of shared files to other nodes to keep track of which files are available on the network. This reduces the bandwidth consumed from search requests at the price of additional memory and processing power on the nodes that store that information. The transmission of shared lists is not fully recursive: a node will only transmit its list of shared files to a single search node randomly chosen as that node's "parent", and the list of those files will not be further transmitted to other nodes.
OpenFT is also similar to the Gnutella network in that search requests are recursively forwarded inbetween the nodes that keep track of the shared files.
There are three different kinds of nodes on the OpenFT network:
- USER
Most nodes are USER nodes; these don't have any special function.
- SEARCH
These nodes handle search requests; they search the filelists their CHILD nodes (explained below) submit to them. These nodes must have a capable Internet connection and at least 128M RAM. A modern processor is highly recommended as well.
- INDEX
Nodes with fast connections and lots of memory can be INDEX nodes, which keep lists of available search nodes, collect statistics, and try to maintain the structure of the network.
A node can be both a SEARCH and a INDEX node. USER nodes will pick three SEARCH nodes to be their PARENT nodes. They will submit their shares list to them if the PARENT accepts the USER as its CHILD. By default, SEARCH nodes will be PARENTS for a maximum of 500 CHILD nodes.
For more technical information about OpenFT, you must read the source code, because there's no document covering that at the moment. Also, you can use Doxygen to generate documentation from comments in the source files, using doxygen/doxygen.conf in the CVS repository.
When one says 'OpenFT', one can mean either one of two different things: the OpenFT protocol, or the implementation in the form of a plugin for giFT.