|
|
|
@ -6,8 +6,8 @@ import ( |
|
|
|
|
"math/rand" |
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/crypto/sha3" |
|
|
|
|
"github.com/ethereum/go-ethereum/common" |
|
|
|
|
"github.com/ethereum/go-ethereum/crypto/sha3" |
|
|
|
|
"github.com/ethereum/go-ethereum/logger" |
|
|
|
|
"github.com/ethereum/go-ethereum/pow" |
|
|
|
|
) |
|
|
|
@ -83,17 +83,14 @@ func (pow *EasyPow) Verify(block pow.Block) bool { |
|
|
|
|
return Verify(block) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func verify(hash []byte, diff *big.Int, nonce uint64) bool { |
|
|
|
|
func verify(hash common.Hash, diff *big.Int, nonce uint64) bool { |
|
|
|
|
sha := sha3.NewKeccak256() |
|
|
|
|
|
|
|
|
|
n := make([]byte, 8) |
|
|
|
|
binary.PutUvarint(n, nonce) |
|
|
|
|
d := append(hash, n...) |
|
|
|
|
sha.Write(d) |
|
|
|
|
|
|
|
|
|
sha.Write(n) |
|
|
|
|
sha.Write(hash[:]) |
|
|
|
|
verification := new(big.Int).Div(common.BigPow(2, 256), diff) |
|
|
|
|
res := common.BigD(sha.Sum(nil)) |
|
|
|
|
|
|
|
|
|
return res.Cmp(verification) <= 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|