Skip to content

Commit

Permalink
fix(bpos):can change dpos state
Browse files Browse the repository at this point in the history
  • Loading branch information
Houshoupei84 committed Nov 10, 2023
1 parent adbfb6e commit af3bf71
Show file tree
Hide file tree
Showing 5 changed files with 138 additions and 60 deletions.
2 changes: 1 addition & 1 deletion core/transaction/cancelproducertransaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (t *CancelProducerTransaction) SpecialContextCheck() (elaerr.ELAError, bool
return elaerr.Simple(elaerr.ErrTxPayload, errors.New("can not cancel DPoS V1&V2 producer")), true
}
}

//need return Returned
if producer.State() == state.Illegal ||
producer.State() == state.Canceled {
return elaerr.Simple(elaerr.ErrTxPayload, errors.New("can not cancel this producer")), true
Expand Down
10 changes: 9 additions & 1 deletion cr/state/committeeaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,14 @@ func (c *Committee) processTransactions(txs []interfaces.Transaction, height uin
}
}

/*
transaction effect statue is
MemberInactive by tx CRCouncilMemberClaimNode ---》 MemberElected
by tx ReturnCRDepositCoin --》MemberReturned
*/

// MemberElected MemberImpeached MemberTerminated MemberReturned MemberInactive MemberIllegal
// MemberIllegal MemberInactive change is in dpos state
func canChangeState(nowState, targetState MemberState) bool {
switch targetState {
case MemberElected:
Expand All @@ -78,7 +86,7 @@ func canChangeState(nowState, targetState MemberState) bool {
} else {
return true
}
case MemberInactive:
case MemberInactive: //first is MemberElected,then
//only MemberElected
if nowState != MemberElected {
return false
Expand Down
1 change: 1 addition & 0 deletions dpos/state/arbitrators.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ func (a *Arbiters) recoverFromCheckPoints(point *CheckPoint) {
// reset history
a.History = utils.NewHistory(maxHistoryCapacity)
a.State.History = utils.NewHistory(maxHistoryCapacity)
a.State.InactiveHistory = utils.NewHistory(maxHistoryCapacity)

a.DutyIndex = point.DutyIndex
a.CurrentArbitrators = point.CurrentArbitrators
Expand Down
Loading

0 comments on commit af3bf71

Please sign in to comment.