diff --git a/proxy/miner.go b/proxy/miner.go index 039ad22..852b9da 100644 --- a/proxy/miner.go +++ b/proxy/miner.go @@ -39,21 +39,28 @@ func (s *ProxyServer) processShare(login, id, ip string, t *BlockTemplate, param nonceHex := params[0] hashNoNonce := params[1] + mixDigest := params[2] nonce, _ := strconv.ParseUint(strings.Replace(nonceHex, "0x", "", -1), 16, 64) shareDiff := s.config.Proxy.Difficulty stratumHostname := s.config.Proxy.StratumHostname var result common.Hash if stratum { - hashNoNonceTmp := common.HexToHash(params[1]) + hashNoNonceTmp := common.HexToHash(params[2]) - _, hashTmp := hasher.Compute(t.Height, hashNoNonceTmp, nonce) + mixDigestTmp, hashTmp := hasher.Compute(t.Height, hashNoNonceTmp, nonce) params[1] = hashNoNonceTmp.Hex() + params[2] = mixDigestTmp.Hex() + hashNoNonce = params[1] result = hashTmp } else { hashNoNonceTmp := common.HexToHash(hashNoNonce) - _, hashTmp := hasher.Compute(t.Height, hashNoNonceTmp, nonce) + mixDigestTmp, hashTmp := hasher.Compute(t.Height, hashNoNonceTmp, nonce) + // check mixDigest + if mixDigestTmp.Hex() != mixDigest { + return false, false + } result = hashTmp }