celestiaorg / celestia-app

Celestia consensus node
https://celestiaorg.github.io/celestia-app/
Apache License 2.0
346 stars 293 forks source link

Reproduce failed to execute `MsgPayForBlobs` over ICA with ibc-go v6.2.3 #3857

Open rootulp opened 2 months ago

rootulp commented 2 months ago

Context

https://github.com/celestiaorg/celestia-app/issues/3792#issuecomment-2329724029

Problem

I couldn't figure out why a MsgPayForBlobs failed to execute on a host chain after being sent via ICA. It turns out our ibc-go version didn't propagate events on txs that failed to execute. @damiannolan created ibc-go v.6.2.3 which should propagate those events so we can now try to reproduce the tx to see why it failed to execute.

Since that debugging, we modified the ICA host allow messages param on Arabica and Mocha via governance to exclude MsgPayForBlobs. This means we can't reproduce the exact issue unless we repro on a new testnet with a wildcard for that param. The new testnet will involve setting up more infra.

Proposal

  1. Create a celestia-app binary that uses ibc-go v6.2.3
  2. Set up a private testnet with a wildcard for ICA host message allow params
  3. Set up an IBC relayer between this testnet and another chain that has ICA controller enabled (e.g. Cosmos Hub testnet)
  4. Create an ICA account from Cosmos Hub testnet on private testnet
  5. Send an ICA packet with a MsgPayForBlobs inside
  6. Query for the events related to the tx that failed to execute. Continue debugging with this info