dymensionxyz / RDK

Server side for dymension Rollapps
Other
15 stars 3 forks source link

Adjusting the Epoch module to follow settlement layer blocks #36

Open shaolin-flow opened 1 year ago

shaolin-flow commented 1 year ago

Overview

The epoching module allows modules to queue messages for execution at a certain block height. This module should allow for for time dependent transitions based on a "global" block height from the settlement layer - i.e every few (Settlement layer) blocks do some cron job.

Motivation

The settlement layer has a constant block production time and inherently provides stability for dYmension RollApps. RollApps, on the other hand, may have inconsistent block production times as they are not required to produce empty blocks. RollApps should be able to use the settlement layer to automatically execute code at certain block heights.

Possible challenges

While adjusting the RDK's epoch module to track the settlement layer's block height may provide global consistency, the relative "time" or block frequency may differ based on application preference. A possible challenge to this epoch module adjustment is to make it more flexible and allow a boolean configuration to follow settlement layer blocks or local dymint produced blocks.