Commit 6406684c authored by vicotor's avatar vicotor

fix bug for verify miner signature

parent 182f7a82
package server
import (
"crypto/ecdsa"
"errors"
"github.com/ethereum/go-ethereum/crypto"
"github.com/odysseus/nodemanager/utils"
......@@ -85,8 +84,10 @@ func (wm *WorkerManager) computeTaskResult(worker *Worker, task *odysseus.TaskCo
signature = signature[:64]
}
verified := crypto.VerifySignature(utils.FromHex(worker.info.nodeInfo.MinerPubkey), dataHash[:], signature)
//verified := ecdsa.VerifyASN1(minerPubkey, dataHash[:], result.MinerSignature)
log.WithField("minerSignatureVerify", verified).Debug("miner signature verify")
log.WithFields(log.Fields{
"minerSignatureVerify": verified,
"taskkind": task.TaskKind,
}).Debug("miner signature verify")
if !verified {
// todo: handle signature verify failed
}
......@@ -174,9 +175,15 @@ func (wm *WorkerManager) standardTaskResult(worker *Worker, task *odysseus.TaskC
paramHash := crypto.Keccak256Hash(task.TaskParam)
resultHash := crypto.Keccak256Hash(result.TaskResultBody)
dataHash := crypto.Keccak256Hash(utils.CombineBytes([]byte(result.TaskId), paramHash[:], resultHash[:]))
minerPubkey, _ := utils.HexToPubkey(worker.info.nodeInfo.MinerPubkey)
verified := ecdsa.VerifyASN1(minerPubkey, dataHash[:], result.MinerSignature)
log.WithField("minerSignatureVerify", verified).Debug("miner signature verify")
signature := result.MinerSignature
if len(signature) == 65 {
signature = signature[:64]
}
verified := crypto.VerifySignature(utils.FromHex(worker.info.nodeInfo.MinerPubkey), dataHash[:], signature)
log.WithFields(log.Fields{
"minerSignatureVerify": verified,
"taskkind": task.TaskKind,
}).Debug("miner signature verify")
if !verified {
// todo: handle signature verify failed
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment