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

Tracking Issue: support IBC integration in Astria #3125

Open
9 of 10 tasks
Tracked by #454
hdevalence opened this issue Sep 30, 2023 · 1 comment
Open
9 of 10 tasks
Tracked by #454

Tracking Issue: support IBC integration in Astria #3125

hdevalence opened this issue Sep 30, 2023 · 1 comment
Assignees
Labels
A-IBC Area: IBC integration with Penumbra

Comments

@hdevalence
Copy link
Member

hdevalence commented Sep 30, 2023

Astria is using the Penumbra stack to build their sequencer. They'd like to be IBC-enabled, and last Thursday we had a meeting (cc @noot) about what would be required for them to integrate our IBC stack. We'd like to support them in this, but there will be some work required on both sides. This issue tracks that work.

Currently, our IBC stack has two parts:

  • ibc-types, which just does common modeling for IBC data types and messages;
  • penumbra-ibc, which implements IBC on top of the state model provided by penumbra-storage and the component system provided by penumbra-component.

Since moving to our own IBC stack as part of #2379, we've hoped to generalize Penumbra's IBC implementation, with the long-term goal of separating the IBC logic from the state access. We've held off on doing it until there's a concrete user, to avoid building the wrong generalization.

However, supporting Astria doesn't require that all of that work, because Astria already uses (some of) the Penumbra stack, in particular penumbra-storage and (a tweaked version of) the Component trait in penumbra-component. Instead, we just need to break the dependency of penumbra-ibc on other Penumbra components and generalize it for Astria's use case:

Beyond the state machine implementation, there's also relaying support. Much of the work we did on the Penumbra side to support Penumbra integration into Hermes will be directly reusable: the bulk of the work was implementing GRPC queries, and those query implementations are part of the IBC component now, so they can be directly used by Astria.

Astria will need to write their own ChainEndpoint implementation, but other work we're planning to push on in order to support Penumbra integration into Hermes may be useful to Astria:

The Astria team indicated they were hoping to get token transfers working by the end of October (4 weeks from now), so we should coordinate closely to make sure we're not blocking their work. (We missed this timing because the substore work turned out to be more complicated than expected, but we still want to get this over the finish line ASAP).

To exercise this end-to-end, we should aim to make an IBC connection between an Astria devnet and a Penumbra devnet. Checklist:

@conorsch
Copy link
Contributor

We've spoken with Astria out of band, and we have a few more weeks to get the necessary functionality in place. Related work such as #3131 is not shipping in Testnet 62 (#3123), but we plan to return to it soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-IBC Area: IBC integration with Penumbra
Projects
Status: Backlog
Status: Tracking Issues
Development

No branches or pull requests

3 participants