From 29982505a2da66345f3d1a4ff11f5557a15a6ab8 Mon Sep 17 00:00:00 2001 From: Poseidon Date: Mon, 24 May 2021 16:48:24 +0800 Subject: [PATCH] Fix casper apply block (#1938) * fix_casper_apply_block * fix_casper_apply_block * opt code --- protocol/apply_block.go | 7 ++++++- protocol/verfication.go | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/protocol/apply_block.go b/protocol/apply_block.go index 0b61d470..b470256c 100644 --- a/protocol/apply_block.go +++ b/protocol/apply_block.go @@ -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, diff --git a/protocol/verfication.go b/protocol/verfication.go index d74691a2..b48de26f 100644 --- a/protocol/verfication.go +++ b/protocol/verfication.go @@ -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 } -- 2.11.0