Mulus

aus MLdonkey, der freien Wissensdatenbank

Die Entwicklung von Mulus "steht" zur Zeit (letzte Release Version 0.18.1) Ein Blick ins Mulus-Forum kann aber nie Schaden


Mulus ist die Weiterentwicklung des alten 2.5.16-Branch.

MLdonkey und Mulus entwickeln sich zur Zeit ziemlich schnell, ziemlich weit auseinander. Das liegt zum einen an unterschiedlichen Vorstellungen der Developer, zum anderen daran, dass schon die Versionen 2.5.16 und 2.5.30 (hieraus entwickelt sich der aktuelle MLdonkey 2.6.x) große Unterschiede aufweisen.

Viele werden sich fragen, welcher MLdonkey ist nun der aktuelle.

Warum gibt es zwei Versionen, die weiterentwickelt werden?

Ich1) will hier mal einen Abriss der Entwicklung des 2.5.16er MLDonkeys liefern.

Es begann im Winter 2004, die Entwicklung des MLDonkey schien zu stagnieren, Spiralvoice war der einzige, der versuchte durch Patches, die von Fremdentwicklern und auch ihm selbst kamen, den MLDonkey aufrecht zu halten. Der Erfinder und Hauptentwickler des MLDonkey (b8_bavard) war schon seit Monaten nicht mehr zu erreichen und eine Entwicklung fand nicht mehr statt. Das Lager der User war sowieso schon gespalten, viele präferierten die 2.5.16+patches, andere die aktuellere Ausgabe 2.5.28+patches.

Ich versuchte die 2.5.28/2.5.30 durch Patches zu unterstützen, musste dann aber feststellen, dass mir das Konzept des “Swarming” (das gleichzeitige Saugen aus dem Esel- und dem Bittorrent-Netz) nicht gefiel. Meiner Meinung nach ist der Aufwand zu groß, der Nutzen zu klein, als dann man sinnvoll beide gleichzeitig nutzen könnte. Zu allem Überfluss müssen die Module auf Source-Ebene auch noch dermaßen miteinander verwoben werden, dass die Übersichtlichkeit leidet und das Pflegen des Sourcecodes nur unter erschwerten Bedingungen möglich ist.

Ich entschied mich dann Ende Dezember auf den letzten Stand zurückzugehen, auf dem viele User zufrieden waren und ausschließlich den das ed2k-Modul voranzutreiben. Dabei traf es sich, dass Spiralvoice ohnehin den Support für die 2.5.16t aufzugeben, um sich der aktuelleren Version 2.5.28 zu widmen. Zeitgleich erschien auch ein weiterer Entwickler auf der Bildfläche, Amorphous. Er war gewillt die Entwicklung des MLdonkey, speziell der Verison 2.5.30, voranzutreiben. Er legte ein Archiv mittels SVN an, in dem alle Versionen des MLDonkey seither eingepflegt sind.

Leider unterschieden sich die 2.5.16 und die 2.5.28 schon derart stark, dass viele Entwicklungen, die ich in der 2.5.16 machte, nicht einfach in die 2.5.28 übernommen werden können. Andersherum gilt leider das Gleiche.

Unterschiede zum Mainbranch

Durch die gleichzeitige Entwicklung von zwei Versionen, haben sich teilweise recht drastische Unterschiede ergeben. Der größte Unterschied dürfte in den Nicht-eDonkey-Modulen liegen und hier besonders im Bittorrent-Modul.

Ich verfolge und pflege ausschließlich das eDonkey-Modul. Wenn es Gelegenheit gibt durch einfache Patches die anderen Module zu verbessern, steht dem aber nichts im Weg. Es bräuchte nur ein paar Personen, die diese Patches erstellen bzw testen.

In der Bedienung des Mulus liegt mein Hauptaugenmerk auf dem Telnet-Interface und der WebUI.

Unterschiede im eDonkey-Modul

Diese Liste ist mit Scherheit nicht vollständig, außerdem könnte es sein, dass der ein oder andere Punkt schon nach MLDonkey portiert wurde.

   * ressourcenschonender im Hinblick auf Verbindungen mit anderen Clients
   * IMHO verbessertes Webinterface
   * verbessertes Sourcemanagement gegenüber 2.5.16 (MLdonkey 2.6.x benutzt ein komplett anderes)
   * akurate Zählung von Clients in der Statistik
   * Anzeige von Kommentaren anderer Clients im WebUI
   * veränderte Optionen:
         o max_sources
           Angabe der Gesamtsourcen aller Downloads
         o server_min_list, server_max_list
           fällt die Anzahl an Servern unter server_min_list werden neue Server hinzugefügt bis server_max_list erreicht ist
         o preferred server
           “ausgewählte” Server werden bevorzugt connected und nicht aus der Serverliste gestrichen
         o zweites Paar max_hard_up/download_rate um schnell mal den Traffic zu begrenzen\\oder zur Unterscheidung von Tag und Nacht-Traffic-Limit

Änderungen im Telnet-Interface

   * zusätzliche Parameter für den Befehl “vd”
         o downloading, queued, paused: zeigt nur die Downloads im entsprechenden Zustand an
         o sort_remain, sort_age: sortiert die Ausgabe nach “noch zu saugenden Anteil” bzw nach Alter
   * Um Tippaufwand zu sparen wurde der Befehl “alias” eingeführt
         o Bsp: Nach einem “alias vdd vd downloading sort_age” führt der neue Befehl “vdd” den Befehl “vd downloading sort_age” aus

Probleme Bei einem Wechsel zwischen Mulus und MLdonkey lässt es sich nicht vermeiden, dass unvollständige Chunks verloren gehen.

Dies & Das:

   * implemented using AUXPORTS on servers at least Razorback2 provides additional ports to connect to in case your ISP blocks standard ports. You can reach RB2 on port 80, 443 or 25. But beware: You may only insert one port in your list. Lugdunum says multiple connection attempts on different ports gets you blacklisted.


ChangeLog der 2.5.16 seit Patchpack t

Hier sollen die wichtigsten Änderungen aus Usersicht aufgezeigt werden.

2.5.16u2

   * neuer Befehl “tsources” liefert eine Liste der tatsächlich bekannten Sourcen
   * vermeidet Blacklisting von Servern der Version 17.3 (zB Razorback2)

2.5.16v

   * neue Option server_lifetime

2.5.16v1

   * neue Optionen
         o max_sources, die die Gesamtzahl an Sourcen über alle Downloads beschränkt
         o ask_for_new_src_delay, wenn das Maximum max_sources überschritten wird, stoppen Downloads, die zu viele Sourcen angesammelt haben, für dieses Zeitspanne erneute Sourceanfragen.
         o active_lifetime, nach dieser Zeit wird die Verbindung zu einem anderen Client unterbrochen, wenn keine Antwort mehr kommt. Der Wert war fest 1200 Sekunden, ich empfehle 90-120, bin mir aber noch nicht ganz über die Auswirkungen bewusst.
         o obsolete: max_sources_per_file (wird in einer neuen Version evtl wieder eingeführt)
   * neue telnet-Befehle
         o alias, unalias
               + alias hinzufügen: “alias ca cancel all”, legt alias “ca” an, der “cancel all” ausführt
               + alias ersetzen: einfach alten Alias überschreiben zB “alias ca vd”
               + alias löschen: “unalias ca”
   * vd queued zeige nur queued Downloads
   * vd downloading zeige nur aktive Downloads
   * vd paused zeige nur pausierte Downloads

2.5.16v2

ein Fehler macht diese Version unbrauchbar

2.5.16v3

   * neue Optionen
         o max_uploaders_per_torrent
         o max_bt_uploaders
   * wichtiger Bugfix:
         o Datum im Mailheader wird richtig gesetzt

2.5.16v4

   * Implementierung von “preferred” Server
         o Server können über das Webintreface als “preferred” markiert werden
         o “preferred” Server werden zuerst kontaktiert
         o “preferred” Server werden nicht automatisch aus der Serverliste entfernt
         o es wird versucht immer zu mindestens einem “preferred” Server verbunden zu bleiben
   * neue Optionen
         o server_min_list wenn dieses Limit unterschritten wird, werden Server und andere Clients nach neuen Servern gefragt
         o server_max_list bei ereichen dieses Limits, wird die Nachfrage nach anderen Servern gestoppt

2.5.16v5

   * neue Option
         o connect_only_preferred_server es wird nur Verbindungen zu “preferred” Server unternommen

2.5.16w

ein Fehler macht diese Version unbrauchbar

2.5.16w1

neue stabile Version der 2.5.16-Serie

2.5.16w2

   * Neue Befehle
         o reset_stats nullt die Statistiken (client_stats, cs) der aktuellen Session
         o buildinfo informiert über das System auf dem der Core kompiliert wurde

Weblinks

'Persönliche Werkzeuge