Skip to content

Multihop PoC #3940

Description

@ancazamfir

Summary

PoC implementation for multihop.

IBC specification

  • ics-033
    • Might need updates with changes we make
  • ics-004
    • Search for multihop to understand on-chain handling
  • ics-003
    • Search for multihop to understand on-chain handling

ibc-go PoC implementation

  • Repository
  • Includes new/changed protos (to include and use in some ibc-proto-rs branch)
  • Might need to make changes (forked Dec 2023)

Protos

Channel CLIs

Hermes

Lesser priority

  • Add multihop support to tx chan-close-init
  • Add multihop support to tx chan-close-confirm
  • Add multihop support to tx ft-transfer

Task overview

  • Implement MultihopProof
  • Implement GenerateMultihopProof
  • Should look at the spec and figure out the best approach for Hermes, write a multihop ADR
    • e.g. calcProofHeights should actually be something like updateClientsAndGetProofHeights
    • queryIntermediateProofs could be done in parallel with updateClientsAndGetProofHeights
  • Add multihop proofs to:
    • chann_open_try
    • ack
    • confirm
    • close
    • close_confirm
    • recv_packet
    • acknowledgement
    • timeout
    • timeout_on_close,
  • Implement ChanCloseFrozen
    • Monitor spanned client states
    • Trigger ChanCloseFrozen to both channel ends
  • Events - need to adapt as some change to include multihop connections (e.g. send_packet, etc)
  • Upgrade a channel from single-hop to multi-hop, perform all required checks when upgrading (ie. that the connections are open, etc.)

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A: trackingAdmin: tracks smaller units of workI: logicInternal: related to the relaying logicO: multi-hopRelated to ICS 033 Multi-Hop ChannelO: new-featureObjective: cause to add a new feature or support

Type

No type

Projects

  • Status
    🏗 In progress

Relationships

None yet

Development

No branches or pull requests

Issue actions