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

Split verification failures by match type and rejection expiry #2834

Closed
teor2345 opened this issue Oct 6, 2021 · 1 comment
Closed

Split verification failures by match type and rejection expiry #2834

teor2345 opened this issue Oct 6, 2021 · 1 comment
Labels
A-consensus Area: Consensus rule updates A-rust Area: Updates to Rust code C-enhancement Category: This is an improvement

Comments

@teor2345
Copy link
Contributor

teor2345 commented Oct 6, 2021

Motivation

When the mempool fails to verify transactions, it caches those verification failures.

Match Type

If the failure is due to the transaction's effects (for example, a double-spend), any transaction with the same TXID (Hash) is also invalid.

If the failure is due to the authorizing data (for example, a bad signature), only that exact WTXID (UnminedTxId) is invalid.

In #2819, we did an initial split of the non-transaction::Verifier errors.

Rejection Expiry

Some failures persist until a rollback (for example, Expired).
Others should only be cached until the next block is committed (for example, SpendConflict).

We could split transaction::Verifier errors into these categories.

In #2694, we did an initial split of the non-transaction::Verifier errors.

Priority

This ticket is not required for a minimal mempool implementation.

zcashd implements a similar solution, but some of their engineers say they could do better:

Specifications

These mempool consensus rules are currently unspecified.

@teor2345 teor2345 added A-consensus Area: Consensus rule updates A-rust Area: Updates to Rust code C-enhancement Category: This is an improvement S-needs-triage Status: A bug report needs triage P-Low labels Oct 6, 2021
@teor2345 teor2345 changed the title Compare verification failures by TXID or WTXID, depending on the exact error Split verification failures by match type and rejection expiry Oct 6, 2021
@teor2345
Copy link
Contributor Author

teor2345 commented Mar 1, 2022

This is either obsolete or not needed.

@teor2345 teor2345 closed this as completed Mar 1, 2022
@mpguerra mpguerra removed the S-needs-triage Status: A bug report needs triage label Sep 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-consensus Area: Consensus rule updates A-rust Area: Updates to Rust code C-enhancement Category: This is an improvement
Projects
None yet
Development

No branches or pull requests

2 participants