penumbra
penumbra copied to clipboard
Tracking issue: IBC Implementation
This is a tracking issue for the high-level items required to reach our MVP3: integration of the IBC protocol for bridging assets in and out of Penumbra.
Prerequisites for mplementing the IBC protocol on Penumbra
- [x] ICS-23 proof specification for our state tree (JMT). Our counterparties need this, we can use existing IAVL proof spec to verify our counterparty's proofs. - https://github.com/cosmos/ics23/pull/136
- [x] https://github.com/penumbra-zone/jmt/issues/18
- [x] Light client implementation for Penumbra, also light clients that can verify Cosmos SDK chains. We should get this automatically: our counterparties can run Tendermint light clients of Penumbra, and we can use tendermint light clients (such as tendermint-rs) to track our counterparties state.
- [x] #464: A way to include IBC packets in Penumbra transactions, so that relayers can add messages to the chain.
- [x] #465: A way for relayers to actually create those transactions.
Implementing the core IBC protocol in Penumbra's state machine
- [x] #466
- [x] #506
- [x] #635
- [x] #636
- [x] #637
- [x] #638
- [x] #639
After implementing the core IBC protocol (connections, channels, and packets), we can then
- [x] https://github.com/penumbra-zone/penumbra/issues/2859
- [x] #467
- [x] #981
- [x] #2284
- [ ] https://github.com/penumbra-zone/penumbra/issues/2985
- [x] Implement client-side support for ICS20 withdrawals - https://github.com/penumbra-zone/penumbra/pull/2301
- [x] #3193
- [x] https://github.com/penumbra-zone/penumbra/issues/2173
Testing integrations, developer experience improvements
- [x] https://github.com/penumbra-zone/penumbra/issues/3222
- [x] https://github.com/penumbra-zone/penumbra/issues/3193
- [x] https://github.com/penumbra-zone/penumbra/issues/3116
- [x] https://github.com/penumbra-zone/penumbra/issues/3209
- [x] https://github.com/penumbra-zone/penumbra/issues/3045
- [ ] https://github.com/strangelove-ventures/interchaintest/issues/644
- [ ] https://github.com/strangelove-ventures/interchaintest/issues/313
- [ ] https://github.com/penumbra-zone/penumbra/issues/1813
- [ ] #2914
- [ ] https://github.com/penumbra-zone/penumbra/issues/3125
Stretch goals, non-blocking for mainnet, but tracking because completing these would make us friendly FOSS maintainers:
- [ ] Commit the JMT proof spec to cosmos/ics23 repo
- [ ] Add test vectors to cosmos/ics23 repo
Many IBC primitives (such as the protos for connections, channels, packets, etc) are already implemented in ibc-rs.
This tracking issue has been around for nearly 2y now, and although it's been updated frequently, we need a fresh look at the state of play for IBC. Let's close it. @avahowell and I will work to respecify with work in light of recent experiences.
Closing as requested.