You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 24, 2024. It is now read-only.
let client_height_in_da = client_latest_height.add(genesis_da_height.revision_height());
let header_trusted_height = self.da_header.trusted_height;
if client_height_in_da != header_trusted_height {
returnErr(ClientError::Other{
This was required because the zk-prover didn't have recursive support. So, the sov component of the headers must be consecutive. Recently, recursive support was added to the zk-prover. Now, the header updates can skip intermediate slots.
Considering this new change, the above restriction creates inefficiency with multiple relayers (race condition). If relayer-A and relayer-B are trying to update the latest slot height 2 to slot height 4 and 5, respectively, only one of them will succeed. Whichever transaction goes first will update the latest slot. This fails the second transaction, as it will not have the updated trusted height. So, the failed relayer has to regenerate the client update for the updated slot.
Therefore, we can remove the above restriction to allow non-sequential light client updates - similar to native Tendermint light client updates - where the trusted height can be any previous height with an accepted consensus state.
The text was updated successfully, but these errors were encountered:
Currently, the trusted height of the sovereign light client header must be the latest height at the stored client state.
sovereign-ibc/clients/sov-celestia/types/src/client_message/header.rs
Lines 93 to 98 in 43de9b2
This was required because the zk-prover didn't have recursive support. So, the sov component of the headers must be consecutive. Recently, recursive support was added to the zk-prover. Now, the header updates can skip intermediate slots.
Considering this new change, the above restriction creates inefficiency with multiple relayers (race condition). If
relayer-A
andrelayer-B
are trying to update the latest slot height2
to slot height4
and5
, respectively, only one of them will succeed. Whichever transaction goes first will update the latest slot. This fails the second transaction, as it will not have the updated trusted height. So, the failed relayer has to regenerate the client update for the updated slot.Therefore, we can remove the above restriction to allow non-sequential light client updates - similar to native Tendermint light client updates - where the trusted height can be any previous height with an accepted consensus state.
The text was updated successfully, but these errors were encountered: