Light client "header from the future" with unsynchronized hermes clock #3139
Labels
I: logic
Internal: related to the relaying logic
O: reliability
Objective: cause to improve trustworthiness and consistent performing
O: security
Objective: cause to enhance security and improve safety
Milestone
Summary of Bug
(thanks @ljoss17 @romac @josef-widder for the help with the investigation)
@ljoss17 reported a hermes operator seeing these errors:
After debugging the issue it turns out the relayer has a delayed clock, delay that is higher than the client clock drift.
When hermes needs to update the client for B on A it calls the light client verification that performs this check:
(see original code here)
Where
clock_drift = B.clock_drift + A.clock_drift + A.max_block_time
. In this case the checks fails.Note: A similar check is done in hermes later here
hermes/crates/relayer/src/foreign_client.rs
Lines 971 to 978 in 6452553
Version
all
Steps to Reproduce
Run a relayer with unsynchronized clock, with negative drift.
Acceptance Criteria
We have two options:
Make mandatory that hermes should sync the clock and clearly document it, ORIn addition:
For Admin Use
The text was updated successfully, but these errors were encountered: