-
Notifications
You must be signed in to change notification settings - Fork 628
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
Speedup RedundantRelayDecorator for Check and RecheckTx #6232
Comments
do all validator nodes run this ante handler? should be unnecessary, right? I suppose all node operators take whatever binary is distributed as is. |
All validators do run this ante handler. There isn't a way to express not running this on a validator atm. But the redundant relay guarantee is something you'd want on the block proposer |
Thanks @ValarDragon! I agree with the proposed solution @damiannolan and I discussed the issue and came up with some extra details and notes #3636 needs to be fixed, otherwise the current proposed pr would block submission of misbehaviour We will split up ante handler logic for check tx and recheck tx to minimize necessary logic. CheckTx should:
RecheckTx should:
That means, we can exclude (from checktx and rechecktx):
In rechecktx we can exclude proof checks. We will do this by only executing necessary logic, whereas checktx will make explicit exclusions in the code. MsgUpdateClient should only call UpdateState and MsgRecvPacket should only execute the following code Action Items:
note: we can do a non breaking adjustment to the patch releases for the update client fix if necessary We will leave the other msg types as is for now, to focus on getting the update client and recv packet dealt with first. We can update the others in the future as necessary |
@ValarDragon is there a specific patch release you would want these changes in? |
Summary
The RedundantRelayDecorator is a very significant slowdown to CheckTx and RecheckTx, recheckTx being more important due to how consensus-blocking this operation is:
This is a serious chain slowdown vector for all cosmos chains.
Problem Definition
This is a serious slowdown to Consensus due to the Recheck behavior of Comet, but is also a notable extra strain on mempool ingest.
Proposal
Remember that RedundantRelay is something thats there purely to help benefit altruistic relayers. So we do not need to ensure every packet being relayed will pass, just that if the relay will contribute nothing of help, skip it.
Here is the logic: https://github.com/cosmos/ibc-go/blob/main/modules/core/ante/ante.go#L24
We need to make direct logic to ensure:
This is important for reducing mempool overhead, and the critical consensus delay that IBC txs in the mempool induce.
For Admin Use
The text was updated successfully, but these errors were encountered: