aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2019-03-24 14:43:33 +0800
committerJimmy Hu <jimmy.hu@dexon.org>2019-03-24 16:17:26 +0800
commitfa3b5a29499739e90b3cf17f9a0cf60a72a64fc0 (patch)
tree792bd67c70e9b40f871c9cc0f03345ec70793427
parentd077a35470cf4b6e7c82bd4b03a1f2b87b0f9add (diff)
downloaddexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.tar
dexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.tar.gz
dexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.tar.bz2
dexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.tar.lz
dexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.tar.xz
dexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.tar.zst
dexon-consensus-fa3b5a29499739e90b3cf17f9a0cf60a72a64fc0.zip
core: fix required vote calculations (#513)
-rw-r--r--core/agreement.go2
-rw-r--r--core/configuration-chain_test.go3
-rw-r--r--core/utils.go2
3 files changed, 5 insertions, 2 deletions
diff --git a/core/agreement.go b/core/agreement.go
index 1919830..16f36bc 100644
--- a/core/agreement.go
+++ b/core/agreement.go
@@ -174,7 +174,7 @@ func (a *agreement) restart(
a.data.votes[1] = newVoteListMap()
a.data.period = 2
a.data.blocks = make(map[types.NodeID]*types.Block)
- a.data.requiredVote = len(notarySet)/3*2 + 1
+ a.data.requiredVote = len(notarySet)*2/3 + 1
a.data.leader.restart(crs)
a.data.lockValue = types.NullBlockHash
a.data.lockIter = 0
diff --git a/core/configuration-chain_test.go b/core/configuration-chain_test.go
index 7c73f41..af7e36d 100644
--- a/core/configuration-chain_test.go
+++ b/core/configuration-chain_test.go
@@ -279,6 +279,9 @@ func (s *ConfigurationChainTestSuite) TestConfigurationChain() {
hash := crypto.Keccak256Hash([]byte("🌚🌝"))
psigs := s.preparePartialSignature(hash, round, cfgChains)
+ // We only need k partial signatures.
+ psigs = psigs[:k]
+
tsigs := make([]crypto.Signature, 0, n)
errs := make(chan error, n)
tsigChan := make(chan crypto.Signature, n)
diff --git a/core/utils.go b/core/utils.go
index 5742d11..bd31701 100644
--- a/core/utils.go
+++ b/core/utils.go
@@ -163,7 +163,7 @@ func VerifyAgreementResult(
if err != nil {
return err
}
- if len(res.Votes) < len(notarySet)/3*2+1 {
+ if len(res.Votes) < len(notarySet)*2/3+1 {
return ErrNotEnoughVotes
}
voted := make(map[types.NodeID]struct{}, len(notarySet))