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

Multihop PoC #3940

Open
16 of 39 tasks
ancazamfir opened this issue Apr 9, 2024 · 0 comments · May be fixed by #3988
Open
16 of 39 tasks

Multihop PoC #3940

ancazamfir opened this issue Apr 9, 2024 · 0 comments · May be fixed by #3988
Assignees
Labels
A: tracking Admin: tracks smaller units of work I: logic Internal: related to the relaying logic O: multi-hop Related to ICS 033 Multi-Hop Channel O: new-feature Objective: cause to add a new feature or support
Milestone

Comments

@ancazamfir
Copy link
Collaborator

ancazamfir commented Apr 9, 2024

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
@github-project-automation github-project-automation bot moved this to 🩹 Triage in Hermes Apr 9, 2024
@ancazamfir ancazamfir moved this from 🩹 Triage to 📥 Todo in Hermes Apr 9, 2024
@ancazamfir ancazamfir modified the milestones: v2, Backlog Apr 9, 2024
@romac romac added O: new-feature Objective: cause to add a new feature or support I: logic Internal: related to the relaying logic O: multi-hop Related to ICS 033 Multi-Hop Channel A: tracking Admin: tracks smaller units of work labels Apr 16, 2024
@romac romac moved this from 📥 Todo to 🏗 In progress in Hermes Apr 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: tracking Admin: tracks smaller units of work I: logic Internal: related to the relaying logic O: multi-hop Related to ICS 033 Multi-Hop Channel O: new-feature Objective: cause to add a new feature or support
Projects
Status: 🏗 In progress
Development

Successfully merging a pull request may close this issue.

3 participants