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 confusion on pruning is due to many different layers using the same terminology as well as poor relayer architecture.
The full node using pruning. IBC does not need prune nothing for the node. The pruning strategy at most needs to keep up to the unbonding period worth (as this is all relayers ever need to grab proof from), but it could get away with pruning much more (if it is relaying very active channels), or if it is constantly listening and updating its light client every block. It just cannot be pruning everything since proof will likely need to be grabbed from the block that was made say 10 minutes ago
The tendermint light client needs to have disabled pruning (it is storing light blocks, this should be very cheap and now is enabled by default on the golang relayer)
The on-chain historical information in x/staking needs to keep at least 10 minutes-1 hour worth of historical information. The amount of historical info it stores indicates the time period needed between when the relayer constructs connection proof and when it is processed on chain
In previous times, the relayer was grabbing headers from the on-chain historical info (which is why this parameter was discussed). The relayer in previous times also grabbed untrusted headers directly from the full node rather than from its trusted store which is why full node not pruning was recommended. Now the light client grabs headers from its trusted store. This can be problematic if it misses headers (because it isn't running). We will be fixing this, so if you sporadically use your relayer, it will try to query the full node for a missing header, it may fail if pruning is set to only keep 1 hour worth of blocks. Relayers constantly running can probably get away with some pretty aggressive pruning strategies
--
The error message should do its best to indicate what went wrong rather than saying disable pruning
The text was updated successfully, but these errors were encountered:
Explanation from discord:
The confusion on pruning is due to many different layers using the same terminology as well as poor relayer architecture.
The full node using pruning. IBC does not need prune nothing for the node. The pruning strategy at most needs to keep up to the unbonding period worth (as this is all relayers ever need to grab proof from), but it could get away with pruning much more (if it is relaying very active channels), or if it is constantly listening and updating its light client every block. It just cannot be pruning everything since proof will likely need to be grabbed from the block that was made say 10 minutes ago
The tendermint light client needs to have disabled pruning (it is storing light blocks, this should be very cheap and now is enabled by default on the golang relayer)
The on-chain historical information in x/staking needs to keep at least 10 minutes-1 hour worth of historical information. The amount of historical info it stores indicates the time period needed between when the relayer constructs connection proof and when it is processed on chain
In previous times, the relayer was grabbing headers from the on-chain historical info (which is why this parameter was discussed). The relayer in previous times also grabbed untrusted headers directly from the full node rather than from its trusted store which is why full node not pruning was recommended. Now the light client grabs headers from its trusted store. This can be problematic if it misses headers (because it isn't running). We will be fixing this, so if you sporadically use your relayer, it will try to query the full node for a missing header, it may fail if pruning is set to only keep 1 hour worth of blocks. Relayers constantly running can probably get away with some pretty aggressive pruning strategies
--
The error message should do its best to indicate what went wrong rather than saying disable pruning
The text was updated successfully, but these errors were encountered: