*_update_time
and *_update_height
should live under client contexts
#914
Labels
A: breaking
Admin: breaking change that may impact operators
O: logic
Objective: aims for better implementation logic
Milestone
Background
There are different places we handle a client state transition. That transition might be because of regular update clients, misbehavior, or due to the chain upgrade, and in all of them, part of the execution process (setting the IBC states within a store) is done at the level of our
ClientState
trait (e.g. here for a client update) and part of that within our handlers (e.g. here for a client update)For the same reason we gave this flexibility to light client developers to set client and consensus states during those transitions according to their preferences, we should allow consensus state metadata (storing client's update time and height) to be stored in the same level within the implementation of client state methods.
This became clear when working on adding the pruning feature (this issue) which enables hosts to get rid of expired consensus states. For that, we have to define
delete_update_time
anddelete_update_height
which couldn’t be placed under our primary Validation/Execution contexts as they won’t be in access of clients for performing the pruning.Also, I noticed
client_update_time
andclient_update_height
later should be used for performing checks for recovering an expired client (related to this issue)So, it’s reasonable to relocate
*_update_time
and*_update_height
under the client contexts' traits.The text was updated successfully, but these errors were encountered: