mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-03 03:35:19 +00:00
state sync: correctly set last consensus params height (#5889)
This commit is contained in:
committed by
Tess Rinearson
parent
ad552b2bb1
commit
cf3a720988
@@ -27,3 +27,4 @@ Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermi
|
|||||||
|
|
||||||
- [evidence] \#5890 Add a buffer to evidence from consensus to avoid broadcasting and proposing evidence before the
|
- [evidence] \#5890 Add a buffer to evidence from consensus to avoid broadcasting and proposing evidence before the
|
||||||
height of such an evidence has finished (@cmwaters)
|
height of such an evidence has finished (@cmwaters)
|
||||||
|
- [statesync] \#5889 Set `LastHeightConsensusParamsChanged` when bootstrapping Tendermint state (@cmwaters)
|
||||||
|
|||||||
@@ -205,7 +205,8 @@ func (store dbStore) Bootstrap(state State) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := store.saveConsensusParamsInfo(height, height, state.ConsensusParams); err != nil {
|
if err := store.saveConsensusParamsInfo(height,
|
||||||
|
state.LastHeightConsensusParamsChanged, state.ConsensusParams); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return sm.State{}, err
|
return sm.State{}, err
|
||||||
}
|
}
|
||||||
curLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+1), time.Now())
|
currentLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+1), time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return sm.State{}, err
|
return sm.State{}, err
|
||||||
}
|
}
|
||||||
@@ -162,10 +162,10 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm
|
|||||||
state.LastBlockHeight = lastLightBlock.Height
|
state.LastBlockHeight = lastLightBlock.Height
|
||||||
state.LastBlockTime = lastLightBlock.Time
|
state.LastBlockTime = lastLightBlock.Time
|
||||||
state.LastBlockID = lastLightBlock.Commit.BlockID
|
state.LastBlockID = lastLightBlock.Commit.BlockID
|
||||||
state.AppHash = curLightBlock.AppHash
|
state.AppHash = currentLightBlock.AppHash
|
||||||
state.LastResultsHash = curLightBlock.LastResultsHash
|
state.LastResultsHash = currentLightBlock.LastResultsHash
|
||||||
state.LastValidators = lastLightBlock.ValidatorSet
|
state.LastValidators = lastLightBlock.ValidatorSet
|
||||||
state.Validators = curLightBlock.ValidatorSet
|
state.Validators = currentLightBlock.ValidatorSet
|
||||||
state.NextValidators = nextLightBlock.ValidatorSet
|
state.NextValidators = nextLightBlock.ValidatorSet
|
||||||
state.LastHeightValidatorsChanged = nextLightBlock.Height
|
state.LastHeightValidatorsChanged = nextLightBlock.Height
|
||||||
|
|
||||||
@@ -179,12 +179,13 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm
|
|||||||
return sm.State{}, fmt.Errorf("unable to create RPC client: %w", err)
|
return sm.State{}, fmt.Errorf("unable to create RPC client: %w", err)
|
||||||
}
|
}
|
||||||
rpcclient := lightrpc.NewClient(primaryRPC, s.lc)
|
rpcclient := lightrpc.NewClient(primaryRPC, s.lc)
|
||||||
result, err := rpcclient.ConsensusParams(ctx, &nextLightBlock.Height)
|
result, err := rpcclient.ConsensusParams(ctx, ¤tLightBlock.Height)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return sm.State{}, fmt.Errorf("unable to fetch consensus parameters for height %v: %w",
|
return sm.State{}, fmt.Errorf("unable to fetch consensus parameters for height %v: %w",
|
||||||
nextLightBlock.Height, err)
|
nextLightBlock.Height, err)
|
||||||
}
|
}
|
||||||
state.ConsensusParams = result.ConsensusParams
|
state.ConsensusParams = result.ConsensusParams
|
||||||
|
state.LastHeightConsensusParamsChanged = currentLightBlock.Height
|
||||||
|
|
||||||
return state, nil
|
return state, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user