Skip to content

Commit

Permalink
fix index out of range
Browse files Browse the repository at this point in the history
  • Loading branch information
unclezoro committed Aug 10, 2020
1 parent 85ebea9 commit 1ebd008
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 13 deletions.
4 changes: 2 additions & 2 deletions consensus/parlia/parlia.go
Original file line number Diff line number Diff line change
Expand Up @@ -1145,7 +1145,7 @@ func backOffTime(snap *Snapshot, val common.Address) uint64 {
if snap.inturn(val) {
return 0
} else {
dis := snap.distanceToInTurn(val)
idx := snap.indexOfVal(val)
s := rand.NewSource(int64(snap.Number))
r := rand.New(s)
n := len(snap.Validators)
Expand All @@ -1156,7 +1156,7 @@ func backOffTime(snap *Snapshot, val common.Address) uint64 {
r.Shuffle(n, func(i, j int) {
backOffSteps[i], backOffSteps[j] = backOffSteps[j], backOffSteps[i]
})
delay := initialBackOffTime + backOffSteps[dis]*wiggleTime
delay := initialBackOffTime + backOffSteps[idx]*wiggleTime
return delay
}
}
Expand Down
16 changes: 6 additions & 10 deletions consensus/parlia/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,18 +216,14 @@ func (s *Snapshot) inturn(validator common.Address) bool {
return validators[offset] == validator
}

func (s *Snapshot) distanceToInTurn(validator common.Address) uint64 {
func (s *Snapshot) indexOfVal(validator common.Address) int {
validators := s.validators()
offset := (s.Number + 1) % uint64(len(validators))
idx := uint64(0)
for idx < uint64(len(validator)) && validators[idx] != validator {
idx++
}
if offset > idx {
return uint64(len(validators)) + idx - offset
} else {
return idx - offset
for idx, val := range validators {
if val == validator {
return idx
}
}
return 0
}

func (s *Snapshot) supposeValidator() common.Address {
Expand Down
2 changes: 1 addition & 1 deletion params/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ var (
PetersburgBlock: big.NewInt(0),
IstanbulBlock: big.NewInt(0),
MuirGlacierBlock: big.NewInt(0),
RamanujanBlock: big.NewInt(317974),
RamanujanBlock: big.NewInt(400),
Parlia: &ParliaConfig{
Period: 3,
Epoch: 200,
Expand Down

0 comments on commit 1ebd008

Please sign in to comment.