cosmos / ibc-go

Inter-Blockchain Communication Protocol (IBC) implementation in Golang.
https://ibc.cosmos.network/
MIT License
552 stars 586 forks source link

On async acks, store the full packet in core IBC #7047

Open colin-axner opened 3 months ago

colin-axner commented 3 months ago

Summary

Currently relayers rely on the full packet being emitted in core IBC which results in all async acks storing the full packet to give back to core IBC. In the meantime, core IBC should be the one storing the packet for async acks so it occurs in one place and applications can rely solely on their packet data (and not the full packet)


For Admin Use

colin-axner commented 2 months ago

Doing a migration for v1 IBCModule's might be difficult. It might be better to simply implement this functionality for packet v2/eureka. Thus the WriteAcknowledgementAsync function should take in a destination_id, destination_port sequence and ack

In the short term, transfer v2 should probably always default to sending v1 packets. It's probably a bit disruptive to have it use v2 packets for middlehops. The initial send could still be a v2 packet