Soulseek

from Wikipedia, the free encyclopedia
Soulseek

Soulseek-png-3.png
Basic data

developer Nir Arbel
Publishing year 1999
Current  version 2017-2-20
(Feb 20, 2017)
operating system Windows , Linux , macOS
programming language C ++
category peer to peer
License Closed source
German speaking No
www.slsknet.org

Soulseek is a proprietary file sharing - client , of 2001 by Nir Arbel , a former Napster programmer, was created. As with Napster, the network relies on a central server that serves all clients.

Development history

The program was first presented in spring 2001 on an IDM mailing list. His author Nir Arbel was employed by Napster until mid-2001 and initially developed Soulseek on the side, with a focus on community features that he missed at Napster and appreciated about Audiogalaxy . According to Arbel, Soulseek had around 10,000 active users in mid-2002, of whom around 1,500 to 2,000 were mostly online at the same time.

From the beginning there were quite a few music producers among the users. This led in 2002 to the founding of Netlabels Soulseek Records published the music of Soulseek members. In May 2004, November 2004, November 2005 and November 2006, four “Soulseek Festivals” took place in Augsburg (as part of the Lab30 culture festival ), at which many Soulseek artists - some of them from overseas - performed. Soulseek also played a role in the spread of other net labels like Thinner .

Since May 23, 2016, in addition to the public forum on the Soulseek website, a discussion group for technical questions has been available on Google Groups .

scope

The basic possibilities of Soulseek are:

  • Find and publish files
  • Wishlist: for a permanent search in the background
  • Private and public chat
  • Open chat rooms for various interest groups
  • Things I Like / Dislike: Search for artists and users according to your own taste
  • Download and upload files
  • Userlist with special settings and restrictions

Users who pay money via PayPal are granted temporary privileges (depending on the amount), which consist in preferential treatment within the network.

Technical details

Network topology

The Soulseek network has a star topology based on the client-server principle, similar to OpenNap . However, it is not possible to connect several servers to each other (as is the case with OpenNap, for example). Basically, all communication between the clients is initiated via the server.

The server does not index the shared files of the clients and is therefore not able to answer search queries directly. Instead, they are forwarded to the clients. As the server was no longer able to handle the large number of users over the course of time, so-called parent nodes were introduced. These are high-bandwidth clients whose job is to route the search queries (which they receive from the server) to multiple child nodes. The clients that receive search queries answer them and send the hits directly to the searching clients via TCP . The participants in the network are therefore not pure clients in the classic sense (as in the case of FTP , for example ), but take on server tasks.

File exchange

If a file is found through a search, the server is no longer required for further downloading. A TCP connection to the offering user is established directly. In contrast to resuming transfers that have already started with another user with the same file, downloads by several users at the same time with the original Windows client program are not possible and, according to Nir Arbel, are not explicitly planned because it is feared that the community idea of ​​the network will be lost goes. From a technical point of view, however, it is possible to download a file from multiple sources.

In contrast to the Bit Torrent protocol, Soulseek has no hash values for files.

protocol

The communication between server and client or between client and client is based on TCP / IP and is handled using commands that consist of a binary header and a binary body. The header contains two unsigned, integer 32-bit values ​​in little-endian format. The first value specifies the length of the entire command excluding itself and the second the type of command. The body contains arguments in a special binary format, whereby essentially only the three types character string , integer and byte occur.

head hull
length ID String integer byte
32 bit 32 bit 32 bits: length Data according to length 32 bit 8 bit

The arguments of the body are interpreted depending on the type of command. The sketch above shows the three different possible arguments as an example.

Individual evidence

  1. a b Janko Röttgers : Soulseek: Peer to Peer for Electronic Music. In: de: Bug . July 26, 2002, accessed February 1, 2020 .
  2. ^ Sascha Koesch : Netaudio: Thinner. In: de: Bug . March 1, 2004, accessed February 1, 2020 .
  3. Soulseek Discussion Google Group | Soulseek. In: www.slsknet.org. Retrieved June 8, 2016 .

Web links