|
|
|
@ -140,8 +140,9 @@ func (ethash *Ethash) mine(block *types.Block, id int, seed uint64, abort chan s |
|
|
|
|
) |
|
|
|
|
// Start generating random nonces until we abort or find a good one
|
|
|
|
|
var ( |
|
|
|
|
attempts = int64(0) |
|
|
|
|
nonce = seed |
|
|
|
|
attempts = int64(0) |
|
|
|
|
nonce = seed |
|
|
|
|
powBuffer = new(big.Int) |
|
|
|
|
) |
|
|
|
|
logger := ethash.config.Log.New("miner", id) |
|
|
|
|
logger.Trace("Started ethash search for new nonces", "seed", seed) |
|
|
|
@ -163,7 +164,7 @@ search: |
|
|
|
|
} |
|
|
|
|
// Compute the PoW value of this nonce
|
|
|
|
|
digest, result := hashimotoFull(dataset.dataset, hash, nonce) |
|
|
|
|
if new(big.Int).SetBytes(result).Cmp(target) <= 0 { |
|
|
|
|
if powBuffer.SetBytes(result).Cmp(target) <= 0 { |
|
|
|
|
// Correct nonce found, create a new header with it
|
|
|
|
|
header = types.CopyHeader(header) |
|
|
|
|
header.Nonce = types.EncodeNonce(nonce) |
|
|
|
|