kenshirothefist
|
|
December 10, 2014, 03:37:27 PM |
|
a new version based on the latest sgminer5 version is coming, these problems should be fixed (can't test it though, I have only one amd card)
djm34, could you please work with Slix (ystarnaud) to include Lyra2RE into https://github.com/sgminer-dev/sgminer once is stable?
|
|
|
|
jamesl22
|
|
December 10, 2014, 03:40:40 PM |
|
DEV,i found a bug in lyra2.c please check this code
//================================ Setup Phase =============================// //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits ptrWord = &wholeMatrix[0]; for (i = 0; i < nBlocksInput; i++) { absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil) ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil) ------------------------------------------------------- BLOCK_LEN_BLAKE2_SAFE_BYTES is 64 the problem is ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte, so ,the next round ,all ptrWord is zero, that means Concatenates the basil and padding are not used!!!!!!
you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64
Surely though, "absorbBlockBlake2Safe" absorbs an entire block of 64 bytes (512 bits). ptrWord is then pushed forward by another 512 bits since +=ing a pointer pushes it forward in multiples of bytes. So on line "ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES;", the pointer is pushed forward by 64 bytes (512 bits), and the process is repeated for the next block.
|
|
|
|
LTCMAXMYR
|
|
December 10, 2014, 03:53:44 PM |
|
DEV,i found a bug in lyra2.c please check this code
//================================ Setup Phase =============================// //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits ptrWord = &wholeMatrix[0]; for (i = 0; i < nBlocksInput; i++) { absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil) ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil) ------------------------------------------------------- BLOCK_LEN_BLAKE2_SAFE_BYTES is 64 the problem is ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte, so ,the next round ,all ptrWord is zero, that means Concatenates the basil and padding are not used!!!!!!
you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64
Surely though, "absorbBlockBlake2Safe" absorbs an entire block of 64 bytes (512 bits). ptrWord is then pushed forward by another 512 bits since +=ing a pointer pushes it forward in multiples of bytes. So on line "ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES;", the pointer is pushed forward by 64 bytes (512 bits), and the process is repeated for the next block. in windows and vs2010,i debug and trace,the pointer is truly add 512 byte,not 64 byte
|
Never buy any ICO altcoin. Never buy any ASIC altcoin.
|
|
|
a432511
Newbie
Offline
Activity: 5
Merit: 0
|
|
December 10, 2014, 03:54:01 PM |
|
The code is correct. This is the block of code from master-0.9.0.1 and from latest out of Lyra2's github. //================================ Setup Phase =============================// //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits ptrWord = wholeMatrix; for (i = 0; i < nBlocksInput; i++) { absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil) ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil) } So, ptrWord moves to a new 64byte block of the wholeMatrix which gets XORd against state in absorbBlockBlake2Safe. I'm not sure where you got this code: ptrWord = &wholeMatrix[0]; but that is not what is implemented. a432511 We are looking into this and evaluating the impact. This was written by the authors of the Lyra2 algorithm, so we are trying to contact them as well. Cheers, a432511 DEV,i found a bug in lyra2.c please check this code
//================================ Setup Phase =============================// //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits ptrWord = &wholeMatrix[0]; for (i = 0; i < nBlocksInput; i++) { absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil) ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil) ------------------------------------------------------- BLOCK_LEN_BLAKE2_SAFE_BYTES is 64 the problem is ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte, so ,the next round ,all ptrWord is zero, that means Concatenates the basil and padding are not used!!!!!!
you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64
|
|
|
|
LTCMAXMYR
|
|
December 10, 2014, 04:17:12 PM |
|
the origin wholeMatrix= (uint64_t*)malloc(i); i replace it with uint64_t wholeMatrix[768] ; so no malloc need. both code,the ptrWord have the same situation.add 512 byte per block another place, the code is //Places the pointers in the correct positions uint64_t *ptrWord = wholeMatrix; for (i = 0; i < nRows; i++) { memMatrix = ptrWord; ptrWord += ROW_LEN_INT64;//ROW_LEN_INT64 is 12 }
so ,the ptrWord add ROW_LEN_INT64,it is correct.
The code is correct. This is the block of code from master-0.9.0.1 and from latest out of Lyra2's github. //================================ Setup Phase =============================// //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits ptrWord = wholeMatrix; for (i = 0; i < nBlocksInput; i++) { absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil) ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil) } So, ptrWord moves to a new 64byte block of the wholeMatrix which gets XORd against state in absorbBlockBlake2Safe. I'm not sure where you got this code: ptrWord = &wholeMatrix[0]; but that is not what is implemented. a432511 We are looking into this and evaluating the impact. This was written by the authors of the Lyra2 algorithm, so we are trying to contact them as well. Cheers, a432511 DEV,i found a bug in lyra2.c please check this code
//================================ Setup Phase =============================// //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits ptrWord = &wholeMatrix[0]; for (i = 0; i < nBlocksInput; i++) { absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil) ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil) ------------------------------------------------------- BLOCK_LEN_BLAKE2_SAFE_BYTES is 64 the problem is ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte, so ,the next round ,all ptrWord is zero, that means Concatenates the basil and padding are not used!!!!!!
you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64
|
Never buy any ICO altcoin. Never buy any ASIC altcoin.
|
|
|
djm34
Legendary
Offline
Activity: 1400
Merit: 1050
|
|
December 10, 2014, 04:19:28 PM |
|
a new version based on the latest sgminer5 version is coming, these problems should be fixed (can't test it though, I have only one amd card)
djm34, could you please work with Slix (ystarnaud) to include Lyra2RE into https://github.com/sgminer-dev/sgminer once is stable? ok, will do
|
djm34 facebook pageBTC: 1NENYmxwZGHsKFmyjTc5WferTn5VTFb7Ze Pledge for neoscrypt ccminer to that address: 16UoC4DmTz2pvhFvcfTQrzkPTrXkWijzXw
|
|
|
DonQuijote
Legendary
Offline
Activity: 1551
Merit: 1002
♠ ♥ ♣ ♦ < ♛♚&#
|
|
December 10, 2014, 04:19:48 PM |
|
Are there dedicated thread for new algo?
|
THE INGENIOUS GENTLEMAN DON QUIXOTE OF LA MANCHA
|
|
|
LTCMAXMYR
|
|
December 10, 2014, 04:31:25 PM |
|
the ptrWord is used in tow place ptrWord += ROW_LEN_INT64;
and
ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil),
ROW_LEN_INT64 is 12
BLOCK_LEN_BLAKE2_SAFE_BYTES is 64
This is a contradiction, one must be incorrect. if this code not change ,the miner and the wallet will work with no problem. but the hash function may have some optimization
|
Never buy any ICO altcoin. Never buy any ASIC altcoin.
|
|
|
gregbe
Newbie
Offline
Activity: 14
Merit: 0
|
|
December 10, 2014, 05:08:17 PM |
|
Can someone explain what's going to happen when the hard fork occurs? I assume that I will need to manually switch my miner to using Lyra2RE and point it at a pool or p2pool that's running the right algorithm. How will I know when to do that/how do I check when block 208301 is mined? thx
|
|
|
|
djm34
Legendary
Offline
Activity: 1400
Merit: 1050
|
|
December 10, 2014, 05:17:41 PM |
|
Can someone explain what's going to happen when the hard fork occurs? I assume that I will need to manually switch my miner to using Lyra2RE and point it at a pool or p2pool that's running the right algorithm. How will I know when to do that/how do I check when block 208301 is mined? thx
getmininginfo from the wallet, or just watch the thread
|
djm34 facebook pageBTC: 1NENYmxwZGHsKFmyjTc5WferTn5VTFb7Ze Pledge for neoscrypt ccminer to that address: 16UoC4DmTz2pvhFvcfTQrzkPTrXkWijzXw
|
|
|
nov
|
|
December 10, 2014, 05:42:31 PM |
|
Hello
Somebody asked yesterday if Vertigo - Vertcoin Lightweight Wallet will be updated for the Vertcoin fork.
Vertigo is going to be updated to the recent Vertcoin fork.
However some technical information details for implementation is needed to know, what needs to be updated, implemented to make the update.
Could somebody from Vertcoin developers provide details about the fork what needs to be updated and or possibly provide updated VertcoinJ library, please?
PS: VertcoinJ library is also used in Android Wallet.
Regards
|
|
|
|
jamesl22
|
|
December 10, 2014, 05:52:00 PM |
|
Can someone explain what's going to happen when the hard fork occurs? I assume that I will need to manually switch my miner to using Lyra2RE and point it at a pool or p2pool that's running the right algorithm. How will I know when to do that/how do I check when block 208301 is mined? thx
getmininginfo from the wallet, or just watch the thread Or use http://explorer.vertcoin.org/
|
|
|
|
jamesl22
|
|
December 10, 2014, 05:52:43 PM |
|
the ptrWord is used in tow place ptrWord += ROW_LEN_INT64;
and
ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil),
ROW_LEN_INT64 is 12
BLOCK_LEN_BLAKE2_SAFE_BYTES is 64
This is a contradiction, one must be incorrect. if this code not change ,the miner and the wallet will work with no problem. but the hash function may have some optimization
I think we shall have to leave it how it is as there is not enough time before the fork to make the change. As you say though, it will have little to no impact.
|
|
|
|
|
silencesilence
Legendary
Offline
Activity: 1120
Merit: 1000
|
|
December 10, 2014, 09:24:39 PM |
|
Hello
Somebody asked yesterday if Vertigo - Vertcoin Lightweight Wallet will be updated for the Vertcoin fork.
Vertigo is going to be updated to the recent Vertcoin fork.
However some technical information details for implementation is needed to know, what needs to be updated, implemented to make the update.
Could somebody from Vertcoin developers provide details about the fork what needs to be updated and or possibly provide updated VertcoinJ library, please?
PS: VertcoinJ library is also used in Android Wallet.
Regards
Thanks
|
|
|
|
|
escalicha
|
|
December 10, 2014, 10:23:21 PM |
|
Thanks James!! Very gratefull!
|
|
|
|
SS2006
|
|
December 10, 2014, 10:44:50 PM |
|
at this rate, is the fork 2 days aaway?
|
|
|
|
paulo_thork
Newbie
Offline
Activity: 20
Merit: 0
|
|
December 10, 2014, 10:57:09 PM |
|
what are the features of this alg to combat muitipoll?
|
|
|
|
DonQuijote
Legendary
Offline
Activity: 1551
Merit: 1002
♠ ♥ ♣ ♦ < ♛♚&#
|
|
December 10, 2014, 11:20:05 PM |
|
|
THE INGENIOUS GENTLEMAN DON QUIXOTE OF LA MANCHA
|
|
|
|