You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to adapt this algorithm in order to implement a ZCash miner. However, analysing the code I have some doubts about how XOR is computed in the various steps of the algorithm.
In function void Equihash::FillMemory(uint32_t length) hashes are generated in the following way:
Why, at row 74, only the most significant n/(k + 1) bits of buf[j] are stored and why the remaining 32-n/(k+1) bits are not considered?
In function void Equihash::ResolveCollisions(bool store) tuples' blocks are XORed generating a new tupleList. Neveretheless, in this way, if I have correctly understood, in each step of the algorithm, every n/(k+1) bits are not considered sequentially.
I try to make an example:
k=9, n=200
On each step I'm interested in the next 20 bits i.e. bits from 0 to 19 on first step, 0 to 39 on second etc.
In this algorithm it seems to me that in the first step are considered bits from 0 to 19, 32 to 52 on second etc because the shift register operation cut off the bits from 20 to 31
The text was updated successfully, but these errors were encountered:
giulitu95
changed the title
Implementation of a Zcash miner
Why a right-shift operation is performed after generating blake2b hash?
May 1, 2020
giulitu95
changed the title
Why a right-shift operation is performed after generating blake2b hash?
Why a right-shift after generating blake2b hash?
May 1, 2020
giulitu95
changed the title
Why a right-shift after generating blake2b hash?
Why right-shift after generating blake2b hash?
May 1, 2020
I want to adapt this algorithm in order to implement a ZCash miner. However, analysing the code I have some doubts about how XOR is computed in the various steps of the algorithm.
In function
void Equihash::FillMemory(uint32_t length)
hashes are generated in the following way:equihash/Source/C++11/pow.cc
Lines 67 to 79 in 4140bd6
Why, at row 74, only the most significant n/(k + 1) bits of
buf[j]
are stored and why the remaining 32-n/(k+1) bits are not considered?In function
void Equihash::ResolveCollisions(bool store)
tuples' blocks are XORed generating a new tupleList. Neveretheless, in this way, if I have correctly understood, in each step of the algorithm, every n/(k+1) bits are not considered sequentially.I try to make an example:
k=9, n=200
On each step I'm interested in the next 20 bits i.e. bits from 0 to 19 on first step, 0 to 39 on second etc.
In this algorithm it seems to me that in the first step are considered bits from 0 to 19, 32 to 52 on second etc because the shift register operation cut off the bits from 20 to 31
The text was updated successfully, but these errors were encountered: