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
In informalsystems/hermes#2925, we implemented the base connection and channel handshake components to get IBC handshake working in relayer-next. However, the base components blindly perform the handshake steps without first validating the current state of the connection/channel.
In this follow up issue, we will implement additional middleware components that wrap around the base handshake components to perform such validation:
A skip relayer would skip a specific handshake step if the target chain's connection/channel state is already or after the expected state. This can happen if there are other relayers relaying the handshake in parallel.
A validate relayer would validate that the target chain's connection/channel state is updated to the expected state after the corresponding message is processed.
A retry relayer would retry a wrapped handshake step if it fails for some reasons, such as network error during query or errors from other messages in a batched transaction. We can reuse the HasRetryableError trait to determine if an error is retryable.
We may want to implement dedicated middleware components for each specific handshake step, rather than wrapping the overall handshake relayer. e.g. the ChannelOpenTry and ChannelOpenAck relayers would each have their own skip, validate, and retry middleware components.
For Admin Use
Not duplicate issue
Appropriate labels applied
Appropriate milestone (priority) applied
Appropriate contributors tagged
Contributor assigned/self-assigned
The text was updated successfully, but these errors were encountered:
Summary
In informalsystems/hermes#2925, we implemented the base connection and channel handshake components to get IBC handshake working in relayer-next. However, the base components blindly perform the handshake steps without first validating the current state of the connection/channel.
In this follow up issue, we will implement additional middleware components that wrap around the base handshake components to perform such validation:
HasRetryableError
trait to determine if an error is retryable.We may want to implement dedicated middleware components for each specific handshake step, rather than wrapping the overall handshake relayer. e.g. the
ChannelOpenTry
andChannelOpenAck
relayers would each have their own skip, validate, and retry middleware components.For Admin Use
The text was updated successfully, but these errors were encountered: