Page 1 of 1

Set as MasterHash

Posted: Sun Nov 10, 2013 11:21 am
by abel
Image

What means and how it works?
(Considering that there is a lot of confusion on the eMule docs/thread about the terms "roothash" and "masterhash")

Posted: Sun Nov 10, 2013 11:35 am
by DavidXanatos
The feature is not eMule specific and in fact it applies to all downloads that have more than one hash.

The fundamental problem is that there is no bijective correlation between the hashes. They all are calculated form the same source data but there is no way to verify that 2 hashes have really been calculated form the same source data, other than having the source data and recalculating them.

So for downloading a file thats useless, and if some one tells us bullshit we may have a file that has a ed2k hash that is for a different file than the torrent hash or neo hash, or etc...
Thats bad, cause than we will never finish the download and the results of hash verification will be conflicting.

To resolve this problem we define one hash as Master.
That means if there will be a conflict between the hashes the master always wins and the other hash is removed and blacklisted.

So in a real word scenario, it would look like this:
We add a torrent to download and neo finds in its kad an ed2k hash associated with the torrent info hash and adds the ed2k hash to the file.
Than Neo downloads some data form torrent hashes them using the ed2k hash and the torrent hash and well, the torrent hash says all OK, and the ed2k hash says not OK. Than Neo knows the ed2k hash does not really belong to the file and blacklists it and searches for a different one.
This way you can finish downloading exactly the file you wanted without any problems.

The master hash is by default set to the highest priority hash that was known at the moment the file was added to the download list.
So we prefer Neo hash over ed2k hash over aich hash over torrent hash, but once we chosen we stick to the choice even if we later find a higher priority hash, that is unless the user changes the choice manually with the context menu command in question.

Posted: Sun Nov 10, 2013 12:00 pm
by Neo26
Why should the user change the neo choice ? Does this button is really needed ?

Posted: Sun Nov 10, 2013 1:04 pm
by DavidXanatos
well the option is there mostly for me to test things, but i can immageine advanced users wanting to use it to

Posted: Sun Nov 10, 2013 1:12 pm
by Neo26
DavidXanatos wrote:well the option is there mostly for me to test things, but i can immageine advanced users wanting to use it to


I don't think so... I suggest to remove it when you finished your testing ;)

Posted: Sun Nov 10, 2013 1:24 pm
by abel
And advanced users use "Advanced" or "Developer" interface, so this should be hidden in Simple interface. ;-)

Posted: Sun Nov 10, 2013 2:12 pm
by DavidXanatos
ok in next release it will be only in advanced interface

Posted: Sun Nov 10, 2013 3:12 pm
by abel
and Developer interface .... a user "Developer" must have ALL the options of the Advanced & Simple users, plus others.

Simple ⊆ Advanced ⊆ Developer.

Posted: Sun Nov 10, 2013 7:18 pm
by DavidXanatos
abel wrote:and Developer interface .... a user "Developer" must have ALL the options of the Advanced & Simple users, plus others.

Simple ⊆ Advanced ⊆ Developer.

yes thats the plan

Fatal: Not able to open ./cache/data_global.php