-
Notifications
You must be signed in to change notification settings - Fork 228
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
orchestration - ICA Controller - Error Handling - Automatically Reopen ICA Channels #9068
Labels
enhancement
New feature or request
Comments
0xpatrickdev
added a commit
that referenced
this issue
Aug 7, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 8, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 8, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 8, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 8, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 9, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 12, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. This handler is only called when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 16, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reopen() will only fire when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 16, 2024
- adds .reopen() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .close(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reopen() will only fire when external factors force a channel closure (iow - if .close() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 16, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 16, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 21, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 27, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 27, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
0xpatrickdev
added a commit
that referenced
this issue
Aug 27, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
kriskowal
pushed a commit
that referenced
this issue
Aug 27, 2024
- adds .reactivate() method to IcaAccountKit['holder'] to re-establish an ICA channel using the original requestedRemoteAddress. it's intended to be used internally to automatically re-establish a channel, but also exposed to holders if they wish to re-open their account after calling .deactivate(). includes corresponding 'ReopenAccount' invitationMaker on CosmosOrchestrationAccount. - performs cleanup after a connection is closed - namely resetting localAddr, remoteAddr, and connection in state. chainAddress and port are preserved. - adds logic to onClose() handler to automatically re-establish the ICA channel. `reactivate() will only fire when external factors force a channel closure (iow - if .deactivate() is called by the holder, this will not fire) - updates network-fakes.ts to cache mockChainAddresses based on PortID:ConnectionID to mimic ICS-27 protocol - refs: #9192 - refs: #9068
mergify bot
added a commit
that referenced
this issue
Aug 29, 2024
refs: #9068 refs: #9192 ## Description 1. Includes e2e tests of different channel closing behaviors added in #9857: - ~~Automatically reopen a closed ICA channel (e.g. a packet timed out)~~ requires #9891 to complete. See #9864 (comment) - `CosmosOrchestrationAccount` (`IcaAccout`) holder can close their account - `CosmosOrchestrationAccount` (`IcaAccount`) holder can reopen their account 2. Includes `publish local and remote ibc addresses to vstorage` to facilitate querying the ICA account (channel) info from an off-chain client. - NOTE: if an account is a reopened, the localAddress and remoteAddress originally published to vstorage will be stale. Same with some of the values stored in `CosmosOrchestrationAccountKit`'s exo state. The ChainAddress will be the same, but the full address strings will contain new channelIDs. This is tech debt being taken on until #9066. 3. Includes test to ensure clients cannot successfully submit `MsgChanCloseInit` for ICA and Transfer channels ### Security Considerations n/a ### Scaling Considerations n/a ### Documentation Considerations n/a ### Testing Considerations This PR includes high fidelity tests with simulated chains. ### Upgrade Considerations n/a
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What is the Problem Being Solved?
When an error or timeout occurs on an ordered channel associated with an ICA account, the channel is closed. The API should automatically reopen the channel such that ICA objects continue to function without extraordinary error handling/setup code by the API consumer.
Description of the Design
Security Considerations
Scaling Considerations
Test Plan
Upgrade Considerations
The text was updated successfully, but these errors were encountered: