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

update disable pruning strategy error message. #446

Closed
colin-axner opened this issue Mar 8, 2021 · 0 comments · Fixed by #448
Closed

update disable pruning strategy error message. #446

colin-axner opened this issue Mar 8, 2021 · 0 comments · Fixed by #448
Labels
T: ux TYPE: Issue or Pull Request related to developer experience

Comments

@colin-axner
Copy link
Contributor

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

@colin-axner colin-axner added the T: ux TYPE: Issue or Pull Request related to developer experience label Mar 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T: ux TYPE: Issue or Pull Request related to developer experience
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant