Neben den Vorzügen der TS, die ich bereits in dem etwas älteren Artikel gepriesen habe gibt es noch zwei weitere, die ich damals verschwiegen hatte: das Teil frisst laut Manual nur 35Watt (4x8Watt Festplatten + 3Watt Backplane) und es ist leiser als mein Hauptrechner (ein in die Jahre gekommener iMac G5). Beides gute Gründe, um Dienste, die normalerweise den permanenten Betrieb des iMac verlangen, auf die TS umzuziehen. Einer dieser Dienste ist z.B. die Torrent Anwendung zum verteilten zur-Verfügung-Stellen von Content.
Ein erster Ansatz bestand darin, dass ich mir Python 2.4 auf der TS kompiliert hatte, um dann twisted zu integrieren und letztendlich Bittorent selber. Das klappte soweit auch ganz gut, allerdings war das Ergebnis von der Performance her sehr enttäuschend. Allein das Starten des Python Interpreters dauerte mehrere Sekunden. Sicher gäbe es noch Wege zum Optimieren aber für mich war das ein klares Zeichen, dass dieser Ansatz der falsche ist.
Ich erinnerte mich an eine Software, die ich “damals[tm]” schon auf meiner gehosteten IBM RS6000-735 (ein 42MHz Power1 Monster) betrieben hatte: ctorrent. Der Vorteil dieser in C++ geschriebenen Anwendung ist der minimale Resourcenbedarf; allerdings hat sie auch einen erheblichen Nachteil: seit Jahren wurde nichts mehr am Code gemacht, die Software kommt nur mit Files kleiner 2GB zurecht und ein Torrent darf auch nicht in mehr als 255 Einzelfiles gesplittet sein. Durch Zufall entdeckte ich aber eine Webseite, die sich all dieser Probleme annahm (bzw. nicht die Webseite tat das, sondern der Betreiber hinter dieser Seite).
Ein fertiges Binary der Software gibt es hier. Prinzipiell wäre das schon alles zum Betreiben, allerdings sollte man auf seiner TS im Vorfeld einige Tools aus dem Debian 3.1 Sarge powerpc installiert haben. Ganz wichtig ist da z.B. screen (bitte den extra-nonsense von mir in /var/run/screen/ löschen). Das Paket kommt mit den nötigen ncurses Bibliotheken und erzeugt ausser einem File in /etc noch ein Verzeichnis in /var/run.
Als Erweiterung gibt es noch einen in Perl programmierten Webserver, mit dem man die verschiedenen angestossenen Torrents verwalten kann. Allerdings reicht das auf der TS installierte Perl dafür nicht aus, da ihm die wichtigsten Module fehlen. Ich habe daher ein eigenes Perl 5.8.8 threaded übersetzt, welches man sich hier herunterladen kann. Es installiert sich unterhalb einer neuen Hierarchie /opt im Filesystem. Es bietet sich auch an ctorrent und ctcs in das /opt/bin/ zu legen.
Ein typisches Szenario sieht also in etwa so aus, dass man sich per Telnet einlogt und screen startet. In der ersten screen Session startet man den ctcs Server mit den globalen Werten fuer Up- und Downloads: /opt/bin/ctcs -d 500 -u 50 (Werte für eine DSL 6000 Verbindung).
[TERASTATION]:~ # /opt/bin/ctcs -d 500 -u 50
CTCS server started on port 2780 at Sat Aug 26 15:49:41 2006 CTorrent Control Server v1.0a http://www.rahul.net/dholmes/ctorrent/ctcs.html Use the '-S TERASTATION:2780' option to Enhanced CTorrent to have this CTCS instance manage the client. Status information is available at: http://TERASTATION:2780/ or http://192.168.178.10:2780/ (or http://localhost:2780/ from this system) connection from terastation.box [ 192.168.178.10 ] at port 1208 at Sat Aug 26 15:49:53 2006
Man erzeugt dann mit CTRL+a+c eine weitere Session und startet dann den Torrent. Ich mach das z.B. über einen Alias, den ich via .profile einlese: alias torrent='/opt/bin/ctorrent -e 12 -C 16 -p 9000 -S 192.168.178.10:2780' (die Portnummer 9000 ist dabei die auf der Fritzbox zugewiesene Adressumleitung).
[TERASTATION]:~/share/Torrent $ torrent debian-31r2-powerpc-businesscard.iso.torrent META INFO Announce: http://bttracker.acc.umu.se:6969/announce Created On: Fri Apr 21 17:57:16 2006 Piece length: 262144 FILES INFO <1> debian-31r2-powerpc-businesscard.iso [104062976] Total: 99 MB Check exist: 397/397 Complete META INFO Announce: http://bttracker.acc.umu.se:6969/announce Created On: Fri Apr 21 17:57:16 2006 Piece length: 262144 FILES INFO <1> debian-31r2-powerpc-businesscard.iso [104062976] 101/397 (25%) Total: 99 MB Already/Total: 101/397 (25%) Listening on 0.0.0.0:9000 - 0/0/0 [101/397/101] 0MB,0MB | 0,0K/s | 0,0K E:0,0
Weitere Torrents stösst man dann z.B. immer über eine neue screen Session an. Mittels eines Browsers kann man dann auf den Controlport vom CTCS und die einzelnen Torrents verwalten: