SuprBay: The PirateBay Forum

Full Version: qBittorrent: getting a hybrid torrent to work
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
tl;dr :- How to create a (v1+v2) hybrid torrent in QBittorrent and get it to download from v1 peers.
(Edit: and vice-versa. That's the main idea. For the hybrid torrent to be able to seed a dead v1 torrent)

Long version:

What i did and expected.

(1) I downloaded 3 well seeded torrents from TPB. (Ebooks Top 100)
Download completed in folder torrents/ebooks/

(2) Now, I copied the downloaded files, to a new folder named v2test.

(3) Next, in Qbittorrent, created a new hybrid torrent (v1 + v2) of v2test. This setting is in qbittorrent 'Create torrent'.
For trackers i used the usual ones. DHT is enabled.
The torrent is created, gets automatically added to the queue and goes into downloading state.

I expected the many v1 peers to connect and seed this hybrid torrent.
But, nothing happened.

Note: v1 torrents and v1 peers correspond to the torrents downloaded in step (1).
v2 refers to whatever implementation of Bittorrent v2 is supported in Qbittorrent (via libtorrent 2.0)

----
First question. Is the method above and expectation correct ?
(v2 is supposed to have individual file hashes.)

I couldn't a torrent editor which would display the individual file hashes, which would allow me to check if the SHA-1 hashes match.

If the above is correct, could any of you try and let me know if it works for you.

Am using a slightly older version - v 4.4.3.1 (v2 enabled).

The intent here is to create a 'digest' of small v1 torrents; Eg., about 200 ebooks.
The hope is that the 'digest' torrent will be seeded longer than the constituent smaller (v1) torrents.
And thus if someone were to try to download a 'dead' v1 torrent, it would still come alive, thanks to the 'digest'.

Hope am making sense here.

Thanks for reading and any replies.
Please keep it simple ;-)

PS: I try this once every 3 months and give up; was lazy to sign-up on qbit's forums as they are strict about email ID domain.
Here's hoping someone there sees this.
Quote:Note: v1 torrents and v1 peers correspond to the torrents downloaded in step (1).

V1 hashes must match.
Very true.

I tried the limiting case of a v1 torrent with a single file.
Am unable to get the v1 hashes to match. :-(

Filename, size, piece length, piece hashes are identical in both torrent files.
The info section of the hybrid torrent has a different structure.

Q: Any idea why the V1 hashes won't match ?

Edit: There is an extra "meta version": 2, field in the hybrid torrent. I wonder if that's the reason.

I used the online bencode editor bencode

V1 torrent.
v1 Hash: 2f5cc5d9c95cfa54d1ef216738a8d402bf49e710
Code:
   "info": {
      "length": 3722433,
      "name": "Spare_-_Prince_Harry_The_Duke_of_Sussex_.epub",
      "piece length": 32768,
      "pieces": "<hex>66 F0 ... D8 EE</hex>"
   }

Hybrid torrent.
v1 Hash of Hybrid torrent: c8aa3ce04e4ccc4b712a5025d145a03a9fdf8b6a

Code:
   "info": {
      "file tree": {
         "Spare_-_Prince_Harry_The_Duke_of_Sussex_.epub": {
            "": {
               "length": 3722433,
               "pieces root": "<hex>82 0A 2D 35 58 17 BF 8D E9 C1 F8 6C 72 A3 72 79 3B E4 88 E2 52 3C C3 00 A8 75 02 9F D1 88 67 4E</hex>"
            }
         }
      },
      "length": 3722433,
      "meta version": 2,
      "name": "Spare_-_Prince_Harry_The_Duke_of_Sussex_.epub",
      "piece length": 32768,
      "pieces": "<hex>66 F0 ... D8 EE</hex>"
   },
Thanks for the heads-up, much appreciated!
You're welcome. I upgraded to the latest version of qBit which has a libtorrent update too. But got the same results.
If someone knows the lt and qBit source code well, maybe you can have a look. Not previously familiar with either, i ended up tiring myself out. Only managed to find out some crucial bit of code. Both are on github, btw. The essential logic is in 2,3 files.
It seems it is by design: https://github.com/qbittorrent/qBittorre...ions/16090

Let's say we have file test.txt and we create torrent from it: a V1, a V2, and a hybrid, using piece size of 16Kb

The V1 hash of a torrent is not the same with the V1 hash of a hybrid torrent.
The V2 hash of a torrent is not the same with the V2 hash of a hybrid torrent.

Therefore, a client seeding a single V1 or V2 torrent cannot connect with a client downloading a hybrid torrent, and vice-versa.
Thank you for digging that up, maskaw.

The poster in that thread states 'by design'.
The v2 spec mentions interoperability with v1.
So, wonder if it is something else/more.
A lot of discussion has happened on lt and qbit forums. Can't say i understand all of it.

I realized there is lot more i have to learn. So, will close this discussion for now.

PS: Tixati seems to have support for v1, v2 and hybrid.
(Jun 02, 2023, 00:42 am)SectorVector Wrote: [ -> ]PS: Tixati seems to have support for v1, v2 and hybrid.

Both ways?

V1 <-> Hybrid / V2 <-> Hybrid have the same hashes?
I haven't been able to look into Tixati operation, yet. Will update. Some other clients too seem to have v2 support. Need to explore. Bit pressed for time.

A torrent dumper would be helpful, to know the individual SHA-1 file hashes of a multi-file V2 torrent.
How libtorrent 2.0 arrives at the v1 hash of a hybrid torrent and why it differs from a v1 torrent hash would help clear the air.