I am sharing about 25 albums on soulseek but my uploads are empty which as far as I know means nobody has tried to download anything from me. I don’t have port-forwarding available to me, I use a VPN, and I am periodically offline. Is it really weird that nobody has downloaded anything from me or is that kind of normal?

  • danA
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    3 days ago

    How is the downloader going to ask the uploader for the file without an open port?

    Edit: I read the protocol documentation and discovered that it does have a way to make the connections the other way, so only one side needs to have port forwarding enabled.

    • MagnificentSteiner@lemmy.zip
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      3 days ago

      The open port is only to facilitate a direct connection between PCs to upload/download. It is not required for your client to advertise through a tracker, DHT or PeX that you are an available seeder.

      • danA
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 days ago

        Soulseek is a totally different protocol to torrents. It doesn’t use a tracker. Files are per-user. When you download a particular file, it only comes from one user. It’s like how Limewire and KaZaA used to work (since it’s from that same era)

          • danA
            link
            fedilink
            English
            arrow-up
            1
            arrow-down
            1
            ·
            3 days ago

            There’s no tracker. Your link just says that there’s a central search and chat room server. The search just points your client to users that have files with that name. It doesn’t track anything else.

            The server does not know which files you download - that’s just between you and the person you’re downloading from. You can download files directly from a user (e.g. by searching for a username then browsing their files) without relying on the central server at all.

            You don’t need port forwarding for downloads, only for uploads.

            • MagnificentSteiner@lemmy.zip
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              3 days ago

              I’m done discussing this. You’re wrong. A simple google search will show you a bunch of posts on Reddit and elsewhere saying the same thing I am.

              It’s not my responsibility to make up for your decision not to find easily accessible information.

              • danA
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                3 days ago

                Just because a bunch of posts are misinformed doesn’t mean that they’re right. There’s a lot of misinformation online, especially on Reddit.

                Reading either the source code for a Soulseek client, or the unofficial protocol documentation, will help you have a better understanding of how it actually works.

                If you look at that document, you will see that there are no server messages related to uploading or downloading files, meaning the server is not involved.

                Searches are distributed amongst peers, similar to what DHT does (but it’s its own protocol). The server does know about a small number of peers, which then distribute the search to other peers connected to them, etc. in a tree hierarchy: https://nicotine-plus.org/doc/SLSKPROTOCOL.html#distributed-messages

                Soulseek’s official documentation for v157 (https://www.slsknet.org/157.html) describes it as such:

                the soulseek search distribution network is a simple hierarchy where clients are connected to other clients in child/parent relationships. the construction is done dynamically with the server constantly trying to push clients off of itself (only for the purpose of sending search requests) and on to other clients

                File transfers are entirely peer to peer. There is no tracker or any other central server involved. The FileTransferInit command (which starts the transfer) goes directly to the other peer that has the file you’re requesting: https://nicotine-plus.org/doc/SLSKPROTOCOL.html#file-transfer-init

                Getting the list of files a user has is also entirely peer to peer - no central server is involved.

      • Fiery@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        edit-2
        3 days ago

        Edit: I stand somewhat corrected, according to what I can find after diving into the slsk rabbit hole a bit, it basically is like torrenting, except each “request” only goes to a single client instead of the swarm, so while the below comment still applies to the speed of making a connection, the downloader won’t have gotten it from somewhere else as they’ll have been waiting for you.

        It is required to initiate a connection from the downloading side though. If your port is closed the only way a connection can be established is by periodic polling by your client… And unless the content you have is really niche, by the time you reach out the downloader probably will have gotten it from someone that was available.

        • MagnificentSteiner@lemmy.zip
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          3 days ago

          Nope, the port can be open on either the downloader or uploaders side. It doesn’t matter which. Only one is needed.

          • danA
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            3 days ago

            Are you talking about torrents or about Soulseek? Soulseek doesn’t use DHT nor PeX.