OSDN Git Service

Fix casper apply block (#1938)
authorPoseidon <shenao.78@163.com>
Mon, 24 May 2021 08:48:24 +0000 (16:48 +0800)
committerGitHub <noreply@github.com>
Mon, 24 May 2021 08:48:24 +0000 (16:48 +0800)
* fix_casper_apply_block

* fix_casper_apply_block

* opt code

protocol/apply_block.go
protocol/verfication.go

index 0b61d47..b470256 100644 (file)
@@ -298,7 +298,12 @@ func supLinkToVerifications(supLink *types.SupLink, validators map[string]*state
        }
 
        var result []*Verification
-       for i, signature := range supLink.Signatures {
+       for i := 0; i < len(validators); i++ {
+               signature := supLink.Signatures[i]
+               if len(signature) == 0 {
+                       continue
+               }
+
                result = append(result, &Verification{
                        SourceHash:   supLink.SourceHash,
                        TargetHash:   targetHash,
index d74691a..b48de26 100644 (file)
@@ -9,7 +9,6 @@ import (
        "github.com/bytom/bytom/crypto/ed25519/chainkd"
        "github.com/bytom/bytom/crypto/sha3pool"
        "github.com/bytom/bytom/protocol/bc"
-       "golang.org/x/crypto/ed25519"
 )
 
 var errVerifySignature = errors.New("signature of verification message is invalid")
@@ -80,7 +79,9 @@ func (v *Verification) VerifySignature() error {
                return err
        }
 
-       if !ed25519.Verify(pubKey, message, signature) {
+       var xPub chainkd.XPub
+       copy(xPub[:], pubKey)
+       if !xPub.Verify(message, signature) {
                return errVerifySignature
        }