classic-core
classic-core copied to clipboard
(Re)enable IBC connection to Osmosis, Juno and Crescent
Issue
Terra validators disabled IBC by force closing channel-1
and channel-49
using #761 as a stop-gap solution to preventing Impermanent Loss on UST and LUNA pools on Osmosis and other IBC DEXs.
Unfortunately, this also prevents UST and LUNA from transferring between chains. Currently, about 154.7M UST is stuck in Osmosis alone.
Since the LFG and TFL teams has been radio-silent on this issues, I'm here pleading to the devs to come up a plan.
I can help lead the effort with a PR and do other necessary work once I have some clarity on what is needed. The discussion so far has primarily been on this Twitter thread so moving it here to have a more optimal discussion.
Questions / Assumptions
- As I understand, these clients are not expired and do not need a governance proposal (as per this tweet). Setting the closed channels' to
channel.State = ibcchanneltypes.OPEN
will re-open the channels (per this tweet). - All
MsgChannelCloseConfirms
should be rejected so that the channel does get closed again partway through the process. (ref tweet) - The clients should be kept updated so they don't expire before this channel is reopened, otherwise we would need to use the governance proposal method too.
- Once we have these a chain upgrade should suffice?
Once we have these a chain upgrade should suffice?
Why is a chain upgrade necessary?
Here are some notes from looking into it earlier.
- The channel / connection / client stack for Terra's
channel-1
are as follows:
hermes query channel ends columbus-5 transfer channel-1
Success: ChannelEndsSummary {
chain_id: ChainId {
id: "columbus-5",
version: 5,
},
client_id: ClientId(
"07-tendermint-12",
),
connection_id: ConnectionId(
"connection-11",
),
channel_id: ChannelId(
"channel-1",
),
port_id: PortId(
"transfer",
),
counterparty_chain_id: ChainId {
id: "osmosis-1",
version: 1,
},
counterparty_client_id: ClientId(
"07-tendermint-1549",
),
counterparty_connection_id: ConnectionId(
"connection-1215",
),
counterparty_channel_id: ChannelId(
"channel-72",
),
counterparty_port_id: PortId(
"transfer",
),
}
- The
channel-72
on Osmosis-1 isOpen
hermes query channel end osmosis-1 transfer channel-72
Success: ChannelEnd {
state: Open,
ordering: Unordered,
remote: Counterparty {
port_id: PortId(
"transfer",
),
channel_id: Some(
ChannelId(
"channel-1",
),
),
},
connection_hops: [
ConnectionId(
"connection-1215",
),
],
version: Version(
"ics20-1",
),
}
- The client on Terra is
"07-tendermint-12"
and has a trusting period of 10days.- The client was last updated with header height 4368847 from 6 days ago, so there's ~4 days left to refresh it before it expires
hermes query client state columbus-5 07-tendermint-12
Success: Tendermint(
ClientState {
chain_id: ChainId {
id: "osmosis-1",
version: 1,
},
trust_level: TrustThreshold {
numerator: 1,
denominator: 3,
},
trusting_period: 864000s,
unbonding_period: 1209600s,
max_clock_drift: 15s,
latest_height: Height {
revision: 1,
height: 4368847,
},
proof_specs: ProofSpecs...
upgrade_path: ..
allow_update: AllowUpdate {
after_expiry: true,
after_misbehaviour: true,
},
frozen_height: None,
},
)
- The client on Osmosis is
"07-tendermint-1549"
and has a trusting period of 14 days.- The client was last updated with header height 7688265 from today, so no worries about client expiration here
hermes query client state osmosis-1 07-tendermint-1549
Success: Tendermint(
ClientState {
chain_id: ChainId {
id: "columbus-5",
version: 5,
},
trust_level: TrustThreshold {
numerator: 1,
denominator: 3,
},
trusting_period: 1209600s,
unbonding_period: 1814400s,
max_clock_drift: 5s,
latest_height: Height {
revision: 5,
height: 7688265,
},
proof_specs: ...
upgrade_path: ...
allow_update: AllowUpdate {
after_expiry: true,
after_misbehaviour: true,
},
frozen_height: None,
},
)
any updates on this? It seems that IBCs are still off in Classic, but in the new chain there were enabled immediately. This is wrong as in classic chain they are actually needed and used on the other hand in terra 2 there is not much to bridge yet.
Any updates on this issue? The IBC between Terra and Osmosis is closed for a month. Some people cannot collect their asset pending on IBC bridge. We hope it will be enabled.
https://cosmosrun.info/terra-phoenix-1/gov/349
We hope this proposal will be implemented regardless of the result of the vote on the new platform. We believe that no matter how much Terra is discredited by stable coin depeg, Terra community remains in true decentralized governance. https://station.terra.money/proposal/1299