Skip to main content
Synopsis PreBlocker is optional method module developers can implement in their module. They will be triggered before BeginBlock.
Prerequisite Readings

PreBlocker

There are two semantics around the new lifecycle method:
  • It runs before the BeginBlocker of all modules
  • It can modify consensus parameters in storage, and signal the caller through the return value.
When it returns ConsensusParamsChanged=true, the caller must refresh the consensus parameter in the deliver context:
app.finalizeBlockState.ctx = app.finalizeBlockState.ctx.WithConsensusParams(app.GetConsensusParams())
The new ctx must be passed to all the other lifecycle methods.