„Soulseek“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
Zeile 3:Zeile 3:
|Screenshot=
|Screenshot=
|Beschreibung=
|Beschreibung=
|Hersteller=[[Nir Arbel]]
|Hersteller= [[Nir Arbel]]
|AktuelleVersion= 157 NS 13e
|AktuelleVersion= 2015-2-21
|AktuelleVersionFreigabeDatum=
|AktuelleVersionFreigabeDatum= 21. Feb. 2015
|Betriebssystem=[[Linux]], [[Microsoft Windows]]
|Betriebssystem= [[Linux]], [[Microsoft Windows]]
|Kategorie= [[Peer-to-Peer]]
|Kategorie= [[Peer-to-Peer]]
|Lizenz= [[Closed Source]]
|Lizenz= [[Closed Source]]
Zeile 18:Zeile 18:
Bei Soulseek steht der [[Gemeinschaft|Community]]-Gedanke im Vordergrund. Das Programm wurde zuerst im Frühjahr 2001 auf einer [[Intelligent Dance Music|IDM]]-Mailingliste vorgestellt.
Bei Soulseek steht der [[Gemeinschaft|Community]]-Gedanke im Vordergrund. Das Programm wurde zuerst im Frühjahr 2001 auf einer [[Intelligent Dance Music|IDM]]-Mailingliste vorgestellt.


Von Beginn an waren etliche Musikproduzenten unter den Benutzern. Dies führte 2002 zur Gründung des [[Netlabel]]s ''[[Soulseek Records]]'', das Musik von Soulseek-Mitgliedern veröffentlicht. 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.
Von Beginn an waren etliche Musikproduzenten unter den Benutzern. Dies führte 2002 zur Gründung des [[Netlabel]]s ''[[Soulseek Records]]'', das Musik von Soulseek-Mitgliedern veröffentlicht. 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.


== Umfang ==
== Umfang ==
Zeile 45:Zeile 45:


=== Protokoll ===
=== Protokoll ===
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.
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.
{| style="border-collapse:collapse; border-spacing:0"
{| style="border-collapse:collapse; border-spacing:0"
|- style="background-color: #fa8"
|- style="background-color: #fa8"
Zeile 57:Zeile 57:
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | Byte
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | Byte
|- style="background-color: #eee"
|- style="background-color: #eee"
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32-bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32 Bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32-bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32 Bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32-bit: Länge
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32 Bit: Länge
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | Daten entsprechend der Länge
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | Daten entsprechend der Länge
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32-bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 32 Bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 8-bit
| style="padding:0ex 1ex 0ex 1ex; border:1px solid #777" | 8 Bit
|}
|}



Version vom 18. Mai 2015, 22:13 Uhr

Soulseek

Basisdaten

EntwicklerNir Arbel
Erscheinungsjahr1999
Aktuelle Version2015-2-21
(21. Feb. 2015)
BetriebssystemLinux, Microsoft Windows
Programmier­spracheC++, Qt
KategoriePeer-to-Peer
LizenzClosed Source
deutschsprachignein
www.slsknet.org
Alternativer Soulseek-Client „Nicotine“ 1.0.8rc1 unter Gnome

Soulseek ist ein proprietärer Filesharing-Client, der vom früheren Napster-Programmierer Nir Arbel geschaffen wurde. Wie bei Napster setzt das Netzwerk auf einen zentralen Server, der alle Clients bedient. Der einzige Server wird von Arbel selbst betrieben. Dieser kann Schätzungen zufolge bis zu 100.000 Benutzer bedienen.

Entwicklungsgeschichte

Bei Soulseek steht der Community-Gedanke im Vordergrund. Das Programm wurde zuerst im Frühjahr 2001 auf einer IDM-Mailingliste vorgestellt.

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öffentlicht. 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.

Umfang

Grundlegende Möglichkeiten von Soulseek sind:

  • Suchen und Veröffentlichen von Dateien
  • Wishlist: für die permanente Suche im Hintergrund
  • Privater und öffentlicher Chat
  • Rooms mit verschiedenen 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 über PayPal Geld bezahlen, werden (je nach Höhe des Betrages) zeitlich begrenzte Privilegien gewährt, die in der bevorzugten Behandlung innerhalb des Netzwerks bestehen.

Technische Details

Netzwerktopologie

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

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. Multi-Source-Downloads sind 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

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.

KopfRumpf
LängeIDZeichenketteganze ZahlByte
32 Bit32 Bit32 Bit: LängeDaten entsprechend der Länge32 Bit8 Bit

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

Alternative Clients

  • SolarSeek – für Mac OS X, Open Source; Entwicklung eingestellt
  • soulseeX – für Mac OS X, Closed Source
  • Nicotine – für Linux, Open Source; entstanden aus PySoulSeek
  • Nicotine+ – alternativer Client zu Nicotine, Open Source
  • Museek – für Linux, Open Source; vom Entwickler von Nicotine
  • Museek+ – alternativer Client zu Museek, Open Source
  • iSlsk – für iPhone und iPod touch, Closed Source