2.1 KiB
BEP52 - The BitTorrent Protocol Specification v2 says the following:
When initiating a connection and sending the sha1 infohash of such a hybrid torrent a peer can set the 4th most significant bit in the last byte of the reserved bitfield to indicate that it also supports the new format. The remote peer may then respond with the new infohash to upgrade the connect to the new format.
This is still a bit unclear to me. When saying sha1 infohash of a hybrid torrent do they mean sha1 hash of the bencoded info dictionary of a hybrid torrent file, which contains both version 1 and version 2 protocol properties? Following the official encoder, an info hash of a hybrid torrent file is sha256 and not sha1, thus it seems that the spec here means the the client supporting both versions of the protocol may compute version 1 info hash and try to join version 1 swarm, where upon discovering peers that support version 2 of the protocol they can switch to version 2 on the fly. This is more complex than it sounds: not only the peer needs to implement the version 2 of the protocol, but it also need to posses the relevant data and metadata.
This feels a bit over-complicated and far from pragmatism: for the same content, we may endup having three different hashes: first for version 1, second for version 2, and then third for hybrid. And then a peer advertising the content only as version 2, naturally not respond to version 1 and hybrid versions. A peer that wants to increase the reach of the given content should therefore advertise on three different info hashes. Equally, one may have impression that the downloading peer should try to join three different swarms: one for version 1, one for version 2, and one for the hybrid version. It seems that the spec has something different in mind: by saying "sha1 infohash of such a hybrid torent" above, it does not actually mean an info hash from the so-called hybrid torrent file containing both version 1 and version 2 attributes in the info dictionary.
I am not sure if supporting hybrid torrent is something that actually happens in nature, thus for the moment I am not trying to validate the details.