Soulseek

Soulseek is a proprietary file-sharing client that was created by former Napster programmer Nir Arbel. As Napster uses the network to a central server serving all the clients. The only one server is operated by Arbel itself. This can be estimated to serve up to 100,000 users.

  • 4.1 clients

History of development

In the Soulseek community idea is paramount. The program was first introduced in the spring of 2001 at a IDM mailing list.

From the outset, a number of music producers were among the users. This led in 2002 to the founding of netlabels Soulseek Records, released the music from Soulseek members. In May 2004, in November 2004, November 2005 and November 2006 found in Augsburg (in the context of the cultural festival LAB30 ) four " Soulseek Festival " takes place, in which many - occurred Soulseek artists - some who had traveled from overseas.

Scope

Basic Ways Soulseek are:

  • Search and publish files
  • Wishlist: for the permanent search in the background
  • Private and public chat
  • Rooms with different stakeholders
  • Things I Like / Dislike: Search for Artists and users according to taste
  • Download and upload files
  • UserList with separate settings and restrictions

Users who pay through PayPal money will be granted (depending on the amount of the sum ) temporary privileges that exist in the preferred 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 together multiple servers (as is the case for example in OpenNap ). Basically, any communication between clients through the server is initiated.

The server does not index the shared files of clients and is therefore not in a position to answer queries directly. Instead, they are forwarded to the clients. Since the passage of time the server was no longer able to use the big rush of users, so-called parent nodes have been introduced. These are clients with high bandwidth, whose task is the search queries ( they get delivered by the server) to forward to multiple child nodes. The clients who receive searches, this answer and send the results directly via TCP to the browser client. The participants in the network are therefore not pure clients in the classical sense ( eg with FTP ), but take over tasks of a server.

File Exchange

If a file is found by means of a search, the server is no longer needed for further download. It is directly recorded a TCP connection to the offering user. Multi-source downloads are not possible with the original Windows client program and, according to Nir Arbel explicitly not planned, since it is feared that goes with it lost the community spirit of the network. From a technical point of view of downloading a file from multiple sources is, however, quite possible.

Soulseek knows as opposed to the BitTorrent protocol does not hash values ​​for files.

Protocol

The communication between server and client or between the client and the client is based on TCP / IP and is handled by commands, which consist of a binary head and a binary hull. The head contains two unsigned integer 32- bit values ​​in little- endian format. The first value specifies the length of the entire command only itself and the second is the type of command. The body contains arguments in a particular binary format, wherein substantially only the three types of character string, integer bytes occur.

The arguments of the hull to be interpreted depending on the type of the command. The above sketch shows an example of the three different possible arguments.

734480
de