aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/agreement.go10
-rw-r--r--core/agreement_test.go4
2 files changed, 9 insertions, 5 deletions
diff --git a/core/agreement.go b/core/agreement.go
index c08518a..c2ac711 100644
--- a/core/agreement.go
+++ b/core/agreement.go
@@ -172,7 +172,7 @@ func (a *agreement) restart(
defer a.data.blocksLock.Unlock()
a.data.votes = make(map[uint64][]map[types.NodeID]*types.Vote)
a.data.votes[1] = newVoteListMap()
- a.data.period = 1
+ a.data.period = 2
a.data.blocks = make(map[types.NodeID]*types.Block)
a.data.requiredVote = len(notarySet)/3*2 + 1
a.data.leader.restart(crs)
@@ -266,7 +266,11 @@ func isStop(aID types.Position) bool {
func (a *agreement) clocks() int {
a.data.lock.RLock()
defer a.data.lock.RUnlock()
- scale := int(a.data.period)
+ scale := int(a.data.period) - 1
+ if scale < 1 {
+ // just in case.
+ scale = 1
+ }
// 10 is a magic number derived from many years of experience.
if scale > 10 {
scale = 10
@@ -420,7 +424,7 @@ func (a *agreement) processVote(vote *types.Vote) error {
a.data.recv.ProposeVote(
types.NewVote(types.VoteFastCom, hash, vote.Period))
a.data.lockValue = hash
- a.data.lockIter = math.MaxUint64
+ a.data.lockIter = 1
a.hasVoteFast = true
}
} else {
diff --git a/core/agreement_test.go b/core/agreement_test.go
index 4dbbe6e..f49fd7d 100644
--- a/core/agreement_test.go
+++ b/core/agreement_test.go
@@ -208,7 +208,7 @@ func (s *AgreementTestSuite) TestSimpleConfirm() {
s.Equal(types.VoteCom, vote.Type)
s.Equal(blockHash, vote.BlockHash)
s.Equal(blockHash, a.data.lockValue)
- s.Equal(uint64(1), a.data.lockIter)
+ s.Equal(uint64(2), a.data.lockIter)
for nID := range s.signers {
v := s.copyVote(vote, nID)
s.Require().NoError(a.processVote(v))
@@ -256,7 +256,7 @@ func (s *AgreementTestSuite) TestPartitionOnCommitVote() {
s.Equal(types.VoteCom, vote.Type)
s.Equal(blockHash, vote.BlockHash)
s.Equal(blockHash, a.data.lockValue)
- s.Equal(uint64(1), a.data.lockIter)
+ s.Equal(uint64(2), a.data.lockIter)
// RepeateVoteState
a.nextState()
s.True(a.pullVotes())