Skip to main content
Version: v0.50



PreBlocker is optional method module developers can implement in their module. They will be triggered before BeginBlock.

Pre-requisite Readings


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.