-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[Bug]: Consensus Failure in Ignoring Malformed Transactions #16676
Comments
Thanks for the amazing writeup @davidterpay! Given the context of the (limited) method of which we can gossip VE to all validators and that CometBFT ensures len(responses) == len(req.Txs), we have no choice but to include a "dummy" response for non-txs like you proposed. I would however reconsider the nomenclature of This is an 0.50.x blocker. Wanna submit a PR @davidterpay? |
Yup! Will respond with PR in this issue. |
PR: #16700 |
Summary of Bug
Currently
FinalizeBlock
will ignore any bytes (i.e. txs) included in a proposal that cannot be decoded by base app'sTxDecoder
. Although this makes sense since Vote Extensions will be included in proposals with ABCI 2.0, this will trigger a consensus failure as the number ofdeliverTx
responses that Comet expects will never match the number of transactions in the proposal.Lines of code that are of interest are below:
cosmos-sdk/baseapp/abci.go
Lines 674 to 686 in 2100a73
Version
The version we have been testing on is Cosmos SDK version
v0.50.0-alpha.0
.Steps to Reproduce
We have a private repository we can add individuals to where we can demonstrate the issue. Although any other developer team that is using this version and are injecting any txs that are not
sdk.Tx
s will face the same issue.Image below shows the consensus failure when we attempt to include a single vote extension in a proposal.
Proposal
In the case where a transaction cannot be decoded, a default
deliverTx
response can be returned. This can look like the following:The text was updated successfully, but these errors were encountered: