mirror of
https://github.com/kvazar-network/keva-stratum.git
synced 2025-02-04 11:14:17 +00:00
Add option to bypass share validation
This commit is contained in:
parent
75d032844b
commit
7d214047cf
@ -1,6 +1,7 @@
|
||||
{
|
||||
"address": "46BeWrHpwXmHDpDEUmZBWZfoQpdc6HaERCNmx1pEYL2rAcuwufPN9rXHHtyUA4QVy66qeFQkn6sfK8aHYjA3jk3o1Bv16em",
|
||||
"bypassAddressValidation": false,
|
||||
"bypassAddressValidation": true,
|
||||
"bypassShareValidation": true,
|
||||
|
||||
"threads": 2,
|
||||
|
||||
|
@ -3,6 +3,7 @@ package pool
|
||||
type Config struct {
|
||||
Address string `json:"address"`
|
||||
BypassAddressValidation bool `json:"bypassAddressValidation"`
|
||||
BypassShareValidation bool `json:"bypassShareValidation"`
|
||||
Stratum Stratum `json:"stratum"`
|
||||
Daemon Daemon `json:"daemon"`
|
||||
|
||||
|
@ -110,10 +110,16 @@ func (m *Miner) processShare(s *StratumServer, job *Job, t *BlockTemplate, nonce
|
||||
nonceBuff, _ := hex.DecodeString(nonce)
|
||||
copy(shareBuff[39:], nonceBuff)
|
||||
|
||||
convertedBlob := cnutil.ConvertBlob(shareBuff)
|
||||
hashBytes := hashing.Hash(convertedBlob, false)
|
||||
var hashBytes, convertedBlob []byte
|
||||
|
||||
if hex.EncodeToString(hashBytes) != result {
|
||||
if s.config.BypassShareValidation {
|
||||
hashBytes, _ = hex.DecodeString(result)
|
||||
} else {
|
||||
convertedBlob = cnutil.ConvertBlob(shareBuff)
|
||||
hashBytes = hashing.Hash(convertedBlob, false)
|
||||
}
|
||||
|
||||
if !s.config.BypassShareValidation && hex.EncodeToString(hashBytes) != result {
|
||||
log.Printf("Bad hash from miner %v@%v", m.Login, m.IP)
|
||||
return false
|
||||
}
|
||||
@ -125,6 +131,9 @@ func (m *Miner) processShare(s *StratumServer, job *Job, t *BlockTemplate, nonce
|
||||
if err != nil {
|
||||
log.Printf("Block submission failure at height %v: %v", t.Height, err)
|
||||
} else {
|
||||
if len(convertedBlob) == 0 {
|
||||
convertedBlob = cnutil.ConvertBlob(shareBuff)
|
||||
}
|
||||
blockFastHash := hex.EncodeToString(hashing.FastHash(convertedBlob))
|
||||
// Immediately refresh current BT and send new jobs
|
||||
s.refreshBlockTemplate(true)
|
||||
|
Loading…
x
Reference in New Issue
Block a user