Page MenuHomePhabricator

Clean up banning levels
ClosedPublic

Authored by deadalnix on Jun 23 2020, 15:37.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC980b086d1896: Clean up banning levels
Summary

Compared with previous bans, the following changes are made:

  • Txn with empty vin/vout or null prevouts move from 10 DoS points to 100.
  • Loose transactions with a dependency loop now result in a ban instead of 10 DoS points.
  • Many pre-segwit soft-fork errors now result in a ban. Note: Transactions that violate soft-fork script flags since P2SH do not generally result in a ban. Also, banning behavior for invalid blocks is dependent on whether the node is validating with multiple script check threads, due to a long- standing bug. That inconsistency is still present after this commit.
  • Proof of work failure moves from 50 DoS points to a ban.
  • Blocks with timestamps under MTP now result in a ban, blocks too far in the future continue to *not* result in a ban.
  • Inclusion of non-final transactions in a block now results in a ban instead of 10 DoS points.

Co-authored-by: Anthony Towns <aj@erisian.com.au>

This is a partial backport of Core PR15141 : https://github.com/bitcoin/bitcoin/pull/15141/commits/7b999103e21509e1c2dec10f68e48744ffe90f55

Depends on D6684

Test Plan
ninja all check-all

Event Timeline

[Bot Message]
One or more PR numbers were detected in the summary.
Links to those PRs have been inserted into the summary for reference.

This revision is now accepted and ready to land.Jun 23 2020, 16:01
This revision was automatically updated to reflect the committed changes.