Browse Source

add nHeight to header for mining (a couple of offsets need +4 to work again)

miguelfreitas
Miguel Freitas 12 years ago
parent
commit
0b753e0ce2
  1. 12
      src/main.cpp

12
src/main.cpp

@ -3386,7 +3386,7 @@ void SHA256Transform(void* pstate, void* pinput, const void* pinit)
// //
unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1, char* phash, unsigned int& nHashesDone) unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1, char* phash, unsigned int& nHashesDone)
{ {
unsigned int& nNonce = *(unsigned int*)(pdata + 12); unsigned int& nNonce = *(unsigned int*)(pdata + 12 + 4);
for (;;) for (;;)
{ {
// Crypto++ SHA256 // Crypto++ SHA256
@ -3398,7 +3398,7 @@ unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1
// Return the nonce if the hash has at least some zero bits, // Return the nonce if the hash has at least some zero bits,
// caller will check if it has enough to reach the target // caller will check if it has enough to reach the target
if (((unsigned short*)phash)[14] == 0) if (((unsigned short*)phash)[14 + 4] == 0)
return nNonce; return nNonce;
// If nothing found after trying for a while, return -1 // If nothing found after trying for a while, return -1
@ -3620,6 +3620,7 @@ void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash
struct unnamed2 struct unnamed2
{ {
int nVersion; int nVersion;
int nHeight;
uint256 hashPrevBlock; uint256 hashPrevBlock;
uint256 hashMerkleRoot; uint256 hashMerkleRoot;
unsigned int nTime; unsigned int nTime;
@ -3635,6 +3636,7 @@ void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash
memset(&tmp, 0, sizeof(tmp)); memset(&tmp, 0, sizeof(tmp));
tmp.block.nVersion = pblock->nVersion; tmp.block.nVersion = pblock->nVersion;
tmp.block.nHeight = pblock->nHeight;
tmp.block.hashPrevBlock = pblock->hashPrevBlock; tmp.block.hashPrevBlock = pblock->hashPrevBlock;
tmp.block.hashMerkleRoot = pblock->hashMerkleRoot; tmp.block.hashMerkleRoot = pblock->hashMerkleRoot;
tmp.block.nTime = pblock->nTime; tmp.block.nTime = pblock->nTime;
@ -3736,9 +3738,9 @@ void static BitcoinMiner(CWallet *pwallet)
FormatHashBuffers(pblock, pmidstate, pdata, phash1); FormatHashBuffers(pblock, pmidstate, pdata, phash1);
unsigned int& nBlockTime = *(unsigned int*)(pdata + 64 + 4); unsigned int& nBlockTime = *(unsigned int*)(pdata + 64 + 4 + 4);
unsigned int& nBlockBits = *(unsigned int*)(pdata + 64 + 8); unsigned int& nBlockBits = *(unsigned int*)(pdata + 64 + 8 + 4);
unsigned int& nBlockNonce = *(unsigned int*)(pdata + 64 + 12); unsigned int& nBlockNonce = *(unsigned int*)(pdata + 64 + 12 + 4);
// //

Loading…
Cancel
Save