|
|
|
@ -1,6 +1,7 @@ |
|
|
|
|
package ezp |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"fmt" |
|
|
|
|
"math/big" |
|
|
|
|
"math/rand" |
|
|
|
|
"time" |
|
|
|
@ -53,13 +54,13 @@ func (pow *EasyPow) Search(block pow.Block, stop <-chan struct{}) []byte { |
|
|
|
|
elapsed := time.Now().UnixNano() - start |
|
|
|
|
hashes := ((float64(1e9) / float64(elapsed)) * float64(i)) / 1000 |
|
|
|
|
pow.HashRate = int64(hashes) |
|
|
|
|
//powlogger.Infoln("Hashing @", pow.HashRate, "khash")
|
|
|
|
|
|
|
|
|
|
t = time.Now() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sha := crypto.Sha3(big.NewInt(r.Int63()).Bytes()) |
|
|
|
|
if verify(hash, diff, sha) { |
|
|
|
|
fmt.Printf("HASH: %x\nDIFF %v\nSHA %x\n", hash, diff, sha) |
|
|
|
|
return sha |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -83,7 +84,7 @@ func verify(hash []byte, diff *big.Int, nonce []byte) bool { |
|
|
|
|
sha.Write(d) |
|
|
|
|
|
|
|
|
|
verification := new(big.Int).Div(ethutil.BigPow(2, 256), diff) |
|
|
|
|
res := ethutil.U256(ethutil.BigD(sha.Sum(nil))) |
|
|
|
|
res := ethutil.BigD(sha.Sum(nil)) |
|
|
|
|
|
|
|
|
|
return res.Cmp(verification) <= 0 |
|
|
|
|
} |
|
|
|
|