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
Note: this came up from a Hermes user in Discord. I'm putting the question and answer here since they might come up again.
Question
Why does hermes only start periodic packets clearing for a channel (related to clear_interval) only from the moment when a ibc event is seen for this channel ? Example:
Hermes start. No periodic packets clearing (no logs)
An IBC tx is made, so hermes sees events like SendPackets.
Hermes handle packets relaying.
Periodic packets clearing starts for the related channel.
Answer
This is an assumption we made in the relayer architecture, essentially. The assumption is as follows: For as long as Hermes does not observe any WebSocket events for a certain channel X, then there is no activity on that channel, hence no reason to spawn the worker for relaying packets on X, so no need to do packet clearing.
If at relayer init time there are un-relayed packets on X and clear_on_start = true, then the relayer spawns the worker for X; otherwise, the worker for X only starts when there is WebSocket event activity. Once the worker is spawned, it will periodically do packet clearing every clear_interval blocks.
I: logicInternal: related to the relaying logicO: usabilityObjective: cause to improve the user experience (UX) and ease using the productI: configurationInternal: related to Hermes configuration
1 participant
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Note: this came up from a Hermes user in Discord. I'm putting the question and answer here since they might come up again.
Question
Why does hermes only start periodic packets clearing for a channel (related to
clear_interval
) only from the moment when a ibc event is seen for this channel ? Example:Answer
This is an assumption we made in the relayer architecture, essentially. The assumption is as follows: For as long as Hermes does not observe any WebSocket events for a certain channel X, then there is no activity on that channel, hence no reason to spawn the worker for relaying packets on X, so no need to do packet clearing.
If at relayer init time there are un-relayed packets on X and
clear_on_start = true
, then the relayer spawns the worker for X; otherwise, the worker for X only starts when there is WebSocket event activity. Once the worker is spawned, it will periodically do packet clearing everyclear_interval
blocks.Beta Was this translation helpful? Give feedback.
All reactions