Page MenuHomePhabricator

Clean up banning levels

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


Group Reviewers
Restricted Project
rABC980b086d1896: Clean up banning levels

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 <>

This is a partial backport of Core PR15141 :

Depends on D6684

Test Plan
ninja all check-all

Diff Detail

rABC Bitcoin ABC
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

deadalnix created this revision.Tue, Jun 23, 15:37
Herald added a reviewer: Restricted Project. · View Herald TranscriptTue, Jun 23, 15:37
deadalnix requested review of this revision.Tue, Jun 23, 15:37
teamcity edited the summary of this revision. (Show Details)Tue, Jun 23, 15:37

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

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