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

Split out Cosmos-specific code into its own crate #1580

Open
2 of 5 tasks
romac opened this issue Nov 19, 2021 · 1 comment
Open
2 of 5 tasks

Split out Cosmos-specific code into its own crate #1580

romac opened this issue Nov 19, 2021 · 1 comment
Labels
E: non-cosmos External: related to non-Cosmos chains I: logic Internal: related to the relaying logic
Milestone

Comments

@romac
Copy link
Member

romac commented Nov 19, 2021

Crate

ibc-relayer

Summary

Split out the CosmosSdk struct, its ChainEndpoint implementation, and all related Cosmos-specific code into a ibc-relayer-cosmos crate.

Problem Definition

While the relayer was developed against and currently only supports Cosmos chains, this will have to change in the future with non-Cosmos chains connecting via IBC. Because it is likely that each and every non-Cosmos chain will require specific support and tailored code in the relayer, the ibc-relayer library will grow in size and in scope way past a healthy point for a library.

Proposal

Split out all the Cosmos-specific code out of the ibc-relayer crate and into a new ibc-relayer-cosmos crate.

Code to split out

TBD

Acceptance Criteria

The ibc-relayer crate does not contain any Cosmos-specific code and a new ibc-relayer-cosmos crate is added to the workspace.

Potential concerns

  • Cyclic dependencies between ibc-relayer and ibc-relayer-cosmos, may require introducing a ibc-relayer-base crate or similar to host the traits to be implemented in the -cosmos crate.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@romac romac added the E: non-cosmos External: related to non-Cosmos chains label Nov 19, 2021
@romac romac changed the title Split Cosmos-specific code out into its own crate Split out Cosmos-specific code into its own crate Nov 19, 2021
@mzabaluev
Copy link
Contributor

Cyclic dependencies between ibc-relayer and ibc-relayer-cosmos

This can be avoided if the entry API for setting up a Cosmos relayer is made public in ibc-relayer-cosmos, and ibs-relayer is a base library agnostic of specific chains.

@adizere adizere added this to the v1.0.0 milestone Feb 1, 2022
@adizere adizere moved this to Needs Triage in IBC-rs: the road to v1 Feb 25, 2022
@adizere adizere modified the milestones: v1.0.0, v2 Apr 28, 2022
@adizere adizere added the I: logic Internal: related to the relaying logic label Jun 21, 2022
@romac romac modified the milestones: v2, v1.9 Jan 24, 2024
@github-project-automation github-project-automation bot moved this to 🩹 Triage in Hermes Jan 24, 2024
@romac romac modified the milestones: v1.9, v1.10 Apr 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E: non-cosmos External: related to non-Cosmos chains I: logic Internal: related to the relaying logic
Projects
Status: 🩹 Triage
Development

No branches or pull requests

3 participants