// the first block whose timestamp is after the duration is counted as the end of the epoch
AfterEpochEnd(ctx sdk.Context, epochIdentifier string, epochNumber int64)
// new epoch is next block of epoch end block
BeforeEpochStart(ctx sdk.Context, epochIdentifier string, epochNumber int64)
On hook receiver function of other modules, they need to filter epochIdentifier
and only do executions for only specific epochIdentifier.
Filtering epochIdentifier could be in Params
of other modules so that they can be modified by governance.
Governance can change epoch from week
to day
as their need.