Home   Artikel   Archiv   Forum   Impressum  
Artikel vom 14.5.03
Autor: Ronny Ziegler
Languages: en
Artikel bewerten:

Printer Druckversion
Helfen Sie mit!
 

FastTrack Netzwerke unter Linux

Gnutella Network Kazaa zusammen mit seinen vielen Ablegern ist mit Sicherheit eines der beliebtesten Programme unter Windows. Die ehemals entwickelte Linux-Version wurde schnell wieder eingestampft und kann nun nicht mehr benutzt werden

...um sich in das FastTrack-Netzwerk einzuloggen (auch wenn es einige Benutzer anscheinend immer noch nicht verstanden haben und es trotzdem versuchen).

Eine Protokolländerung, mit dem Ziel den Windows-Client Morpheus aus dem Netzwerk zu verdrängen, hatte somit auch zur Folge, sämtliche Linux-Benutzer auszusperren.
Aber mittlerweile gibt es verschiedene Wege, auch ohne Windows auf das FastTrack-Netzwerk zuzugreifen.

Man sollte sich jedoch im klaren sein, dass alle diese Möglichkeiten einiges an Arbeit voraussetzen und nicht den von einer Windows-Version bekannten Komfort bieten.

Kazaa & wine

Schnell wurde bekannt, dass die Windows-Varianten von Kazaa mittels Wine zum laufen gebracht werden können.
Dabei stellen sich dem Linux-Benutzer allerdings eine Reihe von Problemen:
Nicht jede Version von Kazaa ist zur Zusammenarbeit mit dem Emulator zu bewegen. Es gibt eine Fülle von Erfolgs- und Problemmeldungen beim Zusammenspiel verschiedenster Wine-, Kazaa- und KazaaLite-Versionen.

Am besten, man nimmt die aktuellste Version von Wine (und nicht das für Spiele optimierte WineX) und probiert eine Reihe von Kazaa- bzw. KazaaLite Version aus, bis man eine lauffähige Kombination erhalten hat.

Zusätzlich benötigt man noch folgende Windows-DLL Dateien, um Kazaa zu starten:

     commctrl
     comdlg32
     comctl32
     msvcrt
     shdoclc
     shdocvw
     shlwapi
     urlmon 
     wininet
  
Am Erfolg-versprechendsten ist der Einsatz der Windows95 Versionen, u.U. auch die Windows98 Varianten. Glücklich schätzen kann sich derjenige, der mehrere Windows-CDs verschiedener Versionen sein Eigen nennt und somit mehrere Kombinationen ausprobieren kann. Bloß nicht zu schnell aufgeben.

Nähere und ständig aktualisierte Informationen zur Konfiguration von Wine im Einsatz mit Kazaa findet man unter http://www.christian-gerner.de/computer/linux/kazaa.htm.de .

Dass es wirklich funktioniert, Wine mit Kazaa zum Laufen zu bringen, beweist folgender Screenshot. Benutzt wurde die (mittlerweile schon angestaubte) Wine-CVS-Version 20030115 und als Kazaa-Client die "Kazaa Lite Retro Edition 1.7.2" zusammen mit den DLL-Dateien einer deutschen Windows95 CD:

Selbst wenn Kazaa gestartet werden konnte, gibt es noch einige Probleme, die der Linux-Benutzer berücksichtigen sollte:

  • Das automatische Einspielen von Updates sollte man unbedingt deaktivieren, um zu verhindern, dass eine nicht mit Wine kompatible Version installiert wird.

  • Kazaa benötigt durch die ständige Aktualisierung des Fensters sämtliche CPU-Rechenzeit, was andere laufende Prozesse beeinträchtigt.
    Hat man die gesuchten Dateien gefunden und die dazugehörigen Downloads gestartet, sollte man das Kazaa-Fenster schließen (das Programm läuft dann im minimalisierten Zustand weiter), um unnötige CPU-Rechenzeit zu sparen.

  • Die Benutzung des in Kazaa integrierten Media Players (der auf dem Windows Media Player beruht) führt bei den meisten Benutzern vermutlich zum Absturz des gesamten Programms.

Einige weitere Informationen zu den verschiedenen Kazaa-Varianten und deren Einsatz unter Wine findest man auch in der Wine Application Database für KaZaA, KaZaA Lite und KaZaA Lite ++.

giFT - die native Variante

giFT Logo Natürlich wäre ein Linux-Nativer Client für FastTrack wesentlich angenehmer. Aus diesem Grund wurde das "GNU Interface to FastTrack - giFT" Projekt gestartet.
Allerdings wurde das Projektziel schnell geändert, und man versuchte nicht mehr das FastTrack Protokoll mittels "reverse engineering" zu entschlüsseln und auf ewig dem Gutdünken der FastTrack-Entwickler und möglichen Protokolländerungen ausgeliefert zu sein.
Daher versuchten die Entwickler ein eigenes, offenes Protokoll zu entwerfen - OpenFT, welches allerdings am Design von FastTrack angelehnt wurde.
Daher benannte sich das Projekt in "GNU Internet File Transfer" (http://gift.sourceforge.net/) um.

Lange Zeit passierte aus Sicht des Anwenders relativ wenig beim giFT Projekt. Es hatte gar den Anschein, als ob die meisten Energie der Programmierer darauf verwendet wurde, potentielle User in Hilfeforen zu beleidigen.
Wenn dann noch Zeit übrig blieb, stritten die Entwickler auch gerne mal untereinander.

Dem Projekt tat dies nicht gut. Nutzer wurden abgeschreckt, Programmierer verließen das Projekt, jeder beschuldigte jeden, für die schleppende Entwicklung verantwortlich zu sein - giFT wurde schnell zu einem schlechten Beispiel für das Entwicklungsprinizp von OpenSource.

Bis heute gibt es aus Prinzip keine Sourcecode-Pakete von giFT, aus Angst dies könne unfähige Linux-Benutzer anlocken, welche die Entwickler mit Support-Fragen überschütten würden. Das Sourceforge-eigene Hilfe-Forum wurde mittlerweile vorsichtshalber geschlossen.
Die Entwickler sehen ihr Programm noch immer in einer Desing-Phase und noch nicht für den Endanwender geeignet, und hatten die Befürchtung, ein übermäßiger Ansturm könnte das Peer2Peer-Netz wegen mangelhafter Skalierung zusammenbrechen lassen.

Mit einer Anzahl von durchschnittlich 300 Benutzern blieb der Nutzen des OpenFT Netzwerks damit sehr beschränkt.

Was man den Entwicklern hingegen zugute halten kann, ist der durchaus gelungene Aufbau des giFT Programms, der eigentlich ein reiner Server ist und nur für die Kommunikation mit dem Netzwerk zuständig ist.
Der Modulare Aufbau des Servers erlaubt es auch, andere Netzwerke (z.B. Gnutella) einzubinden.

Der Benutzer spricht mit dem Server über einen eigenen Client von denen bereits eine größere Anzahl an Varianten für verschiedenste Plattformen existieren.
Suchanfragen des Clients werden an den Server übermittelt, der diese wiederum in alle ihm durch die Module zugänglichen Netzwerke weiterleitet. Völlig unsichtbar für den Benutzer kann er nun mit nur einem Programm auf eine Reihe verschiedenster Netzwerke zugreifen.

gift-FastTrack

Den eigentlichen Nutzwert erhält giFT aber nun dadurch, dass es neben den bereits vorhanden Modulen für OpenFT und Gnutella nun seit kurzer Zeit ein weiteres Modul zum Zugriff auf das FastTrack-Netzwerk gibt.

Unter http://developer.berlios.de/projects/gift-fasttrack/ findet man dieses Modul, welches den Zugriff auf die riesige Anzahl an fremden Dateien erlaubt. Kein wine ist nun mehr nötig, um von Linux aus in das FastTrack-Netzwerk zu gelangen.

Installation giFT

Die Installation von giFT ist, wie oben erwähnt, absichtlich Anwender-unfreundlich gestaltet worden, daher im Folgenden einige Worte zu den benötigten Schritten, um in den Genuss von giFT kommen zu können.

Das momentan noch lässtigste Problem resultiert aus dem Fehlen von Sourcecode-Paketen von giFT (von Binärdateien ganz zu schweigen).
Daher kann man nicht ohne weiteres sagen, welche Modulversion mit welcher giFT-Version funktioniert - es gibt nur CVS-Releases.

Am ehesten klappt ein Kompilieren des FastTrack-Moduls, wenn man dessen aktuellste CVS-Version zusammen mit der aktuellsten giFT-Version ausprobiert.

Aber zunächst die Schritte im einzelnen.
Den giFT-Sourcecode erhält man mittels CVS. In einem neu angelegten Verzeichnis (z.B. ~/giFT-CVS) führt man

  >> cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gift login
  
aus. Dies fragt nach dem CVS-Passwort, welches einfach nur die "Enter"-Taste ist.
Den eigentlichen Quellcode erhält man dann mittels eines Checkouts:
  >> cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gift co giFT
  
danach wechselt man in das neu erzeugte Verzeichnis und startet den Kompilier- und Installationsvorgang (mit Gnutella-Unterstützung):
  >> cd giFT
  >> ./autogen.sh
  >> ./configure --enable-Gnutella
  >> make
  >> su (root Passwort eingeben)
  >> make install 
  >> exit
  
Nach erfolgreicher Installation geht es an die Konfiguration des Servers
  >> ./giFT-setup
  
Dieses Skript fragt eine Reihe von Einstellunge für den späteren Betrieb ab, u.a. die Verzeichnisse, in denen die heruntergeladenen Dateien gespeichert werden sollen.

Die erste Abfrage des Skriptes ist (freundlich gesagt) etwas ungewöhnlich:

./giFT-setup
   ##############################################################################
   MAIN
  
   Boolean determining whether or not this file has been reviewed and is
   complete.  giFT will fail to start unless this is non-zero.  This is done
   so that we can make sure you, at the very least, read through this file.
  
   Default: 0
  
  [0] 
  


Hiermit wird erreicht, dass nur derjenige giFT benutzen kann, der des Englischen mächtig ist und zumindest die Konfigurationsdatei durchgelesen hat.
Solange hier nicht eine Zahl ungleich 0 eingegeben wird, verweigert giFT seine Mitarbeit.

Die meisten abgefragten Einstellungen können einfach übernommen werden; abweichende Eingaben sind nur nötig bei

./giFT-setup
   ##############################################################################
   DOWNLOAD CONTROLS
  
   Directory to store transfers while they are being operated on.  Temporary
   state files are also kept here.  It is recommended, but not required, that
   the incoming and completed directories are on the same partition (drive).
  
   Windows users: please use the following path specification:
  
   incoming=/[drive]/dir1/dir2
  
   For example, to refer to C:\Program Files\giFT\incoming, use:
  
   incoming=/C/Program Files/giFT/incoming
  
   Default (*nix):    ~/.giFT/incoming
   Default (Windows): /C/Program Files/giFT/incoming
  
  [~/.giFT/incoming] 
  


hier sollte man den Pfad zu demjenigen Verzeichnis angeben, in dem die unvollständig heruntergeladenen Dateien gelagert werden sollen.

./giFT-setup
  Directory which will contain files after they have successfully finished
   downloading.
  
   Default (*nix):    ~/.giFT/completed
   Default (Windows): /C/Program Files/giFT/completed
  
  [~/.giFT/completed] 
  


Ganz analog gibt man hier das Verzeichnis an, in dem die vollständigen Dateien abgespeichert werden.

Installation giFT-FastTrack

Die Installation des FastTrack-Moduls verläuft etwas unkomplizierter.
Wir gehen zunächst in unser neu erstelltes Haupt-Verzeichnis zurück und holen den aktuellsten Code aus dem CVS:

  >> cd ..
  >> cvs -d:pserver:anonymous@cvs.gift-fasttrack.berlios.de:/cvsroot/gift-fasttrack login (Enter)
  >> cvs -z3 -d:pserver:anonymous@cvs.gift-fasttrack.berlios.de:/cvsroot/gift-fasttrack co giFT-FastTrack
  
danach kopiert man das erzeugte Verzeichnis in das giFT-Unterverzeichnis und kompiliert es dort:
  >> cp -a giFT-FastTrack giFT/FastTrack
  >> cd giFT/FastTrack
  >> make
  
nach erfolgreicher Kompilation muss das erzeugte Modul (als root) noch installiert werden:
  >> su (root Passwort)
  >> make install
  >> exit
  
Damit der giFT-Server das neue Modul auch findet, muss es in seiner Konfigurationsdatei noch bekannt gemacht werden. Dafür editiert man mit einem Texteditor die entsprechende Zeile der Datei ~/.giFT/gift.conf.

~/.giFT/gift.conf
   # Colon separated list of protocol plugins to load by default.  If dynamic
   # library support is enabled, the plugin specified will be stat'd to check if
   # it is a loadable path.  If that fails, the fallback method is to attempt to
   # construct the fully qualified path based on the configured environment.
   #
   # NOTES:
   #  Without dynamic library support, this plugin must have been compiled into
   #  your giFT binary.
   #
   #  Do not include the library filename extension.
   #
   #  Protocol names are case sensitive.
   #
   # For example, to use the OpenFT and Gnutella protocols use:
   #
   #  plugins = OpenFT:Gnutella
   #
   # Default: none
   #
   
   plugins = Gnutella:/usr/local/lib/giFT/FastTrack.so
  


Dadurch kann der Server nun sowohl auf das Gnutella, als auch auf das FastTrack-Netz zugreifen. Das OpenFT-Protokoll sollte entfernt werden, da die Programmierer bekanntlich Angst um die Skalierbarkeit ihres Netzes haben.

Im Verzeichnis ~/giFT-CVS/giFT/src/ findet man nun das Programm giFT welches den Server startet.

Client Installation

giFTcurs-LogoDer Server alleine ist aber noch nicht bedienbar, man benötigt zusätzlich einen Client.
Am weitesten entwickelt ist der ncurses-basierende Client (also für die Textkonsole) giFTcurs

Man findet eine aktuelle Version stets unter http://giftcurs.sourceforge.net/ also herunterladen, entpacken, kompilieren und installieren:

  >> tar zxvf giFTcurs-0.x.x.tar.gz -C /tmp
  >> cd /tmp/giFTcurs-0.x.x
  >> ./configure
  >> make
  >> make install (als root)
  
Ist der giFT-Server bereits gestartet, kann man mit
  >> giFTcurs
  
Verbindung zu diesem aufnehmen und Suchanfragen ans Gnutella- und FastTrack-Netzwerk leiten:

giFTcurs-Screenshot

Hinweise und Warnungen

Das FastTrack-Modul für giFT beruht auf reverse engineering des Protokolls. Es kann weder ausgeschlossen werden, dass es zu Fehlern kommt, Daten verloren gehen, noch dass der Zugang zum FastTrack-Netzwerk auch in Zukunft immer funktioniert.

Außerdem scheint die aktuelle Version von giFT (es wurden gerade größere Änderungen am Code vorgenommen) einen Bug zu besitzen, der zu einem Memory-Leak führt und innerhalb weniger Sekunden sämtlichen RAM- und Swap-Speicher verschlingt. Dadurch kann der PC u.U. in einen unbenutzbaren Zustand gelangen, der nur durch einen Neustart des PCs gelöst werden kann.

Die Suchanfragen des Gnutella-Netzes werden noch nicht korrekt gefiltert, sodass man schnell mit einer Vielzahl von unerwünschten Suchergebnissen überschwemmt wird.

Sämtliche Software befindet sich noch in ständiger und grundlegender Entwicklung.


Links:




Anmerkungen zu diesem Artikel


Bisher keine Kommentare


Eigene Anmerkung eintragen