Soulseek

Software
(Weitergeleitet von SLSK)

Soulseek ist ein proprietärer Filesharing-Client, der 2001 von Nir Arbel, einem früheren Napster-Programmierer, geschaffen wurde. Wie bei Napster setzt das Netzwerk auf einen zentralen Server, der alle Clients bedient.

Soulseek

Basisdaten

Entwickler Nir Arbel
Erscheinungsjahr 8. April 2001[1]
Aktuelle Version 2017-2-20
(20. Feb. 2017)
Betriebssystem Windows, Linux, macOS
Programmier­sprache C++, Qt
Kategorie Peer-to-Peer
Lizenz Closed Source
deutschsprachig nein
www.slsknet.org

Entwicklungsgeschichte

Bearbeiten

Das Programm wurde zuerst im Frühjahr 2001 auf einer IDM-Mailingliste vorgestellt. Sein Autor Nir Arbel war bis Mitte 2001 bei Napster angestellt und entwickelte Soulseek zunächst nebenbei, mit einem Schwerpunkt auf Community-Features, die er bei Napster vermisste und an Audiogalaxy schätzte.[2] Mitte 2002 hatte Soulseek laut Arbel etwa 10.000 aktive Nutzer, von denen meist etwa 1.500 bis 2.000 gleichzeitig online waren.[2]

Von Beginn an waren etliche Musikproduzenten unter den Benutzern. Dies führte 2002 zur Gründung des Netlabels Soulseek Records, das Musik von Soulseek-Mitgliedern veröffentlichte.

In einem Interview mit dem Filesharingmagazin Slyck.com gab Entwickler Arbel 2003 an, dass sich bisher über eine Million Nutzer im Netzwerk registrierten, gleichzeitig online waren zu der Zeit zwischen achtzig- und hunderttausend Usern.[3]

Im Mai 2004, im November 2004, im November 2005 und im November 2006 fanden in Augsburg (im Rahmen des Kulturfestivals Lab30) vier „Soulseek-Festivals“ statt, bei denen viele – teilweise aus Übersee angereiste – Soulseek-Künstler auftraten. Soulseek spielte auch eine Rolle bei der Verbreitung von anderen Netlabels wie Thinner.[4]

2008 wurde Soulseek von der französischen SACEM wegen Urheberrechtsverletzungen verklagt.[5] Die Entwicklung des reinen Windows-Clients wurde seit 2008 nach der zuletzt erschienenen Version 157 NS 13c nicht mehr gepflegt, der Nachfolger SoulseekQT erschien in einer ersten öffentlichen Beta 2011[6] und erhält seitdem für Windows und Mac regelmäßige Updates, seltener für Linux.[7]

2015 stellte PayPal die Zahlungsdienstleistungen für SoulSeek ein, welches rein über Spenden der Community finanziert wurde. Nach Intervention der EFF wurde die Maßnahme 2016 wieder aufgehoben.[8] 2018 wurde Soulseek erneut bei PayPal ausgeschlossen,[9] seitdem werden Spenden über Stripe abgewickelt. Spenden ist nur über den Soulseek-Client möglich.

Seit dem 23. Mai 2016 ist neben dem öffentlichen Forum auf der Soulseek-Website auch eine Diskussionsgruppe für technische Fragen auf Google Groups verfügbar[10].

 
Oberfläche des Soulseek-Clients nicotine+ auf Kubuntu

Grundlegende Möglichkeiten von Soulseek sind:

  • Suchen und Veröffentlichen von Dateien
  • Wishlist: für die permanente Suche im Hintergrund
  • Privater und öffentlicher Chat
  • Eröffnen von Chatrooms für verschiedene Interessengruppen
  • Things I Like/Dislike: Suche nach Interpreten und Benutzern nach eigenem Geschmack
  • Download und Upload von Dateien
  • Userlist mit gesonderten Einstellungen und Beschränkungen

Nutzern, die das Projekt mit Spenden unterstützen, können (je nach Höhe des Betrages) zeitlich begrenzte Privilegien gewährt werden, die in der bevorzugten Behandlung innerhalb des Netzwerks bestehen.

Technische Details

Bearbeiten

Netzwerktopologie

Bearbeiten

Das Soulseek-Netzwerk besitzt eine Sterntopologie nach dem Client-Server-Prinzip ähnlich wie OpenNap. Allerdings ist es nicht möglich, mehrere Server miteinander zu verbinden (wie es bei OpenNap zum Beispiel der Fall ist). Grundsätzlich wird jede Kommunikation zwischen den Clients über den Server eingeleitet.

Der Server indiziert die freigegebenen Dateien der Clients nicht und ist somit nicht in der Lage, Suchanfragen direkt zu beantworten. Sie werden stattdessen an die Clients weitergeleitet. Da im Laufe der Zeit der Server nicht mehr in der Lage war, den großen Ansturm an Benutzern zu bedienen, wurden sogenannte Parent-Nodes eingeführt. Das sind Clients mit hoher Bandbreite, deren Aufgabe darin besteht, die Suchanfragen (die sie vom Server geliefert bekommen) zu mehreren Kindknoten weiterzuleiten. Die Clients, die Suchanfragen erhalten, beantworten diese und senden die Treffer direkt per TCP an die suchenden Clients. Die Teilnehmer am Netzwerk sind somit keine reinen Clients im klassischen Sinne (wie zum Beispiel bei FTP), sondern übernehmen Aufgaben eines Servers.

Dateiaustausch

Bearbeiten

Ist eine Datei mittels einer Suche gefunden, wird der Server zum weiteren Download nicht mehr benötigt. Es wird direkt eine TCP-Verbindung zum anbietenden Benutzer aufgenommen. Im Gegensatz zur Wiederaufnahme bereits begonnener Transfers bei einem anderen User mit gleicher Datei sind Downloads von mehreren Benutzern gleichzeitig mit dem originalen Windows-Clientprogramm nicht möglich und laut Nir Arbel auch explizit nicht geplant, da befürchtet wird, dass damit der Community-Gedanke des Netzwerks verloren geht. Aus technischer Sicht ist der Download einer Datei von mehreren Quellen aber durchaus möglich.

Soulseek kennt im Gegensatz zum BitTorrent-Protokoll keine Hash-Werte für Dateien.

Protokoll

Bearbeiten

Die Kommunikation zwischen Server und Client bzw. zwischen Client und Client setzt auf TCP/IP auf und wird über Befehle abgewickelt, die aus einem binären Kopf und einem binären Rumpf bestehen. Der Kopf beinhaltet zwei vorzeichenlose, ganzzahlige 32-Bit-Werte im Little-Endian-Format. Der erste Wert spezifiziert die Länge des gesamten Befehls ausschließlich sich selbst und der zweite die Art des Befehls. Der Rumpf enthält Argumente in einem speziellen binären Format, wobei im Wesentlichen nur die drei Typen Zeichenkette, ganze Zahl und Byte auftreten.

Kopf Rumpf
Länge ID Zeichenkette ganze Zahl Byte
32 Bit 32 Bit 32 Bit: Länge Daten entsprechend der Länge 32 Bit 8 Bit

Die Argumente des Rumpfes werden abhängig von der Art des Befehls interpretiert. Obige Skizze zeigt beispielhaft die drei verschiedenen möglichen Argumente.

Einzelnachweise

Bearbeiten
  1. web.archive.org.
  2. a b Janko Röttgers: Soulseek: Peer to Peer für elektronische Musik. In: de:Bug. 26. Juli 2002, abgerufen am 1. Februar 2020.
  3. Thomas Mennecke: SoulSeek Interview. In: Slyck.com. 26. Dezember 2003, archiviert vom Original (nicht mehr online verfügbar) am 3. März 2016; abgerufen am 19. April 2024 (englisch).
  4. Sascha Kösch: Netaudio: Thinner. In: de:Bug. 1. März 2004, ehemals im Original (nicht mehr online verfügbar); abgerufen am 1. Februar 2020.@1@2Vorlage:Toter Link/de-bug.de (Seite nicht mehr abrufbar. Suche in Webarchiven)
  5. Ernesto Van der Sar: Music Industry Takes Soulseek to Court * TorrentFreak. In: TorrentFreak. 20. November 2008, abgerufen am 19. April 2024 (englisch).
  6. SoulseekQT Public Build 1 | Soulseek. 12. Mai 2014, archiviert vom Original am 12. Mai 2014; abgerufen am 19. April 2024.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.slsknet.org
  7. Changelog | Soulseek. Abgerufen am 19. April 2024.
  8. Rainey Reitman: The Kafkaesque Battle of Soulseek and PayPal, and Why Free Speech Defenders Should be Worried About Payment Networks. EFF, 25. Februar 2016, abgerufen am 19. April 2024 (englisch).
  9. PayPal Bans Soulseek Over Piracy Concerns, Again * TorrentFreak. Abgerufen am 19. April 2024 (englisch).
  10. Soulseek Discussion Google Group | Soulseek. In: www.slsknet.org. Abgerufen am 8. Juni 2016.
Bearbeiten