diff options
| author | Jimmy Hu <jimmy.hu@dexon.org> | 2019-03-29 14:31:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-29 14:31:03 +0800 |
| commit | 04a4df9479e31f1418760a389060706a72259381 (patch) | |
| tree | 6f09bf2646ed87627f348a2c0f66e3465d7d231a /core/consensus.go | |
| parent | e3e7f4fbd840819b1ef44ae2c345f64e0bb2c161 (diff) | |
| download | dexon-consensus-04a4df9479e31f1418760a389060706a72259381.tar dexon-consensus-04a4df9479e31f1418760a389060706a72259381.tar.gz dexon-consensus-04a4df9479e31f1418760a389060706a72259381.tar.bz2 dexon-consensus-04a4df9479e31f1418760a389060706a72259381.tar.lz dexon-consensus-04a4df9479e31f1418760a389060706a72259381.tar.xz dexon-consensus-04a4df9479e31f1418760a389060706a72259381.tar.zst dexon-consensus-04a4df9479e31f1418760a389060706a72259381.zip | |
core: reset DKG if to less qualified nodes (#528)
Diffstat (limited to 'core/consensus.go')
| -rw-r--r-- | core/consensus.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/consensus.go b/core/consensus.go index 6d0f683..2246bf1 100644 --- a/core/consensus.go +++ b/core/consensus.go @@ -849,17 +849,21 @@ func (con *Consensus) prepare(initBlock *types.Block) (err error) { "reset", e.Reset) return false } - if _, err := typesDKG.NewGroupPublicKey( + gpk, err := typesDKG.NewGroupPublicKey( nextRound, con.gov.DKGMasterPublicKeys(nextRound), con.gov.DKGComplaints(nextRound), - utils.GetDKGThreshold(nextConfig)); err != nil { + utils.GetDKGThreshold(nextConfig)) + if err != nil { con.logger.Error("Next DKG failed to prepare, reset it", "round", e.Round, "reset", e.Reset, "error", err) return false } + if len(gpk.QualifyNodeIDs) < utils.GetDKGValidThreshold(nextConfig) { + return false + } return true } con.event.RegisterHeight(e.NextDKGResetHeight(), func(uint64) { |
