Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend the relayer-next CLI to support relaying multiple chains and clients #19

Open
2 tasks
soareschen opened this issue Feb 15, 2023 · 0 comments
Open
2 tasks
Assignees

Comments

@soareschen
Copy link
Collaborator

Blocked by: informalsystems/hermes#3083

Summary

We have implemented the relayer-next CLI to support relaying for one pair of chain and IBC client. As a follow up, we can extend the CLI such that it supports relaying for all chains and clients that are specified in the config.

Details

To have an efficient implementation of the CLI to relay multiple chains, we need to have a better API for constructing relay contexts. The current ad hoc way of constructing relay contexts do not scale well to support the construction of many relay contexts. This is because the constructor would need to be aware of what other chain and relay contexts have been created, and reuse them if possible.

As a result, this issue is blocked until informalsystems/hermes#3083 is completed. informalsystems/hermes#3083 provides a relayer builder API so that the logic for building a relayer from the CLI can be abstracted in the same way as the relayer itself using context-generic programming. This should reduce the burden of figuring out how to construct the relayer based on custom parameters such as the CLI parameters and config files.

Tasks

The support for multiple relay contexts in the CLI can be split into 2 smaller tasks:

  • Support multiple clients from the same chain pair
    • this can be done by creating two chain contexts, and multiple relay context pairs for each client ID pairs.
    • We may need ways to determine what client ID pairs are available for a given chain pair.
    • We could initially do this by reusing the ChainScan construct in relayer v1.
    • At a later time, we can implement similar logic in the chain context using context-generic programming.
  • Support multiple chains
    • This requires a builder API that can accept a list of chains IDs and client IDs, and automatically build all combination of relay contexts from it.
@soareschen soareschen transferred this issue from informalsystems/hermes Sep 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants