You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The cosmos hub, about 1 month after launching IBC has around 100 clients, 150 connections and 100 channels. In reality, there are probably ~25 unique connections. Most of these instances came from testing. The amount of usused/abandoned clients/connections/channels will only increase with time.
I'm curious if there is any way to specify a safe way to remove old clients/connections/channels. A chain could prune any non-active clients and thus the associated connections/channels, but I could see this being problematic if the counterparty has an active client, not to mention, the counterparty may be a multitude of clients since each connection can specify a different client, with different client parameters.
Opening this issue as I'd like ICS to create a recommendation for how to go about pruning old state
The text was updated successfully, but these errors were encountered:
In general, at the moment, it is safe to prune connections not in use by any channel, but unsafe to prune channels once they have been opened, since there's no way to determine whether or not there are packets in flight - at least not without control on the part of the application layer.
However, at the moment there is an even more fundamental problem, which is that pruning anything is unsafe unless identifier reuse is prevented, otherwise handshake steps or packets can be replayed. This could be addressed by pruning the values but keeping the identifiers pointed to some kind of null sentinel value, or by figuring out the timeout constraints required to prune safely - in principle this should be possible, but it will require a lot of precise reasoning about timeouts on packets and protocol changes to enforce these accordingly.
The cosmos hub, about 1 month after launching IBC has around 100 clients, 150 connections and 100 channels. In reality, there are probably ~25 unique connections. Most of these instances came from testing. The amount of usused/abandoned clients/connections/channels will only increase with time.
I'm curious if there is any way to specify a safe way to remove old clients/connections/channels. A chain could prune any non-active clients and thus the associated connections/channels, but I could see this being problematic if the counterparty has an active client, not to mention, the counterparty may be a multitude of clients since each connection can specify a different client, with different client parameters.
Opening this issue as I'd like ICS to create a recommendation for how to go about pruning old state
The text was updated successfully, but these errors were encountered: