P2P:Protocol:Specifications:Optional Hashes

From Depthstrike Entertainment
Jump to: navigation, search

Optional P2P Hashes

  • This specification is a draft as of this writing.

Notes

  • This protocol extension is to include hash information about individual files in a .torrent file to permit a torrent to survive beyond the threshold of sub-1 distribution among bittorrent client peers.
  • Multiple-network clients intending to implement support for any of these hashes should only be obligated to support the hashes actively used as searchable "keywords" on networks they support.
  • In the event of a conflict between these hashes and the main piece hashes, the piece hashes are to be considered correct.

Current Hashes

CRC32

  • Reference Only.
  • Because of the insecure nature of CRC32 and its overall lack of use in p2p applications, it is only included in some torrents for reference purposes.
  • This hash is stored in the torrent in an 8-byte string of hexadecimal characters.
  • Locations in the metafile:
    • info\crc32 (single file torrent)
    • info\files\<file entry>\crc32 (multiple file torrent)

MD5

  • Reference, partial usability.
  • Although there is a collision possibility with MD5, when coupled with an additional hash algorithm it can still be considered secure.
  • Some p2p applications may still use MD5 as their identifying hash.
  • This hash is stored in the torrent in a 32-byte string of hexadecimal characters.
  • Locations in the metafile:
    • info\md5sum (single file torrent)
    • info\files\<file entry>\md5sum (multiple file torrent)

ED2K

  • Actively used.
  • ED2K, although based on the insecure MD4, is used primarily in the eDonkey2000 protocol, used by eDonkey, eMule and several other clients.
  • This hash is stored in the torrent in a 16-byte "raw" format.
  • Locations in the metafile:
    • info\ed2k (single file torrent)
    • info\files\<file entry>\ed2k (multiple file torrent)

SHA1

  • Actively used.
  • SHA1 is the primary keyword hash on GNUTella1 and GNUTella2 networks in addition to others.
  • This hash is stored in the torrent in a 20-byte "raw" format.
  • Locations in the metafile:
    • info\sha1 (single file torrent)
    • info\files\<file entry>\sha1 (multiple file torrent)

TTH Root

  • Actively used.
  • The Tiger Tree Hash is the primary keyword hash on several DirectConnect servers, and is used as a secondary keyword hash on GNUTella networks.
  • This hash is stored in the torrent in a 24-byte "raw" format.
  • Locations in the metafile:
    • info\tiger (single file torrent)
    • info\files\<file entry>\tiger (multiple file torrent)

Support by program

Torrent Makers

Torrent Maker CRC32 MD5 ED2K SHA1 TTH
TorrentBuild Yes Yes Yes Yes Yes
TorrentBuild-CPP Planned Planned Planned Yes Planned
TorrentAid No No Yes Yes No
ABC Integrated Yes Yes Planned Yes Unknown
Azureus Integrated No No Yes Yes No
TorrentSpy No Yes No No No

Multinetwork Clients

Client CRC32 MD5 ED2K SHA1 TTH
Shareaza No No Yes Yes Yes
Shareaza
  • Shareaza currently supports using the p2p hashes listed above as search keywords when added from single-file torrents.
  • No special steps are required to get Shareaza to search based on the hash. The search will happen automatically.
  • Plans to support individual files within a batch have been made, but major reworking of the temporary file system is required.