From c50ff82ab1495620eded53f4994960956d1a15cc Mon Sep 17 00:00:00 2001 From: Jerry Date: Mon, 25 Jul 2022 10:17:22 -0700 Subject: [PATCH] Fix "Signer 0x... is not a part of the producer set at block xxxx" The validator set json loaded from database will have an empty map. This change will recompute the validator map based on validator set. --- consensus/bor/snapshot.go | 2 ++ consensus/bor/valset/validator_set.go | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/consensus/bor/snapshot.go b/consensus/bor/snapshot.go index c95031e783..264436397f 100644 --- a/consensus/bor/snapshot.go +++ b/consensus/bor/snapshot.go @@ -59,6 +59,8 @@ func loadSnapshot(config *params.BorConfig, sigcache *lru.ARCCache, db ethdb.Dat return nil, err } + snap.ValidatorSet.UpdateValidatorMap() + snap.config = config snap.sigcache = sigcache diff --git a/consensus/bor/valset/validator_set.go b/consensus/bor/valset/validator_set.go index 772d2c5ef8..0a6f7c4487 100644 --- a/consensus/bor/valset/validator_set.go +++ b/consensus/bor/valset/validator_set.go @@ -628,6 +628,10 @@ func (vals *ValidatorSet) updateValidators(updates []*Validator, deletes []*Vali vals.applyUpdates(updates) vals.applyRemovals(deletes) + vals.UpdateValidatorMap() +} + +func (vals *ValidatorSet) UpdateValidatorMap() { vals.validatorsMap = make(map[common.Address]int, len(vals.Validators)) for i, val := range vals.Validators {