From Envy Wiki
Jump to: navigation, search
Appointment-new.png  Updated:

This page has been updated on 2009-12-13 for the release of Shareaza v2.5.1.0.

Locked Screen.png  Stable Content

The information on this page should apply to all Envy versions provided there are no major changes.


What is TigerTree Hashing?

Tiger-Tree Hashing, commonly abbreviated as TTH, is a way of verifying that small pieces of a file are valid, and free from corruption. Without a system such as TTH, an application would be unable to locate where corruption was occurring in a file, and would not be able to repair the errors.

In a tree hash, a file is broken up into small pieces, and each small piece of a file is hashed. These pieces are divided into sets according to some simple rules, and the hashes in each of these sets concatenated and hashed again. The process can be repeated some number of times (hence the diagram of a tree), until there remains one hash, called the root hash.

When you start a download, Envy can get the root hash from a source of the file, or Envy may know the root already (if it was contained in a magnet link from which you began the download, for example, or it may have been in the search results results). After getting the root hash, Envy can ask for the rest of the tree from a source of the file.

By using Tiger-Tree Hashing, Envy ensures that files are valid, and that any problems in transfer can be corrected quickly and easily.

You might see TTH in action if a tiny portion of a download ever has a short red section under it - this means there was a problem with the transfer, and Envy is correcting the error.

You can also take a look at the FAQ.Transfers page for some basic information on how Tiger-Tree is used by Envy. Refer to the THEX protocol for in depth infromation about Tree Hash EXchange and tree hashes in general. Refer to the Tiger Hash web page for information about the Tiger Hash algorithm. Refer to the TigerTree project page on sourceforge for the specifics on how the tiger hash algorithm has been implemented into a Merkle hash tree structure to create 'Tiger-Tree' hash sets.

Note that when encountering the word 'Tiger-Tree', an author may sometimes be referring to the Tiger Tree root hash, or at other times the entire hash tree structure.

Navigation:     EnvyWiki > Networks and Hashes > TigerTree