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

Relay asynchonous acknowledgements using the packet information emitted on the original packet send #4078

Open
5 tasks
Tracked by #4077
colin-axner opened this issue Jul 3, 2024 · 0 comments
Labels
I: logic Internal: related to the relaying logic O: ics20-v2

Comments

@colin-axner
Copy link
Contributor

Summary

Relay asynchronous acknowledgements using the packet information emitted on the original packet send

Problem Definition

On the destination chain, when an asynchronous acknowledgement is written, hermes also consumes the packet attribute in the event associated with the async ack. Core IBC does not need the async application to store the full packet, except to populate the packet event attribute to support this relayer behaviour. This results in the full packet being stored (including the marshaled packet data) rather than only the essential information (the packet identifier, port/channel/sequence)

If relayers begin pulling the packet information from the original packet send event, then IBC async application can reduce storage costs drastically (minimum 10x reduction). In addition, the full packet wouldn't need to be reemitted in all events for each packet processing step (as it currently is).

Proposal

When processing an async ack, using the source port/channel emitted in the async ack event, lookup the original packet send on the sending chain. Use this to complete the relay of the acknowledgement from the destination chain back to the source chain.

Acceptance Criteria

ibc-go can remove the full packet from being emitted in the async ack event, cosmos/ibc-go#5901 and ics20 v2 can be updated to reduce storage from the full packet to the packet id cosmos/ibc-go#6636


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: logic Internal: related to the relaying logic O: ics20-v2
Projects
Status: 🩹 Triage
Development

No branches or pull requests

2 participants