qBittorrent: getting a hybrid torrent to work
#1
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.
Reply
#2
Quote:Note: v1 torrents and v1 peers correspond to the torrents downloaded in step (1).

V1 hashes must match.
Reply
#3
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>"
   },
Reply
#4
Thanks for the heads-up, much appreciated!
Reply
#5
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.
Reply
#6
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.
Reply
#7
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.
Reply
#8
(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?
Reply
#9
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.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Will the old apps work after a Windows re-install? rezwaki 2 6,154 Dec 19, 2022, 13:34 pm
Last Post: rezwaki
  Getting error on all downloads Robert4578 2 7,092 Nov 22, 2022, 21:35 pm
Last Post: Robert4578
  Struggling to make MediCat USB to work zillah 0 7,141 Apr 15, 2022, 05:46 am
Last Post: zillah
  Warcraft III does not work on a Windows 7 Virtualbox VM RobertX 47 54,285 Sep 18, 2021, 11:52 am
Last Post: RobertX
  Can't get this Torrent of Stardock Fences to work DoesntWantToPayForSoftware 2 13,289 Sep 01, 2020, 12:05 pm
Last Post: xenomorphoid



Users browsing this thread: 2 Guest(s)